[SpringSecurity] ExceptionHandlingConfigurer

유알·2023년 6월 5일
0

[SpringSecurity]

목록 보기
13/15

개요

요즘 시험기간이라 너무 시간이 없어서 빠르게 핵심만 작성하고 끝내겠다.

본문

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity security) throws Exception {
        return security
        		//생략

                //configuration
                .cors().and()
                .exceptionHandling(cofig -> cofig
                        .authenticationEntryPoint()
                        .accessDeniedHandler()
                )

자 파도파도 계속 나오는 spring security 공부거리이다.

저 exceptionHandling이란 무엇일가?

기존에는 어렴풋이 authenticationEntryPoint을 통해서 인증이 안된 사용자를 처리하는 정도로 알고 있었다. 인증이 안되었을 때 401을 보내준다거나 하는 일들 말이다.

하지만 코딩을 하다 보니, accessDeniedHandler가 보였다.

의문점이 생겼다. 그러면 authenticationEntryPoint랑 무슨 차이인가?

authenticationEntryPoint vs accessDeniedHandler

자 이번 글의 내용 두개는 무슨 차이인가?

AccessDeniedHandler는 서버에 요청을 할 때 액세스가 가능한지 권한을 체크후 액세스 할 수 없는 요청을 했을시 동작된다.

AuthenticationEntryPoint는 인증이 되지않은 유저가 요청을 했을때 동작된다.

즉 AccessDeniedHandler는 권한 체크를 통과하지 못하였을 때 발생한다. 그러니까 자신이 인증이 되어있던 인증이 안되어있던(ROLE_ANNONYMOUS) 요청이 권한이 없을 때 호출된다.

AuthenticationEntryPoint는 Authentication 을 시도하고, 인증 되지 않았을 때(Principal#isAuthenticated) 실행된다.

profile
더 좋은 구조를 고민하는 개발자 입니다

0개의 댓글