Class: OmniAuth::Strategies::Tequila
- Inherits:
-
Object
- Object
- OmniAuth::Strategies::Tequila
- Includes:
- OmniAuth::Strategy
- Defined in:
- lib/omniauth/strategies/tequila.rb
Defined Under Namespace
Classes: TequilaFail
Instance Attribute Summary collapse
-
#raw_info ⇒ Object
(also: #user_info)
Returns the value of attribute raw_info.
Instance Method Summary collapse
Instance Attribute Details
#raw_info ⇒ Object Also known as: user_info
Returns the value of attribute raw_info.
11 12 13 |
# File 'lib/omniauth/strategies/tequila.rb', line 11 def raw_info @raw_info end |
Instance Method Details
#callback_phase ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/omniauth/strategies/tequila.rb', line 36 def callback_phase response = fetch_attributes( request.params['key'] ) return fail!(:invalid_response, TequilaFail.new('nil response from Tequila')) if response.nil? return fail!(:invalid_response, TequilaFail.new('Invalid reponse from Tequila: ' + response.code)) unless response.code == '200' # parse attributes self.raw_info = {} response.body.each_line { |line| item = line.split('=', 2) if item.length == 2 raw_info[item[0]] = item[1].strip end } missing_info = @options[:request_info].values.reject { |k| raw_info.include?(k) } if !missing_info.empty? log :error, 'Missing attributes in Tequila server response: ' + missing_info.join(', ') return fail!(:invalid_info, TequilaFail.new('Invalid info from Tequila')) end super end |
#request_phase ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/omniauth/strategies/tequila.rb', line 60 def request_phase response = get_request_key if response.nil? or response.code != '200' log :error, 'Received invalid response from Tequila server: ' + (response.nil? ? 'nil' : response.code) return fail!(:invalid_response, TequilaFail.new('Invalid response from Tequila server')) end request_key = response.body[/^key=(.*)$/, 1] if request_key.nil? or request_key.empty? log :error, 'Received invalid key from Tequila server: ' + (request_key.nil? ? 'nil' : request_key) return fail!(:invalid_key, TequilaFail.new('Invalid key from Tequila')) end # redirect to the Tequila server's login page [ 302, { 'Location' => tequila_uri.to_s + '/requestauth?requestkey=' + request_key, 'Content-Type' => 'text/plain' }, ['You are being redirected to Tequila for sign-in.'] ] end |