return BEARER_PREFIX +
Jwts.builder()
.setSubject(String.valueOf(userId))
.claim("email", email)
.claim("userRole", userRole)
.claim("nickname", nickname)
.setExpiration(new Date(date.getTime() + tokenTime))
.setIssuedAt(date) // 발급일
.signWith(key, signatureAlgorithm) // 암호화 알고리즘
.compact();
}

토큰을 생성하는 코드에서 갑자기 에러가 발생

취약점으로 jjwt-impl 버전먼 0.12.6으로 올렸음
그러다 보니 나머지 버전이 일치하지 않았던것이 원인
버전 12.6으로 통일
jwt 버전이 올라가면서 예전 방식이 종료 됨
@Slf4j(topic = "JwtUtil")
@Component
public class JwtUtil {
private static final String BEARER_PREFIX = "Bearer ";
@Value("${jwt.expiration}")
private long tokenTime; // 60분
@Value("${jwt.secret}")
private String secretKey;
private SecretKey key;
//private Key key;
//private final SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
@PostConstruct
public void init() {
byte[] bytes = Base64.getDecoder().decode(secretKey);
key = Keys.hmacShaKeyFor(bytes);
}
public String createToken(Long userId, String email, String nickname ,UserRole userRole) {
Date date = new Date();
return BEARER_PREFIX +
Jwts.builder().subject(String.valueOf(userId))
.claim("email", email)
.claim("userRole", userRole)
.claim("nickname", nickname)
.expiration(new Date(date.getTime() + tokenTime))
.issuedAt(date) // 발급일
.compact();
}
public String substringToken(String tokenValue) {
if (StringUtils.hasText(tokenValue) && tokenValue.startsWith(BEARER_PREFIX)) {
return tokenValue.substring(7);
}
throw new ServerException("Not Found Token");
}
public Claims extractClaims(String token) {
return Jwts.parser()
.verifyWith(key)
.build()
.parseSignedClaims(token)
.getPayload();
}
}

수정

url을 추가했는데 필터는 통과되는데
아무리 해도 컨트롤러로 들어오지 못 하는 상황

디버깅을 하고 보니 경로를 todos 가 아닌 todo로 전달 중이였음