2012-10-30 2 views
1

내가 URL 기반 권한 부여 검사를 수행하는-응용 프로그램 JSF 내에서 Apache Shiro를 사용하려면, 나는 Shiro-documentation에서 보는 바와 같이 shiro.ini에서 수행 구성은 "파마"를 사용Apache Shiro, INI- 구성, URL 별 퍼미션 : URL 매개 변수를 얻는 방법?

/remoting/rpc/** = authc, perms["remote:invoke"] 
-filter 할 수있는 방법이 엔티티-ID가 HTTP 요청 그래서

# "Open settings for user with id=123": 
# /user/settings.xhtml?user_id=123 
/user/settings.xhtml = perms["user:update:XXX"] 

에 내 시나리오 나는이 기능을 원하지만, 기업 수준의 1에,에서

, 어떻게이 시로와 함께해야합니까? perms-filter에 http-params를 확인하는 방법은 무엇입니까? 아니면 FacesContext를 호출하여 Realm-Implemenation, 구체적으로이 작업을 수행해야합니까?

1이 적어도 프로그래밍 방식으로 수행 할 수 있습니다

SecurityUtils.getSubject().isPermitted("printer:query:lp7200") 

https://shiro.apache.org/permissions.html

답변

3

It is possible가에서 자신의 "org.apache.shiro.web.filter.AccessControlFilter"서브 클래스를 구현하고 사용하여이 작업을 수행 할 수 소프트웨어. 이 자신의 클래스는 shiro.ini에서 선언 할 수 있습니다

[main] 
user = filter.FooFilter 

AccessControlFilter - 클래스 "(mappedValue 객체의 ServletRequest 요청, ServletResponse를 응답) isAccessAllowed은"을 제공합니다 - "요청을 사용하여 대체 할 수 있습니다 방법을. getParameterMap() "을 호출하여 HTTP-GET 매개 변수를 가져옵니다.

예를 들어, 내 프로젝트 tiramisu (꽤 오래된 것)을 살펴볼 수 있습니다. (CompanyScopedPermissionsFilter까지 확장되며 DomainPermissionsFilter까지 확장 됨)은 WEB-INF/shiro.ini에 있습니다.