Spring Security - Spring Data 연동 Spring Security 가 제공하는 Spring Data 연동기능에 대해 살펴보자 Spring Data 의존성 추가하기 Spring Security Data는 Spring Boot가 Version 관리를 해주고 있지 않은 의존성이다. 따라서 Spring Boot Property에 존재하는 spring security version을 따르도록 하자. 이 경우에는 boot version이 바뀌면 security의 버전도 바뀌기때문에 버전관리에 용이하다. 연관관계 추가하기 Spring Security Data 기능을 테스트하기위해 엔티티하나를 추가하고 간단한 연관관계를 맺도록 한다. Book Book 엔티티와 Account엔티티는 Author라는..
Spring Security - @AuthenticationPrincipal @AuthenticationPrincipal 로그인한 사용자의 정보를 파라메터로 받고 싶을때 기존에는 다음과 같이 Principal 객체로 받아서 사용한다. 하지만 이 객체는 SecurityContextHolder의 Principal과는 다른 객체이다. 이 객체는 JAVA 표준 Principal 객체이며 우리가 참조할수 있는 정보는 name 정보 밖에 없다. @AuthenticationPrincipal 애노테이션을 사용하면 UserDetailsService에서 Return한 객체 를 파라메터로 직접 받아 사용할 수 있다. 하지만 이방법도 우리가 원하는 방법은 아니다. 현재 로그인한 사용자의 정보를 참조하고 싶을때 도메인의 Use..
Spring Security - Method Security SpringSecurity는 Web기반의 Security 외에 Method Security 기능을 제공한다. 서비스 계층을 직접 호출할때 사용할 수 있는 보안 기능이다. Web기반의 Security를 적용했을때는 어울리지 않는 기능이다. Web 애플리케이션 이 외에도 데스크탑 애플리케이션 사용시 적용이 가능하다. @EnableGlobalMethodSecurity MethodSecurity는 우리가 기존에 사용했던 SecurityConfig 설정이 적용되지 않는다. MethodSecurity용 설정이 따로 필요한데 이때 사용하는것이 @EnableGlobalMethodSecurity이다. @EnableGlobalMethodSecurity 의 속성들..
Spring Security - Spring Security Thymleaf: SEC Spring Security Thymleaf - SEC 이번에는 Thymeaf에서 제공하는 Security 관련 name space를 지정하여 이전 시간에 사용한 기능을 좀 더 편리하게 사용하는 방법을 살펴보자. sec 네임스페이스 선언하기 th 네임스페이스를 선언하는것과 같이 sec 네임 스페이스를 상단에 선언해준다. sec 네임스페이스를 선언해주면, thymleaf에서 제공하는 extras 기능을 좀 더 쉽게 사용이 가능하다. Thymeleaf/extras 자동완성기능 이전시간에 사용했던 authorize-expr 과 같은 기능을 자동완성을 통해 type-safe하게 사용이 가능하다. 또한 hasRole, hasAu..