我在休息服务中使用JWT进行身份验证。我正在生成JsonWebKey来签署令牌。
static JsonWebKey jwk = RsaJwkGenerator.generateJwk(2048);
当客户端使用令牌发送请求时。我使用JWTConsumer和用于签署令牌的密钥来验证令牌,如下所示:
JwtConsumer jwtConsumer = new JwtConsumerBuilder()
.setRequireExpirationTime()
.setAllowedClockSkewInSeconds(30)
.setRequireSubject()
.setExpectedIssuer("techknowhub.com")
.setVerificationKey(jwk.getPublicKey())
.build();
try {
// Validate the JWT and process it to the Claims
JwtClaims jwtClaims = jwtConsumer.processToClaims(token);
System.out.println("JWT validation succeeded! " + jwtClaims);
} catch (InvalidJwtException e) {
System.out.println("JWT is Invalid: " + e);
}
现在JsonWebKey存储在一个静态变量中,该变量用于所有请求。我希望将此密钥存储在db / File系统中的某个位置,以便稍后检索以验证声明。
有哪些可供选择的选项?如何将此密钥对象存储在DB中?