Spring Security 라이브러리를 사용하면 Username/Password 또는 OAuth 방식의 로그인을 쉽게 구현할 수 있다. (아래 설명은 OAuth 기준)
httpBasic().disable() 메소드를 사용하면 기본적으로 제공하는 로그인 페이지를 끌 수 있는데 해당 메소드를 사용해도 GET 요청을 보내면 로그인 페이지(/login)로 이동한다.
이는 Spring Security 기본 전략이 인증, 인가에 실패하면 로그인 페이지로 리다이렉트 시키기 때문이다.
SecurityFilterChain 에서 exceptionHandling() 을 설정 해주면 인증, 인가 실패 시 어떻게 할지 정해줄 수 있다.
.exceptionHandling()
.authenticationEntryPoint((request, response, authException) ->
response.sendError(401))
.accessDeniedHandler((request, response, accessDeniedException) ->
response.sendError(403))
Java
복사
위 코드를 적용하면 인증, 인가 실패 시 로그인 페이지로 리다이렉트하지 않고 각각 401, 403 HTTP 에러를 반환한다.