Class: Rack::Tamperproof::Protector
- Inherits:
-
Object
- Object
- Rack::Tamperproof::Protector
show all
- Defined in:
- lib/rack-tamperproof.rb
Defined Under Namespace
Classes: DeleteProtector, ExceptionProtector
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(name, secret, postfix = '_key') ⇒ Protector
Returns a new instance of Protector.
23
24
25
26
27
|
# File 'lib/rack-tamperproof.rb', line 23
def initialize(name, secret, postfix = '_key')
@name = name.to_s
@secret = secret
@postfix = postfix
end
|
Class Method Details
.sign(name, value, secret) ⇒ Object
33
34
35
36
37
38
39
|
# File 'lib/rack-tamperproof.rb', line 33
def self.sign(name, value, secret)
digest = Digest::SHA1.new
digest.update(name)
digest.update(value)
digest.update(secret)
digest.hexdigest
end
|
Instance Method Details
#add_secret_to_response(response, cookies) ⇒ Object
49
50
51
|
# File 'lib/rack-tamperproof.rb', line 49
def add_secret_to_response(response, cookies)
response.set_cookie(secret_cookie_key, secret(cookies))
end
|
#secret(cookies) ⇒ Object
41
42
43
|
# File 'lib/rack-tamperproof.rb', line 41
def secret(cookies)
self.class.sign(@name, cookies[@name], @secret)
end
|
#secret_cookie_key ⇒ Object
29
30
31
|
# File 'lib/rack-tamperproof.rb', line 29
def secret_cookie_key
"#{@name}#{@postfix}"
end
|
#valid?(request) ⇒ Boolean
45
46
47
|
# File 'lib/rack-tamperproof.rb', line 45
def valid?(request)
secret(request.cookies) == request.cookies[secret_cookie_key]
end
|