class Devise::Strategies::PKCS12Authenticatable
Public Instance Methods
authenticate!()
click to toggle source
rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Lint/AssignmentInCondition,Style/Semicolon,Metrics/LineLength
# File lib/devise_pkcs12_authenticatable/strategy.rb, line 9 def authenticate! opts = authentication_hash.merge(Hash[::Devise.pkcs12_common_name_field, common_name]) resource = password.present? && mapping.to.find_for_pkcs12_authentication(opts) encrypted = false if validate(resource) { encrypted = true; resource.valid_password?(password) } && resource.valid_common_name?(common_name) remember_me(resource) resource.after_database_authentication success!(resource) end mapping.to.new.password = password if !encrypted && Devise.paranoid fail!(:not_found_in_database) unless resource end
valid?()
click to toggle source
rubocop:enable Metrics/AbcSize,Metrics/CyclomaticComplexity,Lint/AssignmentInCondition,Style/Semicolon,Metrics/LineLength
Calls superclass method
# File lib/devise_pkcs12_authenticatable/strategy.rb, line 26 def valid? super && client_verify? end
Protected Instance Methods
client_verify?()
click to toggle source
# File lib/devise_pkcs12_authenticatable/strategy.rb, line 36 def client_verify? case request.headers['X-CLIENT-VERIFY'].upcase when 'SUCCESS' true else false end end
common_name()
click to toggle source
# File lib/devise_pkcs12_authenticatable/strategy.rb, line 32 def common_name request.headers['X-SSL-CLIENT-S-DN'].split('/').last.split('=').last.strip end