Skip to content

Commit 4b192eb

Browse files
committed
Those validation already are done in the logoutresponse validator. Pass the ID to the constructor
1 parent 331676d commit 4b192eb

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

app/controllers/saml_controller.rb

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,19 +85,18 @@ def sp_logout_request
8585
# the LogoutResponse, verify it, then actually delete our session.
8686
def logout_response
8787
settings = Account.get_saml_settings
88-
logout_response = OneLogin::RubySaml::Logoutresponse.new(params[:SAMLResponse], settings)
88+
89+
if session.has_key? :transation_id
90+
logout_response = OneLogin::RubySaml::Logoutresponse.new(params[:SAMLResponse], settings, :matches_request_id => session[:transation_id])
91+
else
92+
logout_response = OneLogin::RubySaml::Logoutresponse.new(params[:SAMLResponse], settings)
93+
end
8994

9095
logger.info "LogoutResponse is: #{logout_response.to_s}"
9196

9297
# Validate the SAML Logout Response
9398
if not logout_response.validate
9499
logger.error "The SAML Logout Response is invalid"
95-
96-
elsif session[:transation_id] && logout_response.in_response_to != session[:transaction_id]
97-
logger.error "The SAML Response for #{logout_response.in_response_to} does not match our session transaction ID of #{session[:transaction_id]}"
98-
99-
elsif logout_response.issuer != settings.idp_metadata
100-
logger.error "The SAML Response from IdP #{logout_response.issuer} does not match our trust relationship with #{settings.idp_metadata}"
101100
else
102101
# Actually log out this session
103102
if logout_response.success?

0 commit comments

Comments
 (0)