4부. 스프링 시큐리티 그 밖에
thymeleaf-extras-springsecurity
#
42. 타임리프 스프링 시큐리티 확장팩의존성 추가
Authentication과 Authorization참조
#
43. sec 네임스페이스Sec 네임스페이스 등록
Sec 네임스페이스 사용하기
#
44. 메소드 시큐리티@EnableGlobalMethodSecurity
@Secured
와 @RollAllowed
- 메소드 호출 이전에 권한을 확인한다.
- 스프링 EL을 사용하지 못한다.
@PreAuthorize
와 @PostAuthorize
- 메소드 호출 이전 @있다.
MethodSecurityConfig.java
#
45. @AuthenticationPrincipal웹 MVC 핸들러 아규먼트로 Principal 객체를 받을 수 있습니다.
커스텀 유저 클래스 구현하기
AccountService 수정
@AuthenticationPrincipal
애노테이션 적용 예제 1
- UserDetailsService 구현체에서 리턴하는 객체를 매개변수로 받을 수 있다.
- 그 안에 들어있는 Account객체를 getter를 통해 참조할 수 있다.
@AuthenticationPrincipal
애노테이션 적용 예제 2
- 익명 Authentication인 경우 (“anonymousUser”)에는 null 아닌 경우에는 account 필드를 사용한다.
- Account를 바로 참조할 수 있다.
@AuthenticationPrincipal
애노테이션 적용 예제 3
- @AP를 메타 애노테이션으로 사용하여 커스텀 애노테이션을 만들어 쓸 수 있다.
@CurrentUser
#
46. 스프링 데이터 연동@Query
애노테이션에서 SpEL로 principal 참조할 수 있는 기능 제공. 스프링
시큐리티 데이터 의존성 추가
@Query
에서 principal 사용하기
타임리프 리스트 참조
#
47. 스프링 시큐리티 마무리이번 강좌에서 다룬 내용
- 스프링 시큐리티 아키텍처
- 폼기반웹애플리케이션인증기능
- 로그인/로그아웃 페이지 커스터마이징
- 여러인증관련응답헤더
- CSRF
- 세션관리
- 타임리프 연동
- 스프링 데이터 연동
다루지 않은 내용
- ACL
- WebSocket
- OAuth 2.0
- Reactive