shiro-重写标签功能----shiro:hasPermission 标签重写
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了shiro-重写标签功能----shiro:hasPermission 标签重写,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1926字,纯文字阅读大概需要3分钟。
内容图文
public abstract class ShiroAuthorizingRealm extends AuthorizingRealm{ private static final String OR_OPERATOR = " or "; private static final String AND_OPERATOR = " and "; private static final String NOT_OPERATOR = "not "; @Override public boolean isPermitted(PrincipalCollection principals, String permission) { /*理解问题:传递过来的字符串的格式: 或者格式 : 权限1 or 权限2 与格式: 权限1 and 权限2 非格式: not 权限1 */ //步骤:通过判断来实现三种操作符 if (permission.contains(OR_OPERATOR)) { //如果有任何一个权限,返回true,否则返回false String[] permissions = permission.split(OR_OPERATOR); for (String p : permissions) { //只要有一个权限是通过验证的就返回true if (this.isPermittedWithNotOperator(principals, p)) { return true; } } return false; }else if (permission.equals(AND_OPERATOR)) { //必须两个权限都有,返回true.否则返回false String[] permissions = permission.split(AND_OPERATOR); for (String p : permissions) { //只要有一个权限是false的,我们就返回假 if (this.isPermittedWithNotOperator(principals, p)==false) { return false; } } return true; }else { //如果没有关键字,按正常方式执行 return this.isPermittedWithNotOperator(principals, permission); } } private boolean isPermittedWithNotOperator(PrincipalCollection principals, String permission) { //判断权限字符串前缀是否有"not "关键字。 if(permission.startsWith(NOT_OPERATOR)) { //如果有,就返回相反的结构 return !super.isPermitted(principals, permission.substring(NOT_OPERATOR.length())); } else { return super.isPermitted(principals, permission); } } }
<shiro:hasPermission name="modular:to_edit or modular:delete">
</shiro:hasPermission>
<shiro:hasPermission name="modular:to_edit or modular:delete">
</shiro:hasPermission>
<shiro:hasPermission name="modular:to_edit or modular:delete">
</shiro:hasPermission>
内容总结
以上是互联网集市为您收集整理的shiro-重写标签功能----shiro:hasPermission 标签重写全部内容,希望文章能够帮你解决shiro-重写标签功能----shiro:hasPermission 标签重写所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。