프로젝트를 진행 중에, 서버로 요청을 받는 과정에 문제가 생겼다.
분명 아래와 같이 Test를 위해 임시로 모든 URL을 접근 허가 해놓았는데,
favicon.ico에 의해서 접근이 불가능하다는 오류가 발생했다.
SecurityConfig

왜인지 이유를 조금 검색해보니 FE의 Static한 Resourec들이 문제였다.
Static한 리소스, favicon.icoindex.html 같은 것들이
필터를 타게 되어 권한이 없다고 걸러지게 되는 것 같았다.
따라서 필터에 타지 않게 web.ignoring() 처리를 해줄 필요가 있다.

Web Security

WebSecurity를 이용하려면 원래 WebSecurityConfigurerAdapter를 상속받아야 한다.
하지만 아래와 같이 Spring 공식 문서에 보면 Deprecated 되었음을 알 수 있다.
Deprecated

따라서, Spring 공식 문서에서 제공하는 가이드에 따라 아래와 같이 @Bean을 등록한다.
새 버전
새 버전 적용

WebSecurityCustomizer를 등록한 뒤, web.ignoring()을 사용해주면,
더 이상 Static Resource들이 필터를 타지 않는다.
공식 문서의 중요성을 다시 한 번 깨닫게 된 에러였다.

추가적인 문제 (2023.02.17 수정)

웹 시큐리티 오류

위와 같이 ignoring() method가 아닌 HttpSecurity를 권장한다고 한다.
공식 문서에 있어서 사용하긴 했는데, 권장하지 않는 방식인가 보다.
우선 HttpSecurity에서 permitAll()을 해놓고 좀 더 알아봐야 할 것 같다.

문제 해결 (2023.03.10 수정)

공식문서를 읽는다고 읽었지만, 제대로 읽지 않은 내 불찰이다.
위의 사진에 보면 공식문서 아래에 WARNING 이 있음이 보인다.
authorizeHttpRequest를 통해 permitAll을 하는 방향을 고려하라고 한다.

따라서 아래와 같이 코드를 수정했다.
image

참고문헌

Spring docs : WebSecurityConfigurerAdapter
Spring docs : WebSecurityCustomizer