Class: OneLogin::RubySaml::SamlMessage

Inherits:
Object
  • Object
show all
Includes:
REXML
Defined in:
lib/onelogin/ruby-saml/saml_message.rb

Constant Summary collapse

ASSERTION =
"urn:oasis:names:tc:SAML:2.0:assertion"
PROTOCOL =
"urn:oasis:names:tc:SAML:2.0:protocol"

Instance Method Summary collapse

Instance Method Details

#valid_saml?(document, soft = true) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
18
19
20
21
22
23
24
25
# File 'lib/onelogin/ruby-saml/saml_message.rb', line 15

def valid_saml?(document, soft = true)
  Dir.chdir(File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'schemas'))) do
    @schema = Nokogiri::XML::Schema(IO.read('saml-schema-protocol-2.0.xsd'))
    @xml = Nokogiri::XML(document.to_s)
  end
  if soft
    @schema.validate(@xml).map{ return false }
  else
    @schema.validate(@xml).map{ |error| validation_error("#{error.message}\n\n#{@xml.to_s}") }
  end
end

#validation_error(message) ⇒ Object

Raises:



27
28
29
# File 'lib/onelogin/ruby-saml/saml_message.rb', line 27

def validation_error(message)
  raise ValidationError.new(message)
end