public RequestAbstractType getSAMLRequest(String samlMessage)
     throws ParsingException, ConfigurationException, ProcessingException {
   InputStream is = null;
   SAML2Request saml2Request = new SAML2Request();
   if (redirectProfile) {
     try {
       is = RedirectBindingUtil.base64DeflateDecode(samlMessage);
     } catch (Exception e) {
       logger.samlParsingError(e);
       throw logger.parserError(e);
     }
   } else {
     byte[] samlBytes = PostBindingUtil.base64Decode(samlMessage);
     logger.trace("SAML Request Document: " + new String(samlBytes));
     is = new ByteArrayInputStream(samlBytes);
   }
   return saml2Request.getRequestType(is);
 }