Class: Samlsso::SamlMessage
- Inherits:
-
Object
- Object
- Samlsso::SamlMessage
show all
- Includes:
- REXML
- Defined in:
- lib/samlsso/saml_message.rb
Constant Summary
collapse
- ASSERTION =
"urn:oasis:names:tc:SAML:2.0:assertion"
- PROTOCOL =
"urn:oasis:names:tc:SAML:2.0:protocol"
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.schema ⇒ Object
17
18
19
20
21
22
23
|
# File 'lib/samlsso/saml_message.rb', line 17
def self.schema
@schema ||= Mutex.new.synchronize do
Dir.chdir(File.expand_path("../../../schemas", __FILE__)) do
::Nokogiri::XML::Schema(File.read("saml-schema-protocol-2.0.xsd"))
end
end
end
|
Instance Method Details
#valid_saml?(document, soft = true) ⇒ Boolean
25
26
27
28
29
30
31
32
|
# File 'lib/samlsso/saml_message.rb', line 25
def valid_saml?(document, soft = true)
xml = Nokogiri::XML(document.to_s)
SamlMessage.schema.validate(xml).map do |error|
break false if soft
validation_error("#{error.message}\n\n#{xml.to_s}")
end
end
|
#validation_error(message) ⇒ Object
34
35
36
|
# File 'lib/samlsso/saml_message.rb', line 34
def validation_error(message)
raise ValidationError.new(message)
end
|