Commit 4df17ef
Changed files (2)
lib
saml
kit
builders
spec
saml
kit
builders
lib/saml/kit/builders/assertion.rb
@@ -14,7 +14,7 @@ module Saml
attr_accessor :issuer, :version
attr_accessor :default_name_id_format
- def initialize(user, request = nil, embed_signature, configuration: Saml::Kit.configuration, now: Time.now.utc, destination: nil, signing_key_pair: nil, issuer: nil)
+ def initialize(user, request, embed_signature, configuration: Saml::Kit.configuration, now: Time.now.utc, destination: nil, signing_key_pair: nil, issuer: nil)
@user = user
@request = request
@destination = destination
spec/saml/kit/builders/assertion_builder_spec.rb
@@ -2,12 +2,12 @@ require 'spec_helper'
RSpec.describe Saml::Kit::Builders::Assertion do
describe '#build' do
- subject { described_class.new(user, request, configuration: configuration) }
+ subject { described_class.new(user, authn_request, true, configuration: configuration) }
let(:email) { FFaker::Internet.email }
let(:assertion_consumer_service_url) { FFaker::Internet.uri('https') }
let(:user) { User.new(attributes: { email: email, created_at: Time.now.utc.iso8601 }) }
- let(:request) { instance_double(Saml::Kit::AuthenticationRequest, id: Xml::Kit::Id.generate, assertion_consumer_service_url: assertion_consumer_service_url, issuer: issuer, name_id_format: Saml::Kit::Namespaces::EMAIL_ADDRESS, provider: provider, trusted?: true, signed?: true) }
+ let(:authn_request) { instance_double(Saml::Kit::AuthenticationRequest, id: Xml::Kit::Id.generate, assertion_consumer_service_url: assertion_consumer_service_url, issuer: issuer, name_id_format: Saml::Kit::Namespaces::EMAIL_ADDRESS, provider: provider, trusted?: true, signed?: true) }
let(:provider) { instance_double(Saml::Kit::ServiceProviderMetadata, want_assertions_signed: false, encryption_certificates: [configuration.certificates(use: :encryption).last]) }
let(:issuer) { FFaker::Internet.uri('https') }
let(:configuration) do
@@ -19,5 +19,14 @@ RSpec.describe Saml::Kit::Builders::Assertion do
end
specify { expect(subject.build).to be_valid }
+ specify { expect(subject.build.issuer).to eql(issuer) }
+ specify { expect(subject.build.name_id).to eql(user.name_id) }
+ specify { expect(subject.build.name_id_format).to eql(Saml::Kit::Namespaces::EMAIL_ADDRESS) }
+ specify { expect(subject.build).to be_signed }
+ specify { expect(subject.build).not_to be_expired }
+ specify { expect(subject.build).to be_active }
+ specify { expect(subject.build).not_to be_encrypted }
+ specify { expect(subject.build.conditions.audiences).to include(issuer) }
+ specify { expect(subject.build.attributes).to eql('email' => user.attributes[:email], 'created_at' => user.attributes[:created_at]) }
end
end