应每个请求,我将执行以下操作(在包io.jsonwebtoken):中)
Jwts.parser().setSigningKey(secret).parseClaimsJws(token);我可以创建并保留实例字段并将其用于所有请求吗?
JwtParser jp = Jwts.parser().setSigningKey(secret);
public Claims getAllClaimsFromToken(String token) {
Jws<Claims> c = jp.parseClaimsJws(token);
return c.getBody();
}如果我这样做,getAllClaimsFromToken方法会是线程安全吗?
发布于 2021-09-20 20:42:53
现在不推荐Jwts.parser()了。请用返回一个Jwts.parserBuilder()的JwtParserBuilder替换它。从Jwts.parserBuilder().....build()返回的解析器实例是不可变的(ImmutableJwtParser),这意味着您可以在多线程环境中安全地使用它们。
JwtParser immutableJwtParser = Jwts.parserBuilder().setSigningKey(secret).build();
public Claims getAllClaimsFromToken(String token) {
Jws<Claims> c = immutableJwtParser.parseClaimsJws(token);
return c.getBody();
}https://stackoverflow.com/questions/69257928
复制相似问题