我正在尝试为Apache Shiro创建一个简单的授权领域进行测试:
现在,我正在尝试在以下片段中进行测试:
可以有人向我解释一下我做错了什么吗?
感谢!
public class MyAuthRealm extends AuthorizingRealm { @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { SimpleAuthorizationInfo sai = new SimpleAuthorizationInfo(); sai.addRole("kota"); sai.addStringPermission("koko:*:view"); return sai; }如您所见,它不关心用户是谁——它只返回一个角色和一个特定的权限。
@Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException { return null; } }
现在,我正在尝试在以下片段中进行测试:
if(SecurityUtils.getSubject().hasRole("kota")) { out.write("kota "); } if(SecurityUtils.getSubject().hasRole("kota2")) { out.write("kota2 "); } if(SecurityUtils.getSubject().isPermitted("koko:toto:view")) { out.write("koko "); } if(SecurityUtils.getSubject().isPermitted("koko2:toto:view")) { out.write("koko2 "); }然后我收到以下输出
kota koko koko2看来角色已经正确配置(因为用户只有角色kota),但权限不正确(为什么会打印koko2?)!!!
可以有人向我解释一下我做错了什么吗?
感谢!