Commit 4c103b3
Changed files (7)
lib/saml/kit/logout_response.rb
@@ -1,5 +1,6 @@
module Saml
module Kit
+ # This class is used to parse a LogoutResponse SAML document.
class LogoutResponse < Document
include Respondable
@@ -8,6 +9,7 @@ module Saml
super(xml, name: "LogoutResponse", configuration: configuration)
end
+ # @deprecated Use {#Saml::Kit::Builders::LogoutResponse} instead of this.
Builder = ActiveSupport::Deprecation::DeprecatedConstantProxy.new('Saml::Kit::LogoutResponse::Builder', 'Saml::Kit::Builders::LogoutResponse')
end
end
lib/saml/kit/requestable.rb
@@ -3,6 +3,7 @@ module Saml
module Requestable
extend ActiveSupport::Concern
+ # @!visibility private
def query_string_parameter
'SAMLRequest'
end
lib/saml/kit/respondable.rb
@@ -9,18 +9,22 @@ module Saml
validate :must_match_request_id
end
+ # @!visibility private
def query_string_parameter
'SAMLResponse'
end
+ # Returns the /Status/StatusCode@Value
def status_code
to_h.fetch(name, {}).fetch('Status', {}).fetch('StatusCode', {}).fetch('Value', nil)
end
+ # Returns the /InResponseTo attribute.
def in_response_to
to_h.fetch(name, {}).fetch('InResponseTo', nil)
end
+ # Returns true if the Status code is #{Saml::Kit::Namespaces::SUCCESS}
def success?
Namespaces::SUCCESS == status_code
end
lib/saml/kit/signatures.rb
@@ -1,37 +1,45 @@
module Saml
module Kit
class Signatures # :nodoc:
+ # @!visibility private
attr_reader :configuration
+ # @!visibility private
def initialize(configuration:)
@configuration = configuration
end
+ # @!visibility private
def build(reference_id)
return nil unless configuration.sign?
Saml::Kit::Builders::XmlSignature.new(reference_id, configuration: configuration)
end
+ # @!visibility private
def complete(raw_xml)
return raw_xml unless configuration.sign?
private_key = configuration.private_keys(use: :signing).last
Xmldsig::SignedDocument.new(raw_xml).sign(private_key)
end
+ # @!visibility private
def self.sign(xml: ::Builder::XmlMarkup.new, configuration: Saml::Kit.configuration)
signatures = Saml::Kit::Signatures.new(configuration: configuration)
yield xml, XmlSignatureTemplate.new(xml, signatures)
signatures.complete(xml.target!)
end
- class XmlSignatureTemplate
+ class XmlSignatureTemplate # :nodoc:
+ # @!visibility private
attr_reader :signatures, :xml
+ # @!visibility private
def initialize(xml, signatures)
@signatures = signatures
@xml = xml
end
+ # @!visibility private
def template(reference_id)
Template.new(signatures.build(reference_id)).to_xml(xml: xml)
end
lib/saml/kit/translatable.rb
@@ -1,6 +1,7 @@
module Saml
module Kit
module Translatable
+ # @!visibility private
def error_message(attribute, type: :invalid)
I18n.translate(attribute, scope: "saml/kit.errors.#{name}")
end
lib/saml/kit/trustable.rb
@@ -13,6 +13,7 @@ module Saml
signature_manually_verified || signature.present?
end
+ # @!visibility private
def signature
xml_hash = to_h.fetch(name, {}).fetch('Signature', nil)
xml_hash ? Signature.new(xml_hash) : nil
@@ -24,10 +25,12 @@ module Saml
signature.trusted?(provider)
end
+ # @!visibility private
def provider
configuration.registry.metadata_for(issuer)
end
+ # @!visibility private
def signature_verified!
@signature_manually_verified = true
end
lib/saml/kit/xsd_validatable.rb
@@ -1,6 +1,7 @@
module Saml
module Kit
module XsdValidatable
+ # @!visibility private
def matches_xsd?(xsd)
Dir.chdir(File.dirname(xsd)) do
xsd = Nokogiri::XML::Schema(IO.read(xsd))