2

我正在使用下面的代码生成 JWT 令牌

 JwsHeaders headers = new JwsHeaders(SignatureAlgorithm.HS256);
        JwtClaims claims = new JwtClaims();
        claims.setSubject(login);
        claims.setIssuer(issuer);
        claims.setAudiences(roles);
        Calendar now = Calendar.getInstance();
        long issuedAt = now.getTimeInMillis() / 1000;
        claims.setIssuedAt(issuedAt);
        claims.setExpiryTime(issuedAt + EXPIRY_PERIOD);

        JwsCompactProducer jws = new JwsJwtCompactProducer(headers, claims);
        return jws.signWith(new HmacJwsSignatureProvider(secret.getBytes(), SignatureAlgorithm.HS256));

当此代码生成的令牌通过 JweCompactConsumer 类时,将抛出 JweException。在日志中我可以看到警告消息

oacrsjose.jwe.JweCompactConsumer :预计 5 个 JWE 部件

我需要如何正确生成?

4

1 回答 1

1

解决方案非常简单

在我的身份验证过滤器中,我需要禁用 JWE

 setJweRequired(false);

在此之后,所有 JWE 要求的检查都被省略

于 2019-07-21T05:56:25.107 回答