Class: Authograph::Signer
- Inherits:
-
Object
- Object
- Authograph::Signer
- Defined in:
- lib/authograph/signer.rb
Constant Summary collapse
- DEFAULT_SIGN_HEADER =
'X-Signature'- DEFAULT_DATE_HEADER =
'X-Date'
Instance Method Summary collapse
- #authentic?(_request, _key_secret) ⇒ Boolean
-
#initialize(digest: 'sha384', header: DEFAULT_SIGN_HEADER, sign_headers: [], sign_date: true, date_header: DEFAULT_DATE_HEADER, date_max_skew: 600) ⇒ Signer
constructor
A new instance of Signer.
- #sign(_request, _key_secret) ⇒ Object
Constructor Details
#initialize(digest: 'sha384', header: DEFAULT_SIGN_HEADER, sign_headers: [], sign_date: true, date_header: DEFAULT_DATE_HEADER, date_max_skew: 600) ⇒ Signer
Returns a new instance of Signer.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/authograph/signer.rb', line 6 def initialize( digest: 'sha384', header: DEFAULT_SIGN_HEADER, sign_headers: [], sign_date: true, date_header: DEFAULT_DATE_HEADER, date_max_skew: 600 ) @digest = digest @header = header @sign_headers = sign_headers @sign_date = sign_date @date_header = date_header @date_max_skew = date_max_skew @sign_headers << date_header if sign_date # ensure date header is signed too end |
Instance Method Details
#authentic?(_request, _key_secret) ⇒ Boolean
32 33 34 35 36 37 38 |
# File 'lib/authograph/signer.rb', line 32 def authentic?(_request, _key_secret) _request = adapt _request return false if !signatures_match? _request, _key_secret return false if @sign_date && !request_within_time_window?(_request) true end |
#sign(_request, _key_secret) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/authograph/signer.rb', line 24 def sign(_request, _key_secret) _request = adapt _request set_request_date(_request) if @sign_date # TODO: set_hashed_content to discard invalid signatures before checking content? (_request, _key_secret) end |