Jsf ApacheShiro,INI配置,每个URL的Perms:如何获取URL参数?

Jsf ApacheShiro,INI配置,每个URL的Perms:如何获取URL参数?,jsf,authorization,shiro,Jsf,Authorization,Shiro,我想在我的JSF应用程序中使用它来执行基于URL的授权检查,配置是在shiro.ini中完成的,正如我在《有一种使用“perms”过滤器的方法》中看到的那样 在我的场景中,我想要这个功能,但是在实体级别,实体Id在http请求中 # "Open settings for user with id=123": # /user/settings.xhtml?user_id=123 /user/settings.xhtml = perms["user:update:XXX"] 那么,我该如何处理Sh

我想在我的JSF应用程序中使用它来执行基于URL的授权检查,配置是在shiro.ini中完成的,正如我在《有一种使用“perms”过滤器的方法》中看到的那样

在我的场景中,我想要这个功能,但是在实体级别,实体Id在http请求中

# "Open settings for user with id=123":
# /user/settings.xhtml?user_id=123
/user/settings.xhtml = perms["user:update:XXX"]
那么,我该如何处理Shiro?如何告诉perms筛选器检查http参数?或者这应该在我的领域实现中通过调用FacesContext来具体实现吗

这至少可以通过编程方式完成:

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

通过在软件中实现并使用自己的“org.apache.shiro.web.filter.AccessControlFilter”子类来实现这一点。这个类可以在shiro.ini中声明:

[main]
user = filter.FooFilter
AccessControlFilter类提供了一个“isAccessAllowed(ServletRequest,ServletResponse,Object mappedValue)”方法,可以重写该方法以使用“request.getParameterMap()”获取HTTP GET参数

例如,您可以看看我的项目(非常过时)。 请参见中包含的(哪个扩展,哪个扩展)

[main]
user = filter.FooFilter