inflearn logo
강의

講義

知識共有

春のセキュリティ完全征服[6.xリビジョン]

基本認証フィルタ - BasicAuthenticationFilter

OncePerRequestFilter 질문

325

alsry922

投稿した質問数 50

0

OncePerRequestFilter는 요청당 한 번만 필터가 동작하도록 보장된? 필터라고 말씀해주셨는게

 

하나의 요청에 하나의 필터가 여러 번 동작하는 경우도 있나요..?

spring spring-boot spring-security security web-security

回答 2

0

bae jewoo

OncePerRequest가 아닌 일반 필터가 아닌 상황

request -> was -> 필터 -> 디스패처 서블릿 -> 컨트롤러 -> 서비스 에러 발생 throw Exception -> 이때 was는 error를 확인하고 error 페이지를 랜더링(forward)하기 위해서 다시 서블릿까지 보냄

결론 필터 2번 거침

was 까지 응답이 갔다가 다시 (일반)필터를 거치는 case 2가지
response.sendError / Uncaught Exception

--------------------------------------------------
강사님한테 질문 !!
oncePerRequest가 한번만 필터링 되었는지 식별하는
로직이 복잡한듯한데
이렇게 복잡한 이유는 제가 설명한 에러 상황 이외에도
다른 케이스가 있을 거라고 추측을 합니다
에러 상황이라고 하면 was는 attribute에 error를 넣어주니 간단하게 attribute를 확인해서 error 인지 확인하고 바로 넘기면 되니까요
다른 케이스를 하나 예시를 들어주실 수 있을까요?
아님 제가 잘못 이해한 게 있을까요



0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

OncePerRequestFilter는 이름에서 알 수 있듯이 하나의 요청에 대해 필터가 한 번만 실행되도록 보장하는 Spring Security의 특별한 필터입니다. 일반적인 상황에서는 하나의 요청에 대해 OncePerRequestFilter는 단 한 번만 호출됩니다. 그러나 서블릿 컨테이너에 따라 요청이 여러 번 재처리될 수 있는 특수한 경우(예: 요청이 forward되는 경우)에는 OncePerRequestFilter가 여러 번 실행될 수 있습니다. 이 때문에 OncePerRequestFilter 내부에는 이미 처리한 요청을 다시 처리하지 않도록 체크하는 로직이 포함되어 있어서, 실제로 필터의 로직이 요청당 정확히 한 번씩만 실행되도록 보장합니다.

OncePerRequestFilter의 주요 목적은 모든 종류의 재처리 상황에서도 필터의 로직이 중복 실행되는 것을 방지하는 것이므로, 하나의 요청에 대해 필터가 여러 번 동작하는 상황을 제어합니다. 따라서 필터가 여러 번 실행될 수 있는 상황을 고려하여 설계되었지만, 정상적인 사용 시에는 요청당 한 번만 필터가 실행되도록 보장합니다.

로그아웃-logout()-2 강에서 겟방식 로그아웃 호출 후 화면이동 질문입니다.

0

24

2

단원별 소스코드

0

55

2

CustomAuthenticationProvider 추가 관련 문의

0

66

2

AOP 의존성 명칭 변경

0

59

1

빈 1개 등록 시 다른 해결 방법

0

61

1

@Bean으로 AuthenticationProvider를 등록 시 http.authenticationProvider 함수를 이용해서 추가해줘야되나요?

0

84

2

OIDC의 id token에 담긴 데이터에 대해

0

69

1

loginPage("/loginPage") 질문드립니다.

0

65

1

@EnableWebSecurity

0

142

1

트랜잭션과 롤백

0

96

1

68. 인증 이벤트 - AuthenticationEventPublisher 활용 강좌 음성 문제

0

84

2

AuthenticationManager 사용 방법

0

144

2

HttpSecurity.authorizeHttpRequests() - 2 강의 부분에 대한 질문

0

97

2

spring security 6.3에서는 HttpSecurity가 만들어지기 전 WebSecurity가 먼저 만들어지는게 맞나요??

0

186

1

init(B Builder), configure(B builder) 에 대하여 질문 드립니다.

0

101

2

메타 주석 질문

0

64

1

동시세션제어 기능에서 로그아웃하기

0

140

3

로그인 후, redirect 에서 error

0

136

3

Session 생성 타이밍에 대한 질문

0

78

2

강의 참고 내용을 개발 로그로 작성해도 될지 문의드립니다.

0

129

2

customAuthentication 관련

0

123

2

authenticationManagerBuilder 주입받은거 vs 만든 거

0

107

1

UserDetailsService()에서 UserDetail이 아닌 타입을 반환할 수 있나요?

0

96

1

9:28 패턴 3의 경우 마지막으로 설정한 것만 적용되는 것 같습니다.

0

155

2