Search in sources :

Example 6 with JwtHeader

use of org.gluu.oxauth.model.jwt.JwtHeader in project oxAuth by GluuFederation.

the class JwtState method headerToJSONObject.

protected JSONObject headerToJSONObject() throws InvalidJwtException {
    JwtHeader jwtHeader = new JwtHeader();
    jwtHeader.setType(type);
    if (keyEncryptionAlgorithm != null && blockEncryptionAlgorithm != null) {
        jwtHeader.setAlgorithm(keyEncryptionAlgorithm);
        jwtHeader.setEncryptionMethod(blockEncryptionAlgorithm);
    } else {
        jwtHeader.setAlgorithm(signatureAlgorithm);
    }
    jwtHeader.setKeyId(keyId);
    return jwtHeader.toJsonObject();
}
Also used : JwtHeader(org.gluu.oxauth.model.jwt.JwtHeader)

Example 7 with JwtHeader

use of org.gluu.oxauth.model.jwt.JwtHeader in project oxAuth by GluuFederation.

the class JwtState method getEncodedJwt.

public String getEncodedJwt(JSONObject jwks) throws Exception {
    String encodedJwt = null;
    if (keyEncryptionAlgorithm != null && blockEncryptionAlgorithm != null) {
        JweEncrypterImpl jweEncrypter;
        if (cryptoProvider != null && jwks != null) {
            PublicKey publicKey = cryptoProvider.getPublicKey(keyId, jwks, null);
            jweEncrypter = new JweEncrypterImpl(keyEncryptionAlgorithm, blockEncryptionAlgorithm, publicKey);
        } else {
            jweEncrypter = new JweEncrypterImpl(keyEncryptionAlgorithm, blockEncryptionAlgorithm, sharedKey.getBytes(Util.UTF8_STRING_ENCODING));
        }
        String header = ClientUtil.toPrettyJson(headerToJSONObject());
        String encodedHeader = Base64Util.base64urlencode(header.getBytes(Util.UTF8_STRING_ENCODING));
        String claims = ClientUtil.toPrettyJson(payloadToJSONObject());
        String encodedClaims = Base64Util.base64urlencode(claims.getBytes(Util.UTF8_STRING_ENCODING));
        Jwe jwe = new Jwe();
        jwe.setHeader(new JwtHeader(encodedHeader));
        jwe.setClaims(new JwtClaims(encodedClaims));
        jweEncrypter.encrypt(jwe);
        encodedJwt = jwe.toString();
    } else {
        if (cryptoProvider == null) {
            throw new Exception("The Crypto Provider cannot be null.");
        }
        JSONObject headerJsonObject = headerToJSONObject();
        JSONObject payloadJsonObject = payloadToJSONObject();
        String headerString = ClientUtil.toPrettyJson(headerJsonObject);
        String payloadString = ClientUtil.toPrettyJson(payloadJsonObject);
        String encodedHeader = Base64Util.base64urlencode(headerString.getBytes(Util.UTF8_STRING_ENCODING));
        String encodedPayload = Base64Util.base64urlencode(payloadString.getBytes(Util.UTF8_STRING_ENCODING));
        String signingInput = encodedHeader + "." + encodedPayload;
        String encodedSignature = cryptoProvider.sign(signingInput, keyId, sharedKey, signatureAlgorithm);
        encodedJwt = encodedHeader + "." + encodedPayload + "." + encodedSignature;
    }
    return encodedJwt;
}
Also used : JwtHeader(org.gluu.oxauth.model.jwt.JwtHeader) JSONObject(org.json.JSONObject) JwtClaims(org.gluu.oxauth.model.jwt.JwtClaims) PublicKey(java.security.PublicKey) Jwe(org.gluu.oxauth.model.jwe.Jwe) JweEncrypterImpl(org.gluu.oxauth.model.jwe.JweEncrypterImpl) JSONException(org.json.JSONException) InvalidJwtException(org.gluu.oxauth.model.exception.InvalidJwtException) UnsupportedEncodingException(java.io.UnsupportedEncodingException)

Aggregations

JwtHeader (org.gluu.oxauth.model.jwt.JwtHeader)7 InvalidJwtException (org.gluu.oxauth.model.exception.InvalidJwtException)4 UnsupportedEncodingException (java.io.UnsupportedEncodingException)3 JwtClaims (org.gluu.oxauth.model.jwt.JwtClaims)3 PublicKey (java.security.PublicKey)2 InvalidJweException (org.gluu.oxauth.model.exception.InvalidJweException)2 Jwe (org.gluu.oxauth.model.jwe.Jwe)2 JweEncrypterImpl (org.gluu.oxauth.model.jwe.JweEncrypterImpl)2 JSONException (org.json.JSONException)2 JSONObject (org.json.JSONObject)2 JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)1 JWEDecrypter (com.nimbusds.jose.JWEDecrypter)1 EncryptedJWT (com.nimbusds.jwt.EncryptedJWT)1 SignedJWT (com.nimbusds.jwt.SignedJWT)1 Key (java.security.Key)1 MessageDigest (java.security.MessageDigest)1 NoSuchAlgorithmException (java.security.NoSuchAlgorithmException)1 PrivateKey (java.security.PrivateKey)1 ParseException (java.text.ParseException)1 SecretKeySpec (javax.crypto.spec.SecretKeySpec)1