lib/saml/elements/authn_statement.rb
module Saml
module Elements
class AuthnStatement
include Saml::Base
tag "AuthnStatement"
namespace 'saml'
attribute :authn_instant, Time, tag: "AuthnInstant", on_save: lambda { |val| val.utc.xmlschema }
attribute :session_index, String, tag: "SessionIndex"
attribute :session_not_on_or_after, Time, tag: "SessionNotOnOrAfter", on_save: lambda { |val| val.utc.xmlschema if val.present?}
has_one :subject_locality, Saml::Elements::SubjectLocality, tag: "SubjectLocality"
has_one :authn_context, Saml::Elements::AuthnContext, tag: "AuthnContext"
validates :authn_instant, :authn_context, presence: true
def initialize(*args)
options = args.extract_options!
@subject_locality = Saml::Elements::SubjectLocality.new(address: options.delete(:address)) if options[:address]
@authn_context = Saml::Elements::AuthnContext.new(authn_context_class_ref: options.delete(:authn_context_class_ref)) if options[:authn_context_class_ref]
super(*(args << options))
end
end
end
end