-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
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
STOMP Authorization, Argument Resolver #15
base: develop
Are you sure you want to change the base?
Conversation
import org.springframework.util.StringUtils; | ||
import org.springframework.messaging.simp.stomp.StompHeaderAccessor; | ||
|
||
public class HeaderUtil { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
HeaderUtil보다는 TokenParser나 TokenUtil이 클래스 역할을 더 잘 드러내는 이름이라고 생각합니다.
public static String extractToken(HttpServletRequest request, String header, String tokenPrefix) { | ||
String bearerToken = request.getHeader(JwtVO.HEADER); | ||
if (bearerToken == null) { | ||
return null; | ||
} | ||
|
||
if (!bearerToken.startsWith(JwtVO.TOKEN_PREFIX)) { | ||
throw new CustomException(ErrorCode.INVALID_TOKEN_PREFIX_ERROR); | ||
} | ||
|
||
return bearerToken.substring(7); | ||
} | ||
|
||
public static String extractToken(StompHeaderAccessor request, String header, String tokenPrefix) { | ||
String bearerToken = request.getFirstNativeHeader(header); | ||
|
||
if (!StringUtils.hasText(bearerToken) || !bearerToken.startsWith(tokenPrefix)) { | ||
throw new CustomException(ErrorCode.INVALID_TOKEN_PREFIX_ERROR); | ||
} | ||
|
||
return bearerToken.substring(tokenPrefix.length()); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- 코드를 확인했을 때, 인자에 해당하는 header, tokenPrefix가 각각 JwtVO.HEADER, JwtVO.TOKEN_PREFIX로 고정된 값인 것 같습니다. 그렇다면 인자가 없어도 되는 것 아닌지, 중복되어 불필요한 부분이 되는 것 같습니다.
- 첫번째 extractToken에서 경우에 따라 null 값을 반환하고 있는 것으로 확인했습니다. 해당 클래스 내에 validRequestHeader 함수를 추가하여 헤더가 null인지 확인한 후 extractToken을 실행하는 방향으로 개선할 수 있다고 생각합니다. null 값을 반환하지 않는 방식으로 변경함으로써 null 체크에서 발생할 수 있는 문제들을 없앨 수 있다고 생각합니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- 이 부분 제 잘못입니다. 감사합니다.
- 넵 동의합니다.
수정하고 다시 올리겠습니다
구현 기능