Class: Cassette::Rubycas::SingleSignOutConstraint
- Inherits:
-
Object
- Object
- Cassette::Rubycas::SingleSignOutConstraint
show all
- Defined in:
- lib/cassette/rubycas/single_sign_out_constraint.rb
Constant Summary
collapse
- LOGOUT_PAYLOAD_EXPR =
%r{<samlp:LogoutRequest.*?<samlp:SessionIndex>(.*)<\/samlp:SessionIndex}m
Instance Method Summary
collapse
Instance Method Details
#logout_request?(params) ⇒ Boolean
8
9
10
|
# File 'lib/cassette/rubycas/single_sign_out_constraint.rb', line 8
def logout_request?(params)
[params['logoutRequest'], URI.unescape(params['logoutRequest'])].find { |xml| xml =~ LOGOUT_PAYLOAD_EXPR }
end
|
#matches?(request) ⇒ Boolean
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/cassette/rubycas/single_sign_out_constraint.rb', line 12
def matches?(request)
if (content_type = request.['CONTENT_TYPE']) && content_type =~ %r{^multipart/}
return false
end
if request.post? && request.request_parameters['logoutRequest'] && logout_request?(request.request_parameters)
Cassette.logger.debug "Intercepted a single sign out request on #{request}"
return true
end
false
end
|