class SoarAuthenticationToken::StaticTokenValidator
Public Class Methods
new(configuration)
click to toggle source
# File lib/soar_authentication_token/providers/static_token_validator.rb, line 3 def initialize(configuration) @configuration = configuration validate_configuration end
Public Instance Methods
inject_store_provider(store_provider)
click to toggle source
# File lib/soar_authentication_token/providers/static_token_validator.rb, line 8 def inject_store_provider(store_provider) #ignore the store provider since this validator does not use a store end
validate(authentication_token:, request_information: nil, flow_identifier: nil)
click to toggle source
# File lib/soar_authentication_token/providers/static_token_validator.rb, line 12 def validate(authentication_token:, request_information: nil, flow_identifier: nil) found_static_token = find_configured_static_token(authentication_token) return rejection_result(reason: 'Unknown static token') if found_static_token.nil? meta = compile_meta(token_identifier: 'static_token', authenticated_identifier: found_static_token['authenticated_identifier'], token_issue_time: found_static_token['token_issue_time'], token_expiry_time: found_static_token['token_expiry_time']) return rejection_result(reason: "Expired token <#{meta['token_expiry_time']}> for <#{meta['authenticated_identifier']}>") if token_expired?(meta) return success_result(token_meta: meta) end
Private Instance Methods
compile_meta(token_identifier:, authenticated_identifier:, token_issue_time:, token_expiry_time:)
click to toggle source
# File lib/soar_authentication_token/providers/static_token_validator.rb, line 32 def compile_meta(token_identifier:, authenticated_identifier:, token_issue_time:, token_expiry_time:) { 'token_identifier' => token_identifier, 'authenticated_identifier' => authenticated_identifier, 'token_issue_time' => token_issue_time, 'token_expiry_time' => token_expiry_time, 'token_age' => token_age(token_issue_time) } end
find_configured_static_token(authentication_token)
click to toggle source
# File lib/soar_authentication_token/providers/static_token_validator.rb, line 25 def find_configured_static_token(authentication_token) @configuration['static_tokens'].each { |static_token| return static_token if authentication_token == static_token['token'] } nil end
rejection_result(reason:)
click to toggle source
# File lib/soar_authentication_token/providers/static_token_validator.rb, line 57 def rejection_result(reason:) [false, nil, reason] end
success_result(token_meta:)
click to toggle source
# File lib/soar_authentication_token/providers/static_token_validator.rb, line 60 def success_result(token_meta:) [true, token_meta, "Valid token for <#{token_meta['authenticated_identifier']}>" ] end
token_age(token_issue_time)
click to toggle source
# File lib/soar_authentication_token/providers/static_token_validator.rb, line 45 def token_age(token_issue_time) Time.now - Time.parse(token_issue_time.to_s) end
token_expired?(meta)
click to toggle source
# File lib/soar_authentication_token/providers/static_token_validator.rb, line 53 def token_expired?(meta) Time.parse(meta['token_expiry_time'].to_s) < Time.now end
validate_configuration()
click to toggle source
# File lib/soar_authentication_token/providers/static_token_validator.rb, line 49 def validate_configuration raise "array of 'static_tokens' must be configured" unless @configuration['static_tokens'] end