Class: OmniAuth::Strategies::Dice
- Inherits:
-
Object
- Object
- OmniAuth::Strategies::Dice
- Includes:
- OmniAuth::Strategy
- Defined in:
- lib/omniauth/strategies/dice.rb
Overview
Provides omniauth authentication integration with a CAS server
Instance Attribute Summary collapse
-
#data ⇒ Object
Returns the value of attribute data.
-
#dn ⇒ Object
Returns the value of attribute dn.
-
#raw_dn ⇒ Object
Returns the value of attribute raw_dn.
Instance Method Summary collapse
- #auth_hash ⇒ Object
- #callback_phase ⇒ Object
-
#format_dn(dn_str) ⇒ Object
Reformat DN to expected element order for CAS DN server (via dnc gem).
- #redirect_for_callback ⇒ Object
- #request_phase ⇒ Object
-
#required_params ⇒ Object
Specifies which attributes are required arguments to initialize.
-
#validate_required_params ⇒ Object
Determine if required arguments are present or fail hard.
Instance Attribute Details
#data ⇒ Object
Returns the value of attribute data.
37 38 39 |
# File 'lib/omniauth/strategies/dice.rb', line 37 def data @data end |
#dn ⇒ Object
Returns the value of attribute dn.
37 38 39 |
# File 'lib/omniauth/strategies/dice.rb', line 37 def dn @dn end |
#raw_dn ⇒ Object
Returns the value of attribute raw_dn.
37 38 39 |
# File 'lib/omniauth/strategies/dice.rb', line 37 def raw_dn @raw_dn end |
Instance Method Details
#auth_hash ⇒ Object
100 101 102 103 104 105 106 107 108 |
# File 'lib/omniauth/strategies/dice.rb', line 100 def auth_hash log :debug, '.auth_hash' Hashie::Mash.new( 'provider' => name, 'uid' => uid, 'info' => info, 'extra' => extra ) end |
#callback_phase ⇒ Object
90 91 92 93 94 95 96 97 98 |
# File 'lib/omniauth/strategies/dice.rb', line 90 def callback_phase response = authenticate_user return fail!(:invalid_credentials) if response.nil? @raw_data = response.body @data = parse_response_data session['omniauth.auth'] ||= auth_hash super end |
#format_dn(dn_str) ⇒ Object
Reformat DN to expected element order for CAS DN server (via dnc gem).
55 56 57 |
# File 'lib/omniauth/strategies/dice.rb', line 55 def format_dn(dn_str) get_dn(dn_str).to_s end |
#redirect_for_callback ⇒ Object
133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/omniauth/strategies/dice.rb', line 133 def redirect_for_callback if .custom_callback_url redirect .custom_callback_url else if .use_callback_url == true redirect callback_url else redirect callback_path end end end |
#request_phase ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/omniauth/strategies/dice.rb', line 74 def request_phase validate_required_params subject_dn = get_dn_by_type('subject') return fail!('You need a valid DN to authenticate.') unless subject_dn user_dn = format_dn(subject_dn) log :debug, "Formatted user_dn: #{user_dn}" return fail!('You need a valid DN to authenticate.') unless user_dn set_session_dn(user_dn, 'subject') issuer_dn = get_dn_by_type('issuer') issuer_dn = format_dn(issuer_dn) if issuer_dn log :debug, "Formatted issuer_dn: #{issuer_dn}" set_session_dn(issuer_dn, 'issuer') if issuer_dn redirect_for_callback end |
#required_params ⇒ Object
Specifies which attributes are required arguments to initialize
60 61 62 |
# File 'lib/omniauth/strategies/dice.rb', line 60 def required_params [:cas_server, :authentication_path] end |
#validate_required_params ⇒ Object
Determine if required arguments are present or fail hard
65 66 67 68 69 70 71 72 |
# File 'lib/omniauth/strategies/dice.rb', line 65 def validate_required_params required_params.each do |param| unless .send(param) error_msg = "omniauth-dice error: #{param} is required" fail RequiredCustomParamError, error_msg end end end |