2014-04-11 2 views
1

자원에 대한 액세스를 허용하지만 Apache Shiro에서이 자원의 일부 인스턴스에 대한 액세스를 거부하는 것과 관련된 질문이 있습니다.자원 유형에 대한 액세스를 허용하지만 Apache Shiro의 특정 자원 인스턴스에 대한 액세스를 거부합니다.

나는 2 개의 사용자 Tom과 Katie가보고 편집 할 수있는 리소스 보고서가 있다고 가정 해보십시오. 내가 시로에서 틀리지 않는 경우

나는 그에게 다음과 같은 권한을 부여하여 모든 보고서를 편집 할 수 톰에게 액세스 권한을 부여 할 수 있습니다 :

"보고서 편집"

케이티 모든 보고서를 편집 할 수 있어야한다 보고서 x 만 볼 수 있어야합니다.

"보고서 : 편집" "보고서 :보기 : X"

나는 시로에서 이해 한대로

는 지금까지이 허용 권한에 대해 전부이

그래서 나는 이런 식으로 뭔가를 표현하고자하는 "report : edit : y, z, ..."및 "report : view : x"로 표현 될 수 있지만 보고서가 많으면 실용적이지 않거나 읽기 쉽지 않습니다.

Shiro에서 또는 다른 방법을 사용하여 달성 할 수있는 방법에 대한 제안이 있으십니까?

당신은 WildcardPermission 클래스의 하위 클래스를 생성하고 자신 구현할 수 조엘

답변

1

을 주셔서 감사합니다 당신의 자신의 거부 구현을 작성하는 방법을 의미한다.

WildcardPermissionResolver를 재정 의하여 표준 구현 대신 사용 권한 구현을 반환합니다. 그런 다음

당신이 그것을 구성 할 수는 shiro.ini 세계적으로 사용되는 : 여기

globalPermissionResolver = com.foo.bar.authz.MyPermissionResolver 

참조 문서 : https://shiro.apache.org/authorization.html#Authorization-Configuringaglobal%7B%7BPermissionResolver%7D%7D

관련 문제