class OmniAuth::Strategies::Uoc::UocValidator
Constants
- DEFAULT_CONTENT_TYPE
- SESSION_REQUEST_BODY
Public Class Methods
new(configuration, username, password)
click to toggle source
# File lib/omniauth/strategies/uoc/uoc_validator.rb, line 16 def initialize(configuration, username, password) @configuration, @username, @password = configuration, username, password @session_uri = URI.parse(@configuration.session_url) MultiXml.parser = :nokogiri end
Public Instance Methods
user_info()
click to toggle source
# File lib/omniauth/strategies/uoc/uoc_validator.rb, line 22 def user_info retrieve_user_info! end
Private Instance Methods
make_session_request()
click to toggle source
# File lib/omniauth/strategies/uoc/uoc_validator.rb, line 48 def make_session_request conn = Faraday.new(:url => @session_uri.to_s) do |faraday| faraday.request :url_encoded # form-encode POST params faraday.response :logger # log requests to STDOUT faraday.adapter Faraday.default_adapter # make requests with Net::HTTP end conn.post do |req| req.headers['Content-Type'] = DEFAULT_CONTENT_TYPE req.body = make_session_request_body(@username, @password) end end
make_session_request_body(username,password)
click to toggle source
# File lib/omniauth/strategies/uoc/uoc_validator.rb, line 61 def make_session_request_body(username,password) request_body = MultiXml.parse(SESSION_REQUEST_BODY) request_body['session']['name'] = username request_body['session']['password'] = password request_body['session'].to_xml :root => :session end
retrieve_user_info!()
click to toggle source
# File lib/omniauth/strategies/uoc/uoc_validator.rb, line 27 def retrieve_user_info! response = make_session_request user_info = nil unless response.status.to_i != 201 || response.body.nil? || response.body == '' xml = MultiXml.parse(response.body) if(xml['session']['authenticated'] == 'true') user_info = { :name => xml['session']['fullname'], :email => xml['session']['email'], :nickname =>xml['session']['login'], :extra => xml['session'] } end end if user_info.nil? OmniAuth.logger.send(:warn, "(crowd) [retrieve_user_info!] response code: #{response.status.to_s}") OmniAuth.logger.send(:warn, "(crowd) [retrieve_user_info!] response body: #{response.body}") end user_info end