protected AuthnRequest getAuthnRequest(AuthenticationContext context) throws SAMLSSOException {

    AuthnRequest authnRequest = null;
    AuthenticationRequest authenticationRequest = context.getAuthenticationRequest();
    String[] samlRequestParams =
        authenticationRequest.getRequestQueryParam(SSOConstants.HTTP_POST_PARAM_SAML2_AUTH_REQ);
    String samlRequest = null;
    if (samlRequestParams != null && samlRequestParams.length > 0) {
      samlRequest = samlRequestParams[0];
      XMLObject xmlObject;
      if (authenticationRequest.isPost()) {
        xmlObject = unmarshall(SSOUtils.decodeForPost(samlRequest));
      } else {
        xmlObject = unmarshall(SSOUtils.decode(samlRequest));
      }
      if (xmlObject instanceof AuthnRequest) {
        authnRequest = (AuthnRequest) xmlObject;
      }
    }
    return authnRequest;
  }