728x90
Authentication
Authentication는 인증을 의미합니다.
- 스프링 시큐리티는 사용자의 인증정보를 저장하는 토큰 개념으로 사용한다.
- 인증 시 id와 password를 담고 인증 검증을 위해 전달되어 사용된다.
- 인증 후 최종 결과 (user 객체, 권한정보)를 담고 SecurirtyContxt에 저장되어 전역적으로 참조가 가능하다.
- Authentication authentication = SecurityContexHolder.getContext(). getAuthentication()
구조
1) pricipal: 사용자 아이디 혹은 User 객체를 저장
2) credentials : 사용자 비밀번호
3) authorities : 인증된 사용자의 권한 목록
4) details : 인증 부가 정보
5) Authenticated : 인증 여부
사용자가 로그인할때 username 과 password를 입력해서 요청하면
UsernamePasswordAuthenticationFilter가 받아서 username과 password를 추출한다음에
Authentication 객체를 생성해
Principal 속성의 사용자 아이디를 저장하고
Credentials에 password를 저장한다.
이 객체가 인증 검증을 위해 AuthenticationManager로 전달 됩니다.
AuthenticationManager가 인증처리를 한다.
인증에 성공하면 Authentication 객체를 만들고
Principal 에 UserDetails가 들어가고
Credentials에 패스워드는 보안 때문에 비워두기도 합니다.
Authorities : 권한 목록을 담습니다.
Authenticated : true
그리고
SecuityContextHolder안에 SecurityContext안에 Authentication객체가 저장된다.
728x90
'Spring Boot > Spring Security' 카테고리의 다른 글
[Spring Security] @AuthenticationPrincipal 어노테이션 사용하기 (0) | 2022.08.17 |
---|---|
[Spring Security] 스프링 시큐리티 인증객체가 있는 컨트롤러 테스트 하기 (0) | 2022.08.16 |
[Spring Securtiy] Spring Security의 Filter (0) | 2022.06.29 |
[Spring Security] CSRF (0) | 2022.06.29 |
[Spring Security] 예외 처리 및 요청 캐시 필터 (0) | 2022.06.29 |
댓글