module SAML2::Bindings::HTTP_POST
def decode(post_params)
-
([Message, String])-
Parameters:
-
post_params(Hash) --String>
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 = Message.parse(xml) [message, post_params['RelayState']] end
def encode(message, relay_state: nil)
-
(Hash-String>)
Parameters:
-
relay_state() -- optional [String] -
message(Message) --
def encode(message, relay_state: nil) xml = message.to_s(pretty: false) key = message.is_a?(Request) ? 'SAMLRequest' : 'SAMLResponse' post_params = { key => Base64.encode64(xml) } post_params['RelayState'] = relay_state if relay_state post_params end