Commit 3d490e9
Changed files (2)
lib
saml
kit
bindings
spec
saml
bindings
lib/saml/kit/bindings/binding.rb
@@ -48,7 +48,10 @@ module Saml
protected
def saml_param_from(params)
- parameters = params.with_indifferent_access
+ parameters = {
+ SAMLRequest: params[:SAMLRequest] || params['SAMLRequest'],
+ SAMLResponse: params[:SAMLResponse] || params['SAMLResponse'],
+ }
if parameters[:SAMLRequest].present?
parameters[:SAMLRequest]
elsif parameters[:SAMLResponse].present?
spec/saml/bindings/http_redirect_spec.rb
@@ -43,6 +43,21 @@ RSpec.describe Saml::Kit::Bindings::HttpRedirect do
expect(result).to be_instance_of(Saml::Kit::AuthenticationRequest)
end
+ it 'deserializes the SAMLRequest to an AuthnRequest when given a custom params object' do
+ class Parameters
+ def initialize(params)
+ @params = params
+ end
+
+ def [](key)
+ @params[key]
+ end
+ end
+ url, _ = subject.serialize(Saml::Kit::AuthenticationRequest.builder_class.new)
+ result = subject.deserialize(Parameters.new(query_params_from(url)))
+ expect(result).to be_instance_of(Saml::Kit::AuthenticationRequest)
+ end
+
it 'deserializes the SAMLRequest to a LogoutRequest' do
user = double(:user, name_id_for: SecureRandom.uuid)
url, _ = subject.serialize(Saml::Kit::LogoutRequest.builder_class.new(user))