[SPRING] 사용자 정의 메소드 보안 표현식을 작성하는 가장 좋은 방법
SPRING사용자 정의 메소드 보안 표현식을 작성하는 가장 좋은 방법
@PreFilter 및 @PostFilter 주석에서 사용하려는 자체 메서드 보안 표현식을 만들려고합니다.
자습서 및 이와 유사한 질문 검색하기 두 가지 방법으로 진행했습니다.
첫 번째는 사용자 지정 SecurityExpressionRoot를 제공하기 위해 DefaultMethodSecurityExpressionHandler를 확장하고 createSecurityExpressionRoot를 재정의하는 것입니다.
@PreAuthorize('isOwner(#someEntity)')
두 번째 방법은 단순히 @Component 클래스를 사용하고 @Pre / @Post 필터에서 @ bean.method ()로 메소드에 액세스하는 것입니다.
@PreAuthorize("@mySecurityService.isOwner('#someEntityl')")
내 질문은 : 선호하는 방법은 무엇입니까? 둘 다 괜찮 으면, 왜 하나를 선택합니까?
고맙습니다 마르코
해결법
-
==============================
1.@PreAuthorize ( 'isOwner (#someEntity)')의 장점은 @ bean.method () 방식으로 :
@PreAuthorize ( 'isOwner (#someEntity)')의 장점은 @ bean.method () 방식으로 :
@PreAuthorize ( 'isOwner (#someEntity)') 방법을 통해 @ bean.method () 방법의 장점 :
나는 @ bean.method ()와 같다. IMHO 모든 차이는 그렇게 중요하지 않습니다 (이전 프로젝트의 경우). 하지만 "쉬운 설정"옵션이 너무 좋습니다! 그래서 다음 프로젝트에서는 모든 @Pre / @Post 케이스에 대한 JUnit 테스트와 함께 @ bean.method () 방법을 시도 할 것이다.
from https://stackoverflow.com/questions/17803406/best-way-to-create-custom-method-security-expression by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 부트 Autowired가 Configuration 클래스에서 작동하지 않습니다. (0) | 2019.04.10 |
---|---|
[SPRING] 모든 프로 바이더의 후에 Spring Security java.lang.StackOverflowError 예외 (0) | 2019.04.10 |
[SPRING] 나머지 컨트롤러 vs spring-data-rest RepositoryRestResource (0) | 2019.04.10 |
[SPRING] Jetty에서는 파일 업로드가 작동하지만 Tomcat에서는 작동하지 않습니다. (0) | 2019.04.10 |
[SPRING] 임시 파일에 대한 파일을 찾을 수 없음 (0) | 2019.04.10 |