일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 기능적 요구사항
- open-session-in-view
- spring formatter
- IOC
- 그래프큐엘
- 생성자주입
- 동적파라미터
- 도커 이미지 빌드
- jpa lazy
- 자바 필터
- ioc컨테이너
- 비기능적 요구사항
- 스프링di
- 스프링 포매터
- 소프트웨어의 품격
- 스프링시큐리티
- Atomicity
- 스프링부트 도커
- Spring
- 수정자주입
- 스프링
- method refetence
- kotlin 리팩터링
- 토비의 스프링
- jpa no session
- java predicate
- 스프링 시큐리티 설정
- 정적팩토리메서드
- kotlin ::
- fetch join
Archives
- Today
- Total
공부기록
[SPRING SECURITY] 1011 공부(SecurityContextHolder) 본문
반응형
SecurityContextHolder
- SecurityContextHolder - SecurityContext - Authentication
- SecurityContextHolder는 쓰레드로컬.
Authentication
principal
- 누구에 해당하는 정보
- UserDetailsService에서 리턴한 객체
- Object 타입이긴 하지만, UserDetailsService에서 리턴한 값이기 때문에 사실상 UserDetails 타입.
authrities
- "ROLE_USER", "ROLE_ADMIN" 등 Principal이 가지고 있는 '권한'
- 인증 이후 인가 및 권한 확인할 때 이 정보를 참조한다.
UserDetailsService
- 유저정보를 UserDetails 타입으로 가져오는 DAO인터페이스.
AuthenticationManager
- UserDetailsService를 이용해서 인증한다.
AuthenticationManager와 Authentication의 관계.
- 스프링 시큐리티에서 인증(Authentication)은 AuthenticationManager가 한다.
- AuthenticationManager는 하나의 메서드선언부를 가진 인터페이스다.
Authentication authenticate(Authentication authentication) throws AuthenticationExeption;
- 인자로 받은 authentication이 유효한 인증인지 확인하고 Authenticaion객체를 리턴한다.
- 인증 확인 과정에서 비활성계정, 잘못된 비밀번호, 잠긴계정등의 에러를 던질 수 있다.
- 인자로 받은 Authentication
- formLogin할 때 입력한 정보.
- Principal : "username"
- Credential : "password"
- formLogin할 때 입력한 정보.
- 리턴된 Authentication
- 인증된 Authentication.
- UsernamePasswordToken
- Principal : UserDetailsService에서 리턴하는 UserDetails.
- Credential : 인증됐으므로 Credential은 비어있다.
- GrantedAuthorities : 권한
- 인증된 Authentication.
- 보통 구현체로 ProviderManager를 사용한다.
ThreadLocal
- java.lang 패키지에서 제공하는 쓰레드 범위 변수. 즉 쓰레드 수준의 데이터저장소.
- 같은 쓰레드 내에서만 공유.
- 따라서 같은 쓰레드 내라면 위치상관없이 호출가능. 매개변수로 넘겨줄 필요 없다.
- SecurityContextHolder의 기본전략.
AuthenticationManager를 통해 Authentication을 만들고, 만든 Authentication을 SecurityContext에 set해준다.
그렇다면 언제 set해주는 걸까? 그 공부는 내일!
반응형
'Spring' 카테고리의 다른 글
[SPRING MVC] Formatter (2) | 2019.10.14 |
---|---|
[SPRING SECURITY] 1012 공부(아키텍쳐 마지막 정리.) (2) | 2019.10.12 |
[spring security] TEST방법. (1) | 2019.10.11 |
스프링 애플리케이션이란? (0) | 2019.10.09 |
IoC/DI (0) | 2019.09.28 |