Commit ed8ac24
Changed files (3)
lib
saml
kit
bindings
lib/saml/kit/bindings/binding.rb
@@ -56,14 +56,10 @@ module Saml
SAMLRequest: params[:SAMLRequest] || params['SAMLRequest'],
SAMLResponse: params[:SAMLResponse] || params['SAMLResponse'],
}
- if parameters[:SAMLRequest].present?
- parameters[:SAMLRequest]
- elsif parameters[:SAMLResponse].present?
- parameters[:SAMLResponse]
- else
- message = 'SAMLRequest or SAMLResponse parameter is required.'
- raise ArgumentError, message
- end
+ return parameters[:SAMLRequest] if parameters[:SAMLRequest].present?
+ return parameters[:SAMLResponse] if parameters[:SAMLResponse].present?
+ message = 'SAMLRequest or SAMLResponse parameter is required.'
+ raise ArgumentError, message
end
end
end
lib/saml/kit/bindings/http_redirect.rb
@@ -43,13 +43,12 @@ module Saml
def ensure_valid_signature(params, document)
signature = params[:Signature]
- algorithm = params[:SigAlg]
provider = document.provider
- return if signature.blank? || algorithm.blank?
+ return if signature.blank? || params[:SigAlg].blank?
return if provider.nil?
return document.signature_verified! if provider.verify(
- algorithm_for(algorithm),
+ algorithm_for(params[:SigAlg]),
decode(signature),
canonicalize(params)
)
lib/saml/kit/bindings/url_builder.rb
@@ -17,18 +17,16 @@ module Saml
@configuration = configuration
end
- def build(saml_document, relay_state: nil)
- destination = saml_document.destination
+ def build(document, relay_state: nil)
+ destination = document.destination
if configuration.sign?
- payload = canonicalize(saml_document, relay_state)
+ payload = canonicalize(document, relay_state)
"#{destination}?#{payload}&Signature=#{signature_for(payload)}"
else
- xml = saml_document.to_xml
- payload = to_query_string(
- saml_document.query_string_parameter => serialize(xml),
+ "#{destination}?" + to_query_string(
+ document.query_string_parameter => serialize(document.to_xml),
'RelayState' => relay_state
)
- "#{destination}?#{payload}"
end
end