Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def auth_by_eso( username, password )
- begin
- driver = SOAP::WSDLDriverFactory.new(ESO_WEB_SERVICE_URL).create_rpc_driver
- result = driver.Authenticate( { :username => username, :password => password} )
- result.authenticateResult == 'VALID_USER'
- rescue
- logger.info " >> ESO authentication failed for #{params[:action]} in #{params[:id]}"
- false
- end
- end
- def authenticate
- authenticate_or_request_with_http_basic do | username,password |
- return false if username.blank? || password.blank?
- username.strip!.downcase!
- # Authenticate by session cookie
- if session[:user_id]
- @current_user = User.find_by_username( session[:user_id] )
- # Authenticate by access list (or by calling ESO webservice)
- elsif ACCESS_LIST[ username ] == password || auth_by_eso( username, password )
- session[:user_id] = username # Put user in session table; instant lookup next time
- @current_user = User.find_or_create_by_username( username )
- else
- generate_render("401 Unauthorized user or incorrect password: #{username}")
- false
- end
- end
- def generate_render( render_msg )
- @result = render_msg
- render :text => render_msg, :status => render_msg.split(" ").first
- end
Add Comment
Please, Sign In to add comment