반응형
문제
스프링 시큐리티로 API 인가 설정 중, /api/boards/best 는 권한 검증 없이 전부 볼 수 있지만, api/boards/{id} 는 검증을 해야하는 상황에서,
new AntPathRequestMatcher("/api/boards/best", HttpMethod.GET.name())
new AntPathRequestMatcher("/api/boards/{id}", HttpMethod.GET.name())
위의 두 API에서 best 와 {id}를 구별하지 못하는 문제가 있었다.
해결
스프링 시큐리티는 정규표현식으로도 매칭을 할 수 있는 클래스를 제공한다.
new AntPathRequestMatcher("/api/boards/best", HttpMethod.GET.name())
new RegexRequestMatcher("/api/boards/(\\d+)", HttpMethod.GET.name())
id는 Long 타입의 정수였기 때문에, 위는 best 문자열 그대로 매칭시키고, 숫자가 올 경우에는 (\\d+) (숫자가 1개이상 있는 경우) 로 검증을 하도록 했다.
반응형
'TIL ✍️' 카테고리의 다른 글
24년 1월 25일(목요일) - 77번째 TIL : DB 로직 최소화 (0) | 2024.01.31 |
---|---|
24년 1월 24일(수요일) - 76번째 TIL : StringRedisTemplate (1) | 2024.01.31 |
24년 1월 22일(월요일) - 74번째 TIL : 쿼리 최적화 (0) | 2024.01.31 |
24년 1월 19일(금요일) - 73번째 TIL (0) | 2024.01.31 |
24년 1월 18일(목요일) - 73번째 TIL : RDS 타임존 설정 (1) | 2024.01.31 |