Class: SAML2::Attribute::X500
- Inherits:
-
SAML2::Attribute
- Object
- Base
- SAML2::Attribute
- SAML2::Attribute::X500
- Defined in:
- lib/saml2/attribute/x500.rb
Defined Under Namespace
Modules: EduPerson, InetOrgPerson
Constant Summary collapse
- GIVEN_NAME =
'urn:oid:2.5.4.42'
- SN =
SURNAME = 'urn:oid:2.5.4.4'
- UID =
USERID = 'urn:oid:0.9.2342.19200300.100.1.1'
- MAIL =
'urn:oid:0.9.2342.19200300.100.1.3'
Instance Attribute Summary
Attributes inherited from SAML2::Attribute
#friendly_name, #name, #name_format, #value
Attributes inherited from Base
Class Method Summary collapse
-
.recognizes?(name_or_node) ⇒ Boolean
Returns true if the param should be an X500 Attribute.
Instance Method Summary collapse
-
#build(builder) ⇒ void
Serialize this object to XML, as part of a larger document.
-
#from_xml(node) ⇒ Base?
Create an appropriate object to represent the given XML element.
-
#initialize(name = nil, value = nil) ⇒ X500
constructor
Create a new X.500 attribute.
Methods inherited from SAML2::Attribute
create, element, from_xml, namespace
Methods inherited from Base
#decrypt, from_xml, #inspect, load_object_array, load_string_array, lookup_qname, #to_s, #to_xml
Constructor Details
#initialize(name = nil, value = nil) ⇒ X500
Create a new X.500 attribute.
The name format will always be set to URI.
54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/saml2/attribute/x500.rb', line 54 def initialize(name = nil, value = nil) # if they pass an OID, infer the friendly name friendly_name = OIDS[name] unless friendly_name # if they pass a friendly name, infer the OID proper_name = FRIENDLY_NAMES[name] if proper_name name, friendly_name = proper_name, name end end super(name, value, friendly_name, NameFormats::URI) end |
Class Method Details
.recognizes?(name_or_node) ⇒ Boolean
Returns true if the param should be an SAML2::Attribute::X500 Attribute.
36 37 38 39 40 41 42 43 44 |
# File 'lib/saml2/attribute/x500.rb', line 36 def self.recognizes?(name_or_node) if name_or_node.is_a?(Nokogiri::XML::Element) !!name_or_node.at_xpath("@x500:Encoding", Namespaces::ALL) || (name_or_node['NameFormat'] == NameFormats::URI || name_or_node['NameFormat'].nil?) && OIDS.include?(name_or_node['Name']) else FRIENDLY_NAMES.include?(name_or_node) || OIDS.include?(name_or_node) end end |
Instance Method Details
#build(builder) ⇒ void
This method returns an undefined value.
Serialize this object to XML, as part of a larger document
77 78 79 80 81 82 |
# File 'lib/saml2/attribute/x500.rb', line 77 def build(builder) super attr = builder.parent.last_element_child attr.add_namespace_definition('x500', Namespaces::X500) attr['x500:Encoding'] = 'LDAP' end |
#from_xml(node) ⇒ Base?
Create an appropriate object to represent the given XML element.
69 70 71 72 73 74 |
# File 'lib/saml2/attribute/x500.rb', line 69 def from_xml(node) super # infer the friendly name if not provided self.friendly_name ||= OIDS[name] self end |