我有一个 spring boot 应用程序,它在成功登录时生成 jwt 令牌。并且令牌将返回给用户,但每次重新启动应用程序时令牌都会失效。我在属性文件中存储了一个密钥以供测试。这是我生成它的代码,
public String createToken(String username, String role) {
Claims claims = Jwts.claims().setSubject(username);
claims.put("auth", role);
claims.put("test", "test");
Date now = new Date();
Date validity = new Date(now.getTime() + validityInMilliseconds);
return Jwts.builder()//
.setClaims(claims)//
.setIssuedAt(now)//
.setExpiration(validity)//
.signWith(SignatureAlgorithm.HS256, secretKey)//
.compact();
}
Run Code Online (Sandbox Code Playgroud)
即使应用程序重新启动,我也希望验证令牌。任何关于我可能做错的事情的建议都会受到赞赏。
我的配置类
public class JwtTokenFilterConfigurer extends SecurityConfigurerAdapter<DefaultSecurityFilterChain, HttpSecurity> {
private JwtTokenProvider jwtTokenProvider;
public JwtTokenFilterConfigurer(JwtTokenProvider jwtTokenProvider) {
this.jwtTokenProvider = jwtTokenProvider;
}
@Override
public void configure(HttpSecurity http) throws Exception {
JwtTokenFilter customFilter = new JwtTokenFilter(jwtTokenProvider);
http.addFilterBefore(customFilter, UsernamePasswordAuthenticationFilter.class);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1072 次 |
最近记录: |