首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache Shiro,INI-Configuration,Perms per URL:如何获取URL参数?

Apache Shiro,INI-Configuration,Perms per URL:如何获取URL参数?
EN

Stack Overflow用户
提问于 2012-10-31 05:30:16
回答 1查看 1.8K关注 0票数 1

我想在我的JSF应用程序中使用Apache Shiro来执行基于URL的授权检查,在shiro.ini中完成的配置正如我在Shiro-documentation中看到的,有一种方法可以使用"perms"-filter。

代码语言:javascript
复制
/remoting/rpc/** = authc, perms["remote:invoke"]

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

代码语言:javascript
复制
# "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这至少可以通过编程来完成:

代码语言:javascript
复制
SecurityUtils.getSubject().isPermitted("printer:query:lp7200")

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-12 15:50:37

通过在软件中实现和使用自己的"org.apache.shiro.web.filter.AccessControlFilter“子类,It is possible可以做到这一点。可以在shiro.ini中声明自己的类:

代码语言:javascript
复制
[main]
user = filter.FooFilter

AccessControlFilter类提供了一个"isAccessAllowed(ServletRequest request,ServletResponse response,Object mappedValue)"-method,它可以被覆盖以使用"request.getParameterMap()“来获取HTTP-GET-parameters。

举个例子,你可以看看我的项目tiramisu (相当过时)。请参阅包含在WEB-INF/shiro.ini中的CompanyManagerPermissionsFilter (它扩展了CompanyScopedPermissionsFilter,它扩展了DomainPermissionsFilter)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13147859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档