문제 상황
- S3에 이미지 업로드 테스트 과정에서 해당 요청 api는 생각해보니 현재 jwt 필터를 거치지 않아도 될 api들이 모두 jwt 필터를 거치고 있었다. 권한 확인만 하지 않고 지나갔을 뿐.
문제 원인
- 이유는 간단하다. permitAll()로 했기 때문이다. permitAll()은 시큐리티 필터를 무시하는게 아니고 그냥 지나쳐 가라는 뜻이였다. 이 경우 시큐리티 필터 자체를 지나가지 않도록 ignore로 처리하면 된다. 하지만 BUT 그러면 spring security 자체를 쓰지 않게 되서 문제가 된다.
해결 방안
- 따라서 Jwt 필터를 만난경우 필터 로직을 거지치 않도록 Jwt 필터 class에 shouldNotFilter 메서드를 작성해주면 된다.
@Value("${WHITE_LIST}")
private String[] whiteList;
@Override
protected boolean shouldNotFilter(HttpServletRequest request) throws ServletException {
return Arrays.stream(whiteList)
.anyMatch(request.getRequestURI()::startsWith);
}
'개발' 카테고리의 다른 글
DDD(Domain-Driven Design)와 Clean Architecture의 원칙을 반영한 이유 (6) | 2025.01.10 |
---|---|
친구 정보, Redis에서 MySQL로 옮긴 이유 (0) | 2025.01.10 |
예외 처리시 원하는 예외 응답값이 안오는 경우 (4) | 2024.04.29 |
@ColumnDefault 동작 안함(사실 동작함. 단지 적용이 안됐을 뿐.) (4) | 2024.04.15 |
코틀린을 사용한 스프링 프로젝트에서 자바를 사용 할 때 자바 파일을 못 찾는 오류 (1) | 2024.02.24 |