我在我的项目中使用 Apache shiro。它提供了一些默认过滤器来过滤 url。现在我遇到了一个关于过滤 url 的问题。如果有像'/rest/user/info'这样的API,如果它的方法是GET,这个API可以被任何人访问,但如果是POST,它只能被管理员访问。我找到了默认过滤器“休息”,但它没有任何帮助。有人可以给点建议吗?谢谢。
问问题
506 次
1 回答
0
像这样配置:
<property name="filterChainDefinitions">
<value>
/login = authc
/logout = logout
/rest/user/info = rest[user:info]
</value>
</property>
- post /rest/user/info 需要 perms[user:info:create]
- 获取 /rest/user/info 需要 perms[user:info:read]
- ...
给管理员权限[用户:信息:创建]和权限[用户:信息:读取],只给其他人权限[用户:信息:读取]。在 Realm 的 doGetAuthorizationInfo 方法中设置用户的权限。
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
info.addStringPermission("user:info:create");
info.addStringPermission("user:info:read");
return info;
}
于 2013-06-27T05:36:37.083 回答