class EME::SSO::TokenReader
Public Class Methods
get_account_info(ssot)
click to toggle source
# File lib/eme/sso/token_reader.rb, line 43 def self.get_account_info(ssot) auth_response = nil Net::HTTP.start(EME::SSO.settings[:auth_server], EME::SSO.settings[:auth_server_port]) do |http| http.open_timeout = 5 http.read_timeout = 10 auth_response = http.post("/sso/ticket/#{ssot}/verify", "tt=sso_insecure") end return auth_response end
new(app)
click to toggle source
# File lib/eme/sso/token_reader.rb, line 3 def initialize(app) @app = app end
setup_user_session(user, session, ssot = nil)
click to toggle source
# File lib/eme/sso/token_reader.rb, line 53 def self.setup_user_session(user, session, ssot = nil) session[:ssot] = ssot session[:screen_name] = if user["temp_screen_name"] user["email"].split("@")[0] else user["screen_name"] end session[:account_id] = user["id"] session[:account_info] = user end
Public Instance Methods
call(env)
click to toggle source
# File lib/eme/sso/token_reader.rb, line 7 def call(env) req = Rack::Request.new(env) cookies = req.cookies session = req.session @eat_cookies = false @bake_cookies = false if cookies["_ssot"] && (!session["account_id"] || cookies["_ssot"] != session[:ssot]) connect_account(cookies, session) elsif !cookies["_ssot"] && session["account_id"] @eat_cookies = true #disconnect_account(cookies, session) end @status, @headers, @response = @app.call(env) set_cookies(cookies, session) if @eat_cookies || @bake_cookies return [@status, @headers, @response] end
connect_account(cookies, session)
click to toggle source
# File lib/eme/sso/token_reader.rb, line 24 def connect_account(cookies, session) auth_response = EME::SSO::TokenReader.get_account_info(cookies["_ssot"]) code = auth_response.code.to_i # {"temp_screen_name"=>false, "screen_name"=>"kaboo", "language"=>"en", "account_status"=>1, "email"=>"chris@chrisreister.com", "id"=>12345} if code == 200 account_info = JSON.parse(auth_response.body) EME::SSO::TokenReader.setup_user_session(account_info, session, cookies["_ssot"]) @bake_cookies = true else # delete cookie if it was bad? @eat_cookies = true end return true rescue Exception => e puts e.inspect puts e.backtrace #Airbrake.notify(e) # TO DO: setup airbrake? return true end