我想不出一种方法来增加比勒
在本地主机上:8080我得到了这个
这个应用程序没有/error的显式映射,所以您认为这是一个退步。
5月14日(星期六):13:48 CST 2022发生了一个意外的错误(type=Unauthorized,status=401)。未经授权
JwtUtil.java
package com.ecommerce.site.util;
public class JwtUtil {
@Value("${jwt.secret}")
private String SECRET_KEY;
private static final int TOKEN_VALIDITY = 3600 * 5;
public String getUsernameFromToken(String token) {
return getClaimFromToken(token, Claims::getSubject);
}
public <T> T getClaimFromToken(String token, Function<Claims, T> claimsResolver) {
final Claims claims = getAllClaimsFromToken(token);
return claimsResolver.apply(claims);
}
private Claims getAllClaimsFromToken(String token) {
return Jwts.parser().setSigningKey(SECRET_KEY).parseClaimsJws(token).getBody();
}
public Boolean validateToken(String token, UserDetails userDetails) {
final String username = getUsernameFromToken(token);
return (username.equals(userDetails.getUsername()) && !isTokenExpired(token));
}
private Boolean isTokenExpired(String token) {
final Date expiration = getExpirationDateFromToken(token);
return expiration.before(new Date());
}
public Date getExpirationDateFromToken(String token) {
return getClaimFromToken(token, Claims::getExpiration);
}
public String generateToken(UserDetails userDetails) {
Map<String, Object> claims = new HashMap<>();
return Jwts.builder()
.setClaims(claims)
.setSubject(userDetails.getUsername())
.setIssuedAt(new Date(System.currentTimeMillis()))
.setExpiration(new Date(System.currentTimeMillis() + TOKEN_VALIDITY * 1000))
.signWith(SignatureAlgorithm.HS512, SECRET_KEY)
.compact();
}
}
enter code here发布于 2022-05-18 23:17:51
我通过清除web应用程序中的本地存储来修正我的错误,因为有一个旧的令牌被存储起来,把事情搞砸了。
https://stackoverflow.com/questions/72232565
复制相似问题