我在我的项目中使用Apache shiro。它提供了一些过滤网址的默认过滤器。现在我遇到了关于过滤网址的问题。如果有像'/ rest / user / info'这样的API,如果它的方法是 GET,这个api可以被任何人访问,但如果它是POST,它只是可以由管理员访问。我发现dafault过滤器“休息”但它没有任何帮助。有人能提出一些建议吗?谢谢。
答案 0 :(得分:0)
配置如下:
<property name="filterChainDefinitions">
<value>
/login = authc
/logout = logout
/rest/user/info = rest[user:info]
</value>
</property>
给予管理员权限[user:info:create]和perms [user:info:read],仅为其他人提供权限[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;
}