[SPRING] @Secured annotation에 'or'조건을 가진 여러 역할이 Spring Security에 허용되어 있습니까?
SPRING@Secured annotation에 'or'조건을 가진 여러 역할이 Spring Security에 허용되어 있습니까?
내 프로젝트에서 봄과 봄 보안 4를 사용하고 있습니다. ROLE_USER 또는 ROLE_TIMER_TASK를 사용하여 DAO 메서드를 호출해야합니다.
현재이 주석을 사용하고 있습니다.
@Secured({"ROLE_USER", "ROLE_TIMER_TASK"})
이 @Secured 주석은 두 가지 역할을 모두 가진 사용자 만 허용하지만이 역할을 가진 사용자가이 메서드를 호출하고 싶습니다.
사용자가이 역할 중 하나의 역할을 가지고이 방법을 호출 할 수 있습니까?
해결법
-
==============================
1.또는의 경우 @PreAuthorize 주석을 대신 사용하십시오.
또는의 경우 @PreAuthorize 주석을 대신 사용하십시오.
@PreAuthorize("hasRole('ROLE_USER') or hasRole('ROLE_TIMER_TASK')")
스프링 보안 버전 4에서는 ROLE_ 접두어를 생략 할 수 있습니다.
@PreAuthorize("hasRole('USER') or hasRole('TIMER_TASK')")
보안 설정에서 사전 및 사후 주석을 사용하도록 설정하십시오.
-
==============================
2.언급 된 역할 중 하나를 사용하여 메소드를 호출하려면 다음을 사용하십시오.
언급 된 역할 중 하나를 사용하여 메소드를 호출하려면 다음을 사용하십시오.
@PreAuthorize("hasAnyRole('ROLE_USER','ROLE_TIMER_TASK')")
보안 클래스에서 사전 및 사후 주석을 활성화합니다. 클래스 :
@EnableGlobalMethodSecurity(prePostEnabled = true)
-
==============================
3.holmis83 ....에 의한 이전 답변 외에도
holmis83 ....에 의한 이전 답변 외에도
메소드 보안을 위해 사전 및 사후 주석을 사용하려면 다음을 수행하십시오.
Java 구성 :
@EnableGlobalMethodSecurity(prePostEnabled = true) public class MethodSecurityConfig { // ... }
XML 구성 :
<global-method-security pre-post-annotations="enabled"/>
from https://stackoverflow.com/questions/36892152/are-multiple-roles-allowed-in-the-secured-annotation-with-or-condition-in-spr by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 내 Angular + Spring 응용 프로그램 라우팅은 TomCat에 배포 할 때 작동하지 않습니다. (0) | 2019.03.26 |
---|---|
[SPRING] RestTemplate을 사용하여 HTTP로 헤더 가져 오기 (0) | 2019.03.26 |
[SPRING] CDI의 InjectionPoint에 해당하는 Spring DI는 무엇입니까? (0) | 2019.03.26 |
[SPRING] Spring, DBCP 및 MySQL을 사용하여 연결 시간대 설정 (0) | 2019.03.26 |
[SPRING] 봄 부팅 건강이 세부 정보를 표시하지 않음 (withDetail info) (0) | 2019.03.26 |