Module: SAML2::Bindings::HTTP_POST
- Defined in:
- lib/saml2/bindings/http_post.rb
Constant Summary collapse
- URN =
"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Class Method Summary collapse
-
.decode(post_params) ⇒ [Message, String]
Decode and parse a Base64 encoded SAML message.
-
.encode(message, relay_state: nil) ⇒ Hash<String => String>
Encode a SAML message into Base64 POST params.
Class Method Details
.decode(post_params) ⇒ [Message, String]
Decode and parse a Base64 encoded SAML message.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/saml2/bindings/http_post.rb', line 18 def decode(post_params) base64 = post_params['SAMLRequest'] || post_params['SAMLResponse'] raise MissingMessage unless base64 raise MessageTooLarge if base64.bytesize > SAML2.config[:max_message_size] xml = begin Base64.decode64(base64) rescue ArgumentError raise CorruptMessage end = Message.parse(xml) [, post_params['RelayState']] end |
.encode(message, relay_state: nil) ⇒ Hash<String => String>
Encode a SAML message into Base64 POST params.
41 42 43 44 45 46 47 |
# File 'lib/saml2/bindings/http_post.rb', line 41 def encode(, relay_state: nil) xml = .to_s(pretty: false) key = .is_a?(Request) ? 'SAMLRequest' : 'SAMLResponse' post_params = { key => Base64.encode64(xml) } post_params['RelayState'] = relay_state if relay_state post_params end |