Class: Saml::Kit::Bindings::HttpPost

Inherits:
Binding
  • Object
show all
Includes:
Serializable
Defined in:
lib/saml/kit/bindings/http_post.rb

Overview

Instance Attribute Summary

Attributes inherited from Binding

#binding, #location

Instance Method Summary collapse

Methods included from Serializable

#decode, #deflate, #encode, #escape, #inflate, #unescape

Methods inherited from Binding

#==, #binding?, #eql?, #hash, #inspect, #to_h, #to_s

Constructor Details

#initialize(location:) ⇒ HttpPost

Returns a new instance of HttpPost.



8
9
10
# File 'lib/saml/kit/bindings/http_post.rb', line 8

def initialize(location:)
  super(binding: Saml::Kit::Bindings::HTTP_POST, location: location)
end

Instance Method Details

#deserialize(params, configuration: Saml::Kit.configuration) ⇒ Object



22
23
24
25
# File 'lib/saml/kit/bindings/http_post.rb', line 22

def deserialize(params, configuration: Saml::Kit.configuration)
  xml = decode(saml_param_from(params))
  Saml::Kit::Document.to_saml_document(xml, configuration: configuration)
end

#serialize(builder, relay_state: nil) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/saml/kit/bindings/http_post.rb', line 12

def serialize(builder, relay_state: nil)
  builder.destination = location
  document = builder.build
  saml_params = {
    document.query_string_parameter => Base64.strict_encode64(document.to_xml),
  }
  saml_params['RelayState'] = relay_state if relay_state.present?
  [location, saml_params]
end