JWT 토큰은 주로 "Bearer "라는 접두사와 함께 전송되곤 한다. 해당 접두사는 실제 토큰 값과 구분되기 위해 사용되며, 실제 토큰 처리를 위해 이 접두사를 제거해야 할 필요가 있다.
public String substringToken(String tokenValue) {
if (StringUtils.hasText(tokenValue) && tokenValue.startsWith(BEARER_PREFIX)) {
return tokenValue.substring(7);
}
logger.error("Not Found Token");
throw new NullPointerException("Not Found Token");
}
함수 정의:
substringToken
함수는 주어진 tokenValue
문자열에서 "Bearer " 접두사를 제거하고 실제 토큰 값을 반환한다.
StringUtils.hasText(tokenValue):
입력된 tokenValue
가 비어 있지 않은지 확인한다. StringUtils는 스프링 프레임워크에서 제공하는 문자열 처리 유틸리티 클래스이다.
tokenValue.startsWith(BEARER_PREFIX):
입력된 tokenValue
가 BEARER_PREFIX
즉, "Bearer "로 시작하는지 확인한다.
tokenValue.substring(7):
만약 위의 두 조건이 모두 참이라면, 7번째 인덱스부터의 문자열(실제 토큰 값)을 반환한다. 이는 "Bearer " 문자열의 길이가 7이기 때문이다.
에러 처리:
위의 조건들 중 하나라도 만족하지 않는다면, "Not Found Token"이라는 에러 메시지를 로그에 출력하고, NullPointerException
을 발생시킨다.