Guest User

Untitled

a guest
Apr 19th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. # Plik db_store.db
  2.  
  3. require 'openid/store/interface'
  4.  
  5. module OpenIdAuthentication
  6. class DbStore < OpenID::Store::Interface
  7. def self.cleanup_nonces
  8. now = Time.now.to_i
  9. Nonce.delete_all(["timestamp > ? OR timestamp < ?", now + OpenID::Nonce.skew, now - OpenID::Nonce.skew])
  10. end
  11.  
  12. def self.cleanup_associations
  13. now = Time.now.to_i
  14. Association.delete_all(['issued + lifetime > ?',now])
  15. end
  16.  
  17. def store_association(server_url, assoc)
  18. remove_association(server_url, assoc.handle)
  19. Association.create(:server_url => server_url,
  20. :handle => assoc.handle,
  21. :secret => assoc.secret,
  22. :issued => assoc.issued,
  23. :lifetime => assoc.lifetime,
  24. :assoc_type => assoc.assoc_type)
  25. end
  26.  
  27. def get_association(server_url, handle = nil)
  28. assocs = if handle.blank?
  29. Association.find_all_by_server_url(server_url)
  30. else
  31. Association.find_all_by_server_url_and_handle(server_url, handle)
  32. end
  33.  
  34. assocs.reverse.each do |assoc|
  35. a = assoc.from_record
  36. if a.expires_in == 0
  37. assoc.destroy
  38. else
  39. return a
  40. end
  41. end if assocs.any?
  42.  
  43. return nil
  44. end
  45.  
  46. def remove_association(server_url, handle)
  47. Association.delete_all(['server_url = ? AND handle = ?', server_url, handle]) > 0
  48. end
  49.  
  50. def use_nonce(server_url, timestamp, salt)
  51. return false if Nonce.find_by_server_url_and_timestamp_and_salt(server_url, timestamp, salt)
  52. return false if (timestamp - Time.now.to_i).abs > OpenID::Nonce.skew
  53. Nonce.create(:server_url => server_url, :timestamp => timestamp, :salt => salt)
  54. return true
  55. end
  56. end
  57. end
Add Comment
Please, Sign In to add comment