Sha256: 1474c70e046a277305f4405a25194bacc656a857ef7cd050a9b7de4c4818df41

Contents?: true

Size: 1.01 KB

Versions: 5

Compression:

Stored size: 1.01 KB

Contents

require "base64"
require "uuid"
require "zlib"
require "cgi"

module Onelogin::Saml
  class Authrequest
    def create(settings)
      uuid = "_" + UUID.new.generate
      time = Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ")
      request =
          "<samlp:AuthnRequest xmlns:samlp=\"urn:oasis:names:tc:SAML:2.0:protocol\" xmlns:saml=\"urn:oasis:names:tc:SAML:2.0:assertion\" ID=\"#{uuid}\" Version=\"2.0\" IssueInstant=\"#{time}\" Destination=\"#{settings.idp_sso_target_url}\" AssertionConsumerServiceURL=\"#{settings.assertion_consumer_service_url}\" ProtocolBinding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\">" +
          "<saml:Issuer>#{settings.issuer}</saml:Issuer>" +
          "<samlp:NameIDPolicy Format=\"#{settings.name_identifier_format}\" AllowCreate=\"true\"/>" +
          "</samlp:AuthnRequest>"
      request_params    = XMLSecurity.request_params(request)
      request_params = XMLSecurity.sign_query(request_params, settings)
      settings.idp_sso_target_url + "?" + request_params
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ruby-saml-for-portal-0.4.2 lib/onelogin/saml/authrequest.rb
ruby-saml-for-portal-0.4.1 lib/onelogin/saml/authrequest.rb
ruby-saml-for-portal-0.4.0 lib/onelogin/saml/authrequest.rb
ruby-saml-for-portal-0.3.9 lib/onelogin/saml/authrequest.rb
ruby-saml-for-portal-0.3.8 lib/onelogin/saml/authrequest.rb