We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
问题描述 在版本 0.11.5 中,JwtBuilder 实例被作为类的成员变量复用,当多个线程并发调用 createToken 方法时,由于 JwtBuilder 非线程安全,其内部状态(如 Claims、Subject 等)可能被覆盖,导致生成的 Token 包含错误数据或发生不可预测的异常。
0.11.5
JwtBuilder
createToken
重现步骤
TokenProvider
预期行为 每次生成 Token 时,JwtBuilder 应独立操作,确保 Claims 和 Subject 正确性。
实际行为 高并发时生成的 Token 可能包含其他线程设置的 Claims 或 Subject。
代码示例(问题片段)
// 错误用法:复用 JwtBuilder 实例 private JwtBuilder jwtBuilder; public String createToken(JwtUserDto user) { Map<String, Object> claims = new HashMap<>(6); claims.put("userId", user.getId()); return jwtBuilder // 多线程操作此实例会导致状态竞争 .setClaims(claims) .setSubject(user.getUsername()) .compact(); }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
问题描述
在版本
0.11.5
中,JwtBuilder
实例被作为类的成员变量复用,当多个线程并发调用createToken
方法时,由于JwtBuilder
非线程安全,其内部状态(如 Claims、Subject 等)可能被覆盖,导致生成的 Token 包含错误数据或发生不可预测的异常。重现步骤
TokenProvider
的组件,复用JwtBuilder
实例。createToken
方法生成 Token。预期行为
每次生成 Token 时,
JwtBuilder
应独立操作,确保 Claims 和 Subject 正确性。实际行为
高并发时生成的 Token 可能包含其他线程设置的 Claims 或 Subject。
代码示例(问题片段)
The text was updated successfully, but these errors were encountered: