我想在我的JSF应用程序中使用Apache Shiro来执行基于URL的授权检查,在shiro.ini中完成的配置正如我在Shiro-documentation中看到的,有一种方法可以使用"perms"-filter。
/remoting/rpc/** = authc, perms["remote:invoke"]在我的场景中,我想要这个功能,但是在实体级别的1上,实体Id在http请求中
# "Open settings for user with id=123":
# /user/settings.xhtml?user_id=123
/user/settings.xhtml = perms["user:update:XXX"]那么,我该怎么和Shiro一起做呢?如何让perms-filter检查http-params?或者这应该在我的领域中完成-实现,具体通过调用FacesContext?
1这至少可以通过编程来完成:
SecurityUtils.getSubject().isPermitted("printer:query:lp7200")发布于 2013-02-12 15:50:37
通过在软件中实现和使用自己的"org.apache.shiro.web.filter.AccessControlFilter“子类,It is possible可以做到这一点。可以在shiro.ini中声明自己的类:
[main]
user = filter.FooFilterAccessControlFilter类提供了一个"isAccessAllowed(ServletRequest request,ServletResponse response,Object mappedValue)"-method,它可以被覆盖以使用"request.getParameterMap()“来获取HTTP-GET-parameters。
举个例子,你可以看看我的项目tiramisu (相当过时)。请参阅包含在WEB-INF/shiro.ini中的CompanyManagerPermissionsFilter (它扩展了CompanyScopedPermissionsFilter,它扩展了DomainPermissionsFilter)。
https://stackoverflow.com/questions/13147859
复制相似问题