Sha256: c30ad32231383d89e5cd8d6ff1ac76751404a3fcd46aa2ec909db9cebb8b2b38

Contents?: true

Size: 936 Bytes

Versions: 3

Compression:

Stored size: 936 Bytes

Contents

module Saml
  module Bindings
    class SOAP
      class << self

        SOAP_ACTION = 'http://www.oasis-open.org/committees/security'

        def create_response_xml(response)
          Saml::Util.sign_xml(response, :soap)
        end

        def post_message(message, response_type)
          signed_message = Saml::Util.sign_xml(message, :soap)

          http_response = Saml::Util.post(message.destination, signed_message, { 'SOAPAction' => SOAP_ACTION } )

          if http_response.code == "200"
            response = Saml.parse_message(http_response.body, response_type)
            Saml::Util.verify_xml(response, http_response.body)
          else
            nil
          end
        end

        def receive_message(request, type)
          raw_xml = request.body.dup.read
          message = Saml.parse_message(raw_xml, type)

          Saml::Util.verify_xml(message, raw_xml)
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
libsaml-2.1.6 lib/saml/bindings/soap.rb
libsaml-2.1.5 lib/saml/bindings/soap.rb
libsaml-2.1.4 lib/saml/bindings/soap.rb