Guest User

Untitled

a guest
Nov 30th, 2018
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. require './ldapauthenticator'
  2. require 'sinatra'
  3.  
  4. #configuring sinatra to have sessions
  5. enable :sessions
  6.  
  7.  
  8. # helpers
  9. #
  10. class Object
  11. def nil_or_empty?
  12. if self.nil? or self.empty?
  13. return true
  14. end
  15.  
  16. return false
  17. end
  18. end
  19.  
  20.  
  21. # Setup LDAP
  22. ldap_connection = { :host => "alouette.com",
  23. :port => "3269",
  24. :base => "dc=alouette, dc=com"}
  25.  
  26. LDAPAuthenticator.set_base_connection ldap_connection
  27.  
  28. # define login things
  29. helpers do
  30. def authorize!
  31. redirect to('/login') unless authorized?
  32. end
  33.  
  34. def authorized?
  35. !session[:username].nil_or_empty?
  36. end
  37. end
  38.  
  39. # Now bring me an application
  40. get '/' do
  41. authorize!
  42. return "logged in as : #{session[:username]}"
  43. end
  44.  
  45. get '/login' do
  46. erb :login
  47. end
  48.  
  49. post '/login' do
  50.  
  51. username = params[:username]
  52. password = params[:password]
  53.  
  54. auth = false
  55. errors = []
  56.  
  57. # Testing parameters
  58. if username.nil_or_empty?
  59. errors.push "No username provided"
  60. end
  61. if password.nil_or_empty?
  62. errors.push "No password provided"
  63. end
  64.  
  65. # If parameters are ok authenticate to ldap
  66. if errors.length==0
  67. auth = LDAPAuthenticator.authenticate(username,password)
  68. end
  69. if auth
  70. session[:username] ="#{username}"
  71. session[:password]= "#{password}"
  72. redirect to('/')
  73. else
  74. errors.push LDAPAuthenticator.conn.get_operation_result.message
  75. return errors.to_s
  76. end
  77. end
  78.  
  79. get '/logout' do
  80. session[:username] = nil
  81. session[:password] = nil
  82. end
Add Comment
Please, Sign In to add comment