Module: Saml
- Defined in:
- lib/saml.rb,
lib/saml/base.rb,
lib/saml/util.rb,
lib/saml/config.rb,
lib/saml/version.rb,
lib/saml/artifact.rb,
lib/saml/encoding.rb,
lib/saml/provider.rb,
lib/saml/response.rb,
lib/saml/assertion.rb,
lib/saml/xml_helpers.rb,
lib/saml/notification.rb,
lib/saml/authn_request.rb,
lib/saml/bindings/soap.rb,
lib/saml/null_provider.rb,
lib/saml/basic_provider.rb,
lib/saml/logout_request.rb,
lib/saml/elements/status.rb,
lib/saml/logout_response.rb,
lib/saml/artifact_resolve.rb,
lib/saml/elements/name_id.rb,
lib/saml/elements/subject.rb,
lib/saml/artifact_response.rb,
lib/saml/elements/key_info.rb,
lib/saml/bindings/http_post.rb,
lib/saml/elements/attribute.rb,
lib/saml/elements/signature.rb,
lib/saml/elements/conditions.rb,
lib/saml/provider_stores/url.rb,
lib/saml/elements/status_code.rb,
lib/saml/provider_stores/file.rb,
lib/saml/elements/organization.rb,
lib/saml/elements/service_name.rb,
lib/saml/bindings/http_artifact.rb,
lib/saml/bindings/http_redirect.rb,
lib/saml/elements/authn_context.rb,
lib/saml/elements/md_extensions.rb,
lib/saml/elements/status_detail.rb,
lib/saml/elements/contact_person.rb,
lib/saml/elements/key_descriptor.rb,
lib/saml/elements/name_id_format.rb,
lib/saml/rails/controller_helper.rb,
lib/saml/elements/authn_statement.rb,
lib/saml/elements/sub_status_code.rb,
lib/saml/elements/organization_url.rb,
lib/saml/elements/publication_info.rb,
lib/saml/elements/samlp_extensions.rb,
lib/saml/elements/subject_locality.rb,
lib/saml/elements/entity_attributes.rb,
lib/saml/elements/entity_descriptor.rb,
lib/saml/elements/organization_name.rb,
lib/saml/elements/sp_sso_descriptor.rb,
lib/saml/complex_types/endpoint_type.rb,
lib/saml/elements/idp_sso_descriptor.rb,
lib/saml/elements/key_info/x509_data.rb,
lib/saml/complex_types/attribute_type.rb,
lib/saml/elements/attribute_statement.rb,
lib/saml/elements/encrypted_assertion.rb,
lib/saml/elements/encrypted_attribute.rb,
lib/saml/elements/entities_descriptor.rb,
lib/saml/elements/requested_attribute.rb,
lib/saml/elements/service_description.rb,
lib/saml/elements/signature/reference.rb,
lib/saml/elements/signature/transform.rb,
lib/saml/elements/audience_restriction.rb,
lib/saml/elements/signature/transforms.rb,
lib/saml/elements/subject_confirmation.rb,
lib/saml/elements/signature/signed_info.rb,
lib/saml/elements/requested_authn_context.rb,
lib/saml/elements/signature/digest_method.rb,
lib/saml/complex_types/localized_name_type.rb,
lib/saml/complex_types/sso_descriptor_type.rb,
lib/saml/elements/authenticating_authority.rb,
lib/saml/complex_types/role_descriptor_type.rb,
lib/saml/complex_types/status_response_type.rb,
lib/saml/elements/organization_display_name.rb,
lib/saml/elements/subject_confirmation_data.rb,
lib/saml/complex_types/indexed_endpoint_type.rb,
lib/saml/complex_types/request_abstract_type.rb,
lib/saml/elements/signature/signature_method.rb,
lib/saml/elements/attribute_consuming_service.rb,
lib/saml/complex_types/statement_abstract_type.rb,
lib/saml/elements/attribute_authority_descriptor.rb,
lib/saml/elements/signature/inclusive_namespaces.rb,
lib/saml/elements/signature/canonicalization_method.rb
Defined Under Namespace
Modules: Base, Bindings, ClassRefs, ComplexTypes, Config, Elements, Errors, Notification, ProtocolBinding, Provider, ProviderStores, Rails, SubStatusCodes, TopLevelCodes, XMLHelpers
Classes: Artifact, ArtifactResolve, ArtifactResponse, Assertion, AuthnRequest, BasicProvider, Encoding, LogoutRequest, LogoutResponse, NullProvider, Response, Util
Constant Summary
collapse
- MD_NAMESPACE =
'urn:oasis:names:tc:SAML:2.0:metadata'
- MD_RPI_NAMESPACE =
'urn:oasis:names:tc:SAML:metadata:rpi'
- MD_ATTR_NAMESPACE =
'urn:oasis:names:tc:SAML:metadata:attribute'
- SAML_NAMESPACE =
'urn:oasis:names:tc:SAML:2.0:assertion'
- SAMLP_NAMESPACE =
'urn:oasis:names:tc:SAML:2.0:protocol'
- XML_DSIG_NAMESPACE =
'http://www.w3.org/2000/09/xmldsig#'
- SAML_VERSION =
'2.0'
- VERSION =
"2.6.4"
Class Method Summary
collapse
Class Method Details
.current_provider ⇒ Object
171
172
173
|
# File 'lib/saml.rb', line 171
def self.current_provider
Thread.current['saml_current_provider'] || NullProvider.new
end
|
.current_provider=(provider) ⇒ Object
175
176
177
|
# File 'lib/saml.rb', line 175
def self.current_provider=(provider)
Thread.current['saml_current_provider'] = provider
end
|
.current_store ⇒ Object
179
180
181
182
183
184
|
# File 'lib/saml.rb', line 179
def self.current_store
store_name = Thread.current['saml_current_store']
Saml::Config.registered_stores[store_name] ||
Saml::Config.registered_stores[Saml::Config.default_store] ||
raise(Errors::InvalidStore.new(store_name))
end
|
.current_store=(store_name) ⇒ Object
186
187
188
|
# File 'lib/saml.rb', line 186
def self.current_store=(store_name)
Thread.current['saml_current_store'] = store_name
end
|
.generate_id ⇒ Object
194
195
196
|
# File 'lib/saml.rb', line 194
def self.generate_id
"_#{::SecureRandom.hex(20)}"
end
|
.parse_message(message, type) ⇒ Object
206
207
208
209
210
211
212
213
214
215
|
# File 'lib/saml.rb', line 206
def self.parse_message(message, type)
if %w(authn_request response logout_request logout_response artifact_resolve artifact_response).include?(type.to_s)
klass = "Saml::#{type.to_s.camelize}".constantize
klass.parse(message, single: true)
elsif klass = type.to_s.camelize.safe_constantize
klass.parse(message, single: true)
else
nil
end
end
|
.provider(entity_id) ⇒ Object
198
199
200
201
202
203
204
|
# File 'lib/saml.rb', line 198
def self.provider(entity_id)
if current_provider.entity_id == entity_id
current_provider
else
current_store.find_by_entity_id(entity_id) || raise(Saml::Errors::InvalidProvider.new("Cannot find provider with entity_id: #{entity_id}"))
end
end
|
.setup {|Saml::Config| ... } ⇒ Object
190
191
192
|
# File 'lib/saml.rb', line 190
def self.setup
yield Saml::Config
end
|