2014-09-04 1 views
2

Shiro 문서에서는 shiro.ini에서 전역 PermissionsResolver를 구성합니다 (permissionResolver 참조).Shiro Guice PermissionsResolver

globalPermissionResolver = com.foo.bar.authz.MyPermissionResolver 
... 
securityManager.authorizer.permissionResolver = $globalPermissionResolver 

그러나 저는 Guice를 사용하고 있기 때문에 shiro.ini에 의존하고 싶지 않습니다. 전화 할 수 있다는 것을 알고 있습니다. RealmsetPermissionResolver()을 넣었습니다. 그러나 나는 복수형 Realm을 가지고 있기 때문에 차라리 사용하지 않을 것입니다.

아이디어가 있으십니까? 감사.

If you want to configure a global PermissionResolver, each Realm that is to receive the configured PermissionResolver must implement the PermisionResolverAware interface. This guarantees that the configured instance can be relayed to each Realm that supports such configuration.

또한 AuthorizingRealm 이미 선택 할 수 있어야하므로 승인 영역을 모두이 인터페이스를 구현하는 일 :

+1

? 그 중 하나 또는 shiro.ini를 사용합니다. – Wouter

+0

아마도. 그저 보안 관리자에게 첨부하면 globalPermissionResolver가 있습니다. 그래서 나는 그 세터를 사방에 호출하는 대신 (시로 ini없이) 그것을 바꿀 수있는 방법이 있다고 생각했습니다. – user2573153

답변

1

그것은 더주의 깊게 위에서 언급 한 문서를 읽고,이 있다고 밝혀 PermissionsResolver까지 Guice와 바인딩하기 위해

, 내 ShiroWebModule이 추가 : 모든 영역에서 세터를 호출 뭐가 문제

bind(PermissionResolver.class).to(MyPermissionResolver.class).in(Singleton.class);