module Saml module Kit module Builders class AuthenticationRequest include Saml::Kit::Templatable attr_accessor :id, :now, :issuer, :assertion_consumer_service_url, :name_id_format, :destination attr_accessor :version attr_reader :configuration def initialize(configuration: Saml::Kit.configuration) @configuration = configuration @id = Id.generate @issuer = configuration.issuer @name_id_format = Namespaces::PERSISTENT @now = Time.now.utc @version = "2.0" end # @deprecated Use {#assertion_consumer_service_url} instead of this method. def acs_url Saml::Kit.deprecate("acs_url is deprecated. Use assertion_consumer_service_url instead") self.assertion_consumer_service_url end # @deprecated Use {#assertion_consumer_service_url=} instead of this method. def acs_url=(value) Saml::Kit.deprecate("acs_url= is deprecated. Use assertion_consumer_service_url= instead") self.assertion_consumer_service_url = value end def build Saml::Kit::AuthenticationRequest.new(to_xml) end private def request_options options = { "xmlns:samlp" => Namespaces::PROTOCOL, "xmlns:saml" => Namespaces::ASSERTION, ID: id, Version: version, IssueInstant: now.utc.iso8601, Destination: destination, } if assertion_consumer_service_url.present? options[:AssertionConsumerServiceURL] = assertion_consumer_service_url end options end end end end end