Search in sources :

Example 16 with SigningHandler

use of org.forgerock.json.jose.jws.handlers.SigningHandler in project OpenAM by OpenRock.

the class OpenIdConnectTokenGenerationImpl method symmetricSign.

private SignedJwt symmetricSign(STSOpenIdConnectToken openIdConnectToken, JwsAlgorithm jwsAlgorithm, byte[] clientSecret) throws TokenCreationException {
    if (!JwsAlgorithmType.HMAC.equals(jwsAlgorithm.getAlgorithmType())) {
        throw new TokenCreationException(ResourceException.BAD_REQUEST, "Exception in " + "OpenIdConnectTokenGenerationImpl#symmetricSign: algorithm type not HMAC but " + jwsAlgorithm.getAlgorithmType());
    }
    final SigningHandler signingHandler = new SigningManager().newHmacSigningHandler(clientSecret);
    JwsHeaderBuilder builder = jwtBuilderFactory.jws(signingHandler).headers().alg(jwsAlgorithm);
    JwtClaimsSet claimsSet = jwtBuilderFactory.claims().claims(openIdConnectToken.asMap()).build();
    return builder.done().claims(claimsSet).asJwt();
}
Also used : JwtClaimsSet(org.forgerock.json.jose.jwt.JwtClaimsSet) JwsHeaderBuilder(org.forgerock.json.jose.builders.JwsHeaderBuilder) TokenCreationException(org.forgerock.openam.sts.TokenCreationException) SigningHandler(org.forgerock.json.jose.jws.handlers.SigningHandler) SigningManager(org.forgerock.json.jose.jws.SigningManager)

Aggregations

SigningHandler (org.forgerock.json.jose.jws.handlers.SigningHandler)16 JwtClaimsSet (org.forgerock.json.jose.jwt.JwtClaimsSet)11 JwsHeader (org.forgerock.json.jose.jws.JwsHeader)7 NOPSigningHandler (org.forgerock.json.jose.jws.handlers.NOPSigningHandler)7 Test (org.testng.annotations.Test)7 SigningManager (org.forgerock.json.jose.jws.SigningManager)4 JwsHeaderBuilder (org.forgerock.json.jose.builders.JwsHeaderBuilder)3 SignedJwt (org.forgerock.json.jose.jws.SignedJwt)3 JwsAlgorithm (org.forgerock.json.jose.jws.JwsAlgorithm)2 RestAuthException (org.forgerock.openam.core.rest.authn.exceptions.RestAuthException)2 TokenCreationException (org.forgerock.openam.sts.TokenCreationException)2 BigInteger (java.math.BigInteger)1 KeyPair (java.security.KeyPair)1 PublicKey (java.security.PublicKey)1 SignatureException (java.security.SignatureException)1 RSAPublicKey (java.security.interfaces.RSAPublicKey)1 SecretKey (javax.crypto.SecretKey)1 JwtRuntimeException (org.forgerock.json.jose.exceptions.JwtRuntimeException)1 JwtTokenHandler (org.forgerock.selfservice.stages.tokenhandlers.JwtTokenHandler)1