Example #1
0
  /**
   * Create a SAML2 auth request
   *
   * @param serviceURL URL of the service
   * @param identityURL URL of the identity provider
   * @return
   * @throws org.picketlink.common.exceptions.ConfigurationException
   */
  private AuthnRequestType createSAMLRequest(String serviceURL, String identityURL)
      throws ConfigurationException {
    if (serviceURL == null)
      throw new IllegalArgumentException(ErrorCodes.NULL_ARGUMENT + "serviceURL");
    if (identityURL == null)
      throw new IllegalArgumentException(ErrorCodes.NULL_ARGUMENT + "identityURL");

    SAML2Request saml2Request = new SAML2Request();
    String id = IDGenerator.create("ID_");
    return saml2Request.createAuthnRequestType(id, serviceURL, identityURL, serviceURL);
  }
  /**
   * Sign an RequestType at the root
   *
   * @param request
   * @param keypair Key Pair
   * @param digestMethod (Example: DigestMethod.SHA1)
   * @param signatureMethod (Example: SignatureMethod.DSA_SHA1)
   * @return
   * @throws ParserConfigurationException
   * @throws IOException
   * @throws SAXException
   * @throws XMLSignatureException
   * @throws MarshalException
   * @throws GeneralSecurityException
   */
  public Document sign(RequestAbstractType request, KeyPair keypair)
      throws SAXException, IOException, ParserConfigurationException, GeneralSecurityException,
          MarshalException, XMLSignatureException {
    SAML2Request saml2Request = new SAML2Request();
    Document doc = saml2Request.convert(request);
    doc.normalize();

    Node theSibling = getNextSiblingOfIssuer(doc);
    if (theSibling != null) {
      this.sibling = theSibling;
    }

    return sign(doc, request.getID(), keypair);
  }
 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);
 }
  public SAMLDocumentHolder getSAMLDocumentHolder(String samlMessage)
      throws ParsingException, ConfigurationException, ProcessingException {
    InputStream is = null;
    SAML2Request saml2Request = new SAML2Request();

    try {
      if (redirectProfile) {
        is = RedirectBindingUtil.base64DeflateDecode(samlMessage);
      } else {
        byte[] samlBytes = PostBindingUtil.base64Decode(samlMessage);
        logger.trace("SAML Request Document: " + new String(samlBytes));
        is = new ByteArrayInputStream(samlBytes);
      }
    } catch (Exception rte) {
      logger.samlBase64DecodingError(rte);
      throw logger.parserError(rte);
    }

    saml2Request.getSAML2ObjectFromStream(is);

    return saml2Request.getSamlDocumentHolder();
  }