Commit d3ce092
Changed files (2)
lib
saml
kit
spec
saml
kit
lib/saml/kit/respondable.rb
@@ -16,7 +16,7 @@ module Saml
# Returns the /Status/StatusCode@Value
def status_code
- to_h.fetch(name, {}).fetch('Status', {}).fetch('StatusCode', {}).fetch('Value', nil)
+ at_xpath('./*/samlp:Status/samlp:StatusCode/@Value').try(:value)
end
# Returns the /InResponseTo attribute.
spec/saml/kit/response_spec.rb
@@ -1,9 +1,14 @@
RSpec.describe Saml::Kit::Response do
+ subject { described_class.build(user, request) }
+
+ let(:request) { instance_double(Saml::Kit::AuthenticationRequest, id: ::Xml::Kit::Id.generate, issuer: FFaker::Internet.uri('https'), assertion_consumer_service_url: FFaker::Internet.uri('https'), name_id_format: Saml::Kit::Namespaces::PERSISTENT, provider: nil, signed?: true, trusted?: true) }
+ let(:user) { User.new(attributes: { id: SecureRandom.uuid }) }
+
+ specify { expect(subject.status_code).to eql(Saml::Kit::Namespaces::SUCCESS) }
+
describe '#valid?' do
subject { described_class.build(user, request, configuration: configuration) }
- let(:request) { instance_double(Saml::Kit::AuthenticationRequest, id: ::Xml::Kit::Id.generate, issuer: FFaker::Internet.http_url, assertion_consumer_service_url: FFaker::Internet.http_url, name_id_format: Saml::Kit::Namespaces::PERSISTENT, provider: nil, signed?: true, trusted?: true) }
- let(:user) { User.new(attributes: { id: SecureRandom.uuid }) }
let(:registry) { instance_double(Saml::Kit::DefaultRegistry) }
let(:metadata) { instance_double(Saml::Kit::IdentityProviderMetadata) }