class SAML2::Conditions

def self.from_xml(node)

(see Base.from_xml)
def self.from_xml(node)
  return nil unless node
  result = new
  result.from_xml(node)
  result
end

def build(builder)

(see Base#build)
def build(builder)
  builder['saml'].Conditions do |conditions|
    conditions.parent['NotBefore'] = not_before.iso8601 if not_before
    conditions.parent['NotOnOrAfter'] = not_on_or_after.iso8601 if not_on_or_after
    each do |condition|
      condition.build(conditions)
    end
  end
end

def from_xml(node)

(see Base#from_xml)
def from_xml(node)
  @xml = node
  @not_before = Time.parse(node['NotBefore']) if node['NotBefore']
  @not_on_or_after = Time.parse(node['NotOnOrAfter']) if node['NotOnOrAfter']
  replace(node.element_children.map do |restriction|
    klass = if self.class.const_defined?(restriction.name, false)
      self.class.const_get(restriction.name, false)
    else
      Condition
    end
    klass.from_xml(restriction)
  end)
end

def valid?(now: Time.now.utc, **options)

Deprecated:
def valid?(now: Time.now.utc, **options)
  validate(verification_time: now, **options).empty?
end

def validate(verification_time: Time.now.utc, **options)

Returns:
  • (Array<>) -

Parameters:
  • options () --
  • verification_time () -- optional [Time]
def validate(verification_time: Time.now.utc, **options)
  options[:verification_time] ||= verification_time
  errors = []
  if not_before && verification_time < not_before
    errors << "not_before #{not_before} is later than now (#{verification_time})"
  end
  if not_on_or_after && verification_time >= not_on_or_after
    errors << "not_on_or_after #{not_on_or_after} is earlier than now (#{verification_time})"
  end
  each do |condition|
    errors.concat(condition.validate(**options))
  end
  errors
end