inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 시큐리티

8) 익명사용자 인증 필터 : AnonymousAuthenticationFilter

밑에 있는 익명사용자 여부

357

이얏

작성한 질문수 37

3

안녕하세요.

저도 또한 익명사용자를 왜사용하는지 몰라서 밑에 있는 질문과 선생님의 댓글을 보았는데요. 그래도 이해가 가질않습니다.

언어의 장난처럼 느껴지는 부분이 있어요.

인증이 되었지만 로그인을 안한 사용자.

세션이 만료된 사용자.

인증을 안한 사용자.

구분이 잘안갑니다. 감사합니다.

Spring Security java spring-boot

답변 1

13

정수원

스프링 시큐리티 설계자가 왜 익명사용자라는 개념을 도입했는지 생각해보면 될 것 같습니다.

인증을 하지 않은 사용자를 단지 user 객체가 null 이라는 단순한 개념이 아닌 AnonymouAuthenticationToken 객체에  익명사용자의 정보를 저장하고(사용자명, 권한, 인증여부 등..) 이를 SecuirtyContext 객체에 저장하여 어플리케이션 전역적으로 사용할 수있도록 도입했을 뿐입니다.

즉, 익명사용자일 경우

String user = SecurityContextHolder.getContext().getAuthentication() 하면 user 에 "anonymousUser" 가 저장되고 이 user 변수는 principal 에 저장이 되며 principal 은 AnonymousAuthenticationToken 저장이 되고 최종적으로 AnonymusAuthenticationToken 은 SecurityContext 에 저장이 되는 계층적 구조로 되어 있습니다.

이건 인증사용자도 마찬가지 구조입니다.

이러한 전반적인 처리를 하는 필터가 AnonymousAuthenticationFilter 이구요

어떻게 보면 객체지향적인 설계사상에 근거하여 익명사용자도 인증사용자처럼 일관성, 통일성 있게 스프링 시큐리티의 인증 프로세스를 따르도록 구현한 것일 수도 있습니다.

굳이 스프링 시큐리티가 아니라도 만약 어떤 시스템에서 인증을 하지 않는 사용자를 어떤 특정한 클래스를 만들어 거기에 보관하여 관리하도록 설계를 하고 구현 한다면 위와 비슷한 개념이 됩니다.

너무 어렵게 접근하실 필요는 없습니다

일반적으로 우리가 아는 로그인 하지 않은 사용자의 개념을 조금 더 구조적으로  설계하고 필터개념을 도입해서 관리하고자 함이라고 이해하시면 됩니다.

시큐리티 공부 버전 질문

0

175

1

[해결 방법] MethodSecurityConfig.customMethodSecurityMetadataSource() 호출하지 않는 이슈

0

185

1

AbstractSecurityInterceptor.class.beforeInvocation()를 2번 실행하는 경우

0

174

1

강의 코드가 왜이렇게 뒤죽박죽인가요...

0

249

1

메인 페이지로 접속해도 login url로 리다이렉트가 되지 않습니다..

0

235

1

파라미터값이 넘어가지 않습니다 ....

0

374

1

security filterChain 설정 질문이 있습니다.

0

331

1

소스 부분 질문 드립니다.

0

208

2

섹션4 7번 강의 문제가 있는거 같네요.

0

344

2

파일이 수시로 이름이 바껴있네요 ㄷㄷ

0

304

1

HttpSessionSecurityContextRepository를 사용안하는 문제

0

555

2

error , exception 이 잘 안됩니다.

0

279

2

thymeleaf tag 질문합니다.

0

196

2

버전업하면서 deprecated된 것들이 너무많아요

0

478

1

spring security 패치 관련

0

437

1

모바일을 사용할때 토큰말고 세션

0

845

2

DB 연동한 인가 부분에 대한 질문입니다!

0

264

1

Ajax방식도 똑같이 Session방식을 사용하는건가요?

0

307

1

Config 파일 생성 시 질문이 있습니다.

0

225

1

강사님 몇일동안 구글 검색만 100개 했는데도 이유를 모르겠습니다..

1

429

2

403 에러 뜹니다.

0

813

2

login_proc의 존재에 대한 간략한 설명입니다

0

276

1

top.html에 로그인 링크를 만들어서 로그인을 해봤습니다

0

280

2

안녕하세요. DB에 저장될 때 이해 안 가는 값이 있어서 질문드립니다!

0

189

1