Advertisement
Guest User

Untitled

a guest
Jul 14th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. !/usr/bin/env ruby
  2.  
  3. require 'logger'
  4. require 'rest-client'
  5. #require 'pry-byebug'
  6. $stdout.sync = true
  7. $stdin.sync = true
  8.  
  9. path = "//home/deepak/ejabberd-16.06/logs/auth.log"
  10. file = File.open(path, File::WRONLY | File::APPEND | File::CREAT)
  11. file.sync = true
  12. logger = Logger.new(file)
  13. logger.level = Logger::DEBUG
  14. logger.info "Starting point"
  15.  
  16. def auth(username, password)
  17. RestClient.post("dpkubuntu:3000", :username => username, :password => password)
  18. return true
  19. rescue RestClient::Exception
  20. return false
  21. end
  22.  
  23. logger.info "Starting ejabberd authentication service"
  24.  
  25. loop do
  26. begin
  27. $stdin.eof? # wait for input
  28. start = Time.now
  29.  
  30. msg = $stdin.read(2)
  31. # logger.info msg
  32. if !msg.nil?
  33. logger.info msg
  34. length = msg.unpack('n').first
  35.  
  36. msg = $stdin.read(length)
  37. cmd, *data = msg.split(":")
  38.  
  39. logger.info "Incoming Request: '#{cmd}'"
  40. success = case cmd
  41. when "auth"
  42. logger.info "Authenticating #{data[0]}@#{data[1]}"
  43. auth(data[0], data[2])
  44. when "isuser"
  45. logger.info "Is user"
  46. false
  47. else
  48. false
  49. end
  50.  
  51. bool = success ? 1 : 0
  52. $stdout.write [2, bool].pack("nn")
  53. logger.info "Response: #{success ? "success" : "failure"}"
  54. end
  55. rescue => e
  56. logger.error "#{e.class.name}: #{e.message}"
  57. logger.error e.backtrace.join("\n\t")
  58. end
  59. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement