Guest User

Untitled

a guest
May 21st, 2018
1,242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. def auth_by_eso( username, password )
  2. begin
  3. driver = SOAP::WSDLDriverFactory.new(ESO_WEB_SERVICE_URL).create_rpc_driver
  4. result = driver.Authenticate( { :username => username, :password => password} )
  5. result.authenticateResult == 'VALID_USER'
  6. rescue
  7. logger.info " >> ESO authentication failed for #{params[:action]} in #{params[:id]}"
  8. false
  9. end
  10. end
  11.  
  12. def authenticate
  13. authenticate_or_request_with_http_basic do | username,password |
  14. return false if username.blank? || password.blank?
  15. username.strip!.downcase!
  16.  
  17. # Authenticate by session cookie
  18. if session[:user_id]
  19. @current_user = User.find_by_username( session[:user_id] )
  20.  
  21. # Authenticate by access list (or by calling ESO webservice)
  22. elsif ACCESS_LIST[ username ] == password || auth_by_eso( username, password )
  23. session[:user_id] = username # Put user in session table; instant lookup next time
  24. @current_user = User.find_or_create_by_username( username )
  25.  
  26. else
  27. generate_render("401 Unauthorized user or incorrect password: #{username}")
  28. false
  29. end
  30. end
  31.  
  32. def generate_render( render_msg )
  33. @result = render_msg
  34. render :text => render_msg, :status => render_msg.split(" ").first
  35. end
Add Comment
Please, Sign In to add comment