Sha256: b85d1a585700f8571bd6a6538984d09615a920ea48ba1c5c6a38c16b4acacfa2

Contents?: true

Size: 1.16 KB

Versions: 3

Compression:

Stored size: 1.16 KB

Contents

require "xml_security"
require "time"


module Onelogin::Saml
  class IdpLogoutRequest
    attr_accessor :request, :document, :settings, :signature, :sig_alg
    def initialize(request, signature, sig_alg, settings)
      raise ArgumentError.new("Response cannot be nil") if request.nil?
      raise ArgumentError.new("Response cannot be nil") if signature.nil?
      raise ArgumentError.new("Response cannot be nil") if sig_alg.nil?
      self.request = request
      self.signature = signature
      self.sig_alg = sig_alg
      self.settings = settings
      self.document = XMLSecurity::SignedDocument.new(decode_request) if valid_request?
    end

    def issuer
      document.elements["//saml2:Issuer"].text
    end

    def name_id
      document.elements["//saml2:NameID"].text
    end

    def destination
      document.elements["//saml2p:LogoutRequest"].attributes["Destination"]
    end

    def id
      document.elements["//saml2p:LogoutRequest"].attributes["ID"]
    end

    private

    def decode_request
      XMLSecurity.decode_request(request)
    end

    def valid_request?
      XMLSecurity.validate_request(request, sig_alg, signature, settings)
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ruby-saml-for-portal-0.4.2 lib/onelogin/saml/idp_logout_request.rb
ruby-saml-for-portal-0.4.1 lib/onelogin/saml/idp_logout_request.rb
ruby-saml-for-portal-0.4.0 lib/onelogin/saml/idp_logout_request.rb