'AbstractAuthenticationToken with
ROLE_ADMIN only. I have a method annotated with
@PreAuthorize ("hasRole ('ROLE_USER ')")`의 구체적인 구현을 반환하는 사용자 정의 인증 공급자가 있습니다. 내 관리자에게이 방법에 대한 액세스 권한을 부여하기 위해 역할 계층 구조를 설정하려고합니다. 내가 @PreAuthorize("hasRole('ROLE_ADMIN')")
에 주석을 변경하면 작동하지만,@PreAuthorize를 역할 계층 구조로 사용할 수 없습니다.
<beans:bean id="roleHierarchy" class="org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl">
<beans:property name="hierarchy">
<beans:value>
ROLE_ADMIN > ROLE_USER
</beans:value>
</beans:property>
</beans:bean>
<beans:bean id="methodExpressionHandler" class="org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler">
<beans:property name="roleHierarchy" ref="roleHierarchy" />
</beans:bean>
<sec:global-method-security pre-post-annotations="enabled">
<sec:expression-handler ref="methodExpressionHandler" />
</sec:global-method-security>
보호 방법에 대한 요청이 거부됩니다 :
나는 내 스프링 security.xml에 다음 있습니다.
나는 AffirmativeBased.decide(...)
에서 던져진 AccessDeniedException
에 중단 점을 넣었습니다. 문제는 PreInvocationAuthorizationAdviceVoter
의 expressionHandler
이 null
인 것으로 나타났습니다. 이는 내 roleHierarchy 또는 methodExpressionHandler를 연결하는 데 문제가 있음을 나타냅니다.
내 spring-security.xml에 문제가 있습니까? 이 물건들이 어떻게 작동해야하는지에 대해 내가 오해하고있는 것이 있습니까?
나는 또한 동일한 문제가있다. 나는 당신에게 해결책을 시도했지만 작동하지 않습니다. spring-security.xml과 dispatcher-servlet.xml에 RoleHierarchy 빈을 포함시키는 또 하나의 이유. 한 파일에 전체 구성을 넣을 수는 없습니까? –