JeeSite | 访问控制权限
在各种后台系统中都会涉及到权限的管控,从功能权限的管控,到数据权限的管控,都是为了让系统的在使用的过程中更加的安全。功能权限管控是对针对不同的角色可以进行不同的功能操作,而数据权限管控是针对不同的角色可以查看不同的数据。这篇文章主要介绍 JeeSite 中对功能权限的管控,也就是访问控制权限的使用,关于数据权限的部分请参考:https://www.cnblogs.com/tosser/p/9281853.html 。
从手册开始
JeeSite 开源项目集成了 shiro 这个权限控制框架,我本身不了解 shiro ,但是不了解 shiro 是不影响使用的 JeeSite 的功能权限管理的。先来看看 JeeSite 手册对权限这部分的介绍,引用手册内容如下图。
从手册上看, JeeSite 的功能权限控制需要进行四个方面的设置,分别是给 Controller 的方法添加权限标志,在菜单中设置权限标识,在代码中判断权限,当然还有是在视图中添加权限标签。
给方法添加权限标志
给方法添加标志这部分是至关重要的一步,它标志着访问该 Controller 方法时的权限,一般在使用代码生成工具时,默认会生成 view 和 edit 两种权限,分别对应着“查看”和“修改”的权限。在 Controller 中完全可以自己定义其他类型的权限,比如 import 、 export 等。
菜单中设置权限标志
这一步是在添加菜单时完成的。添加菜单的页面如下:
在添加菜单部分有四个比较重要的内容:
- 名称:即菜单的名称;
- 链接:菜单对应的 Controller ;
- 可见:该项菜单是否可以见;
- 权限标识:这个权限标识就是在 Controller 中定义的方法权限标志;
一般在维护的时候,需要把菜单和权限分开,分开以后才能进行具体的权限赋值。如果是维护菜单的话,那么就维护“名称”和“链接”,然后“可见”为“显示”。添加好菜单后,在菜单的下级维护权限。维护权限的时候,需要维护“名称”和“权限标识”,不需要维护“链接”,“可见”维护为“隐藏”。维护完以后的菜单列表如下图所示。
判断权限和视图中控制按钮
在视图中加入权限控制的判断,就会显示时会根据权限显示相关的内容,比如手册中的例子,代码如下:
<shiro:hasPermission name="sys:user:edit">
<input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>
</shiro:hasPermission>
<!-- 任何一个符合条件的权限 -->
<shiro:hasAnyPermissions name="sys:user:view, sys:user:edit,">
<input id="btnSubmit" class="btn btn-primary" type="submit" value="返 回"/>
</shiro: hasAnyPermissions>
上面的第一段例子代码会判断用户是否具备 “ sys:user:edit ” 的权限,如果具备这个权限,则会显示“保存”按钮,如果不具备这个权限是不会显示“保存”按钮的。
第二段权限,则是任何一个符合条件的权限被满足,都会显示“返回”按钮。
一般在视图上控制好权限,在代码中是不需要进行判断的。如果视图没有控制的话,那么在代码中进行一下判断。
对于一个刚开始接触 Java 的新手,对于 JeeSite 的应用就掌握到这个程度了,有不对的,有问题的,欢迎讨论!
我的微信公众号:“码农UP2U”
JeeSite | 访问控制权限的更多相关文章
- public/private/protected访问控制权限的区别
//public/private/protected访问控制权限的区别//时间:2016/8/16 //(一)修饰成员: //public: 在类内.类外都能使用 . //protected: 在类内 ...
- Java——private default protected public访问控制权限
访问控制权限 protected范例
- Java 多态 父类和子类方法的访问控制权限
Java 多态 父类和子类方法的访问控制权限 @author ixenos 父类和子类方法的访问控制权限 继承是为了扩展类的功能,而这种扩展显然就是对一个原始类的扩展,目的还是向上转型来调用,所以这就 ...
- Java基础 -- 访问控制权限
一 包:库单元 假设我们存在两个类名相同的类,如果没有一定的措施对其进行区分,就会无法区别到底使用的是哪一个类.因此java引入了包来进行名字空间管理. 包(类库)包含有一组类,这些类在单一的名字空 ...
- Cmd下修改文件访问控制权限
保证自己的磁盘分区格式是NTFS.FAT32是不行的. 一.Cacls.exe命令的使用 这是一个在Windows 2000/XP/Server 2003操作系统下都可以使用的命令,作用是显示或者修改 ...
- Java面向对象-访问控制权限
Java面向对象-访问控制权限 Java中,可以通过一些Java关键字,来设置访问控制权限: 主要有 private(私有), package(包访问权限),protected(子类访问权限),pub ...
- this、static、main方法、静态代码块、final关键字、Runtime类、Cloneable类、类成员的访问控制权限、异常体系
this表示当前对象,用在方法内部,当某对象调用该方法时,该方法中的this就代表调用该方法的对象: static关键字: 修饰类属性后,该属性就成为该类所有实例的公共属性,修改该属性值,所有的实例的 ...
- Java访问控制权限
在Java中一共存在四种访问控制权限,即 private.default(默认).protected和public 1.private 访问权限 private属于私有访问权限,可以用在属性的定义.方 ...
- TIJ摘要:访问控制权限
重构的原动力之一:发现有更好的方式去实现相同的功能. OOP需要考虑的基本问题:如何把变动的事物与不变的事物区分开来. 访问控制权限:以供类库开发人员向客户端程序员指明哪些是可用的,哪些是不可用的.访 ...
随机推荐
- 易飞ERP API接口调用DEMO
一.使用场景: 1.需要开放ERP数据给第三方系统对接,如APP手机端开发,MES,OA等: 2.接口按现在主流开发,restful风格,传JSON数据,跨平台,不限开发工具: 3.不限易飞ERP,支 ...
- NOI2019退役记 upd:2019.12.1
(我把原来写的东西全部删掉了) AFO. 我退役了,\(\mbox{yyb}\)退役了. 至少,在接下来的日子里,我得投身到文化课,度过快乐的高三生活了. 这两年的\(OI\)生涯给了我很多,让我学会 ...
- .net core项目启动时报_未处理Socket异常(以一种访问权限不允许的方式做了一个访问套接字的尝试。)
解决方案:一般的原因就是程序的端口被占用了,关掉占用端口的程序即可正常使用. 查看启动地址和配置的webserver服务器的端口号是否被占用,可能占用的有:IIS启用项目,解决方案中其他启动项目配置 ...
- python网络爬虫进阶之HTTP原理,爬虫的基本原理,Cookies和代理介绍
目录 一.HTTP基本原理 (一)URI和URL (二)超文本 (三)HTTP和HTTPS (四)HTTP请求过程 (五)请求 1.请求方法 2.请求的网址 3.请求头 4.请求体 (六)响应 1.响 ...
- PHP面试题2019年奇虎360面试题及答案解析
一.单选题(共29题,每题5分) 1.以下代码 a.php 输出的结果是? a.php 的代码如下: b.php的代码如下: A.foo in a B.什么也不输出 C.报错 D.foo in b 参 ...
- JavaWeb之Servlet(3)
Servlet(3) HttpServletRequest 该类的对象封装了所以客户端提交过来的数据 获取所有请求头数据 public java.util.Enumeration<E> g ...
- 调用大漠插件发送QQ和微信消息 C#版
大漠插件:3.1233 找图,找色,识字,找字,窗口,按鼠标,按键盘 0.注册dm.dll: regsvr32 xxx\dm.dll 1.添加com引用: 2.dmsoft各种调用: 原理: 查找窗口 ...
- 程序员编程时常用的mac快捷方式
fn + F2/F3 = 调节音量 commend + shift +k = 显示或隐藏键盘 commend+shift +h = iPhone返回主页面 commend+ shift + hh = ...
- Object-C一日速成——环境搭建
要我说,想要学习一门语言,搭建好相关的环境可以达到事半功倍的效果,那么今天我们就来聊一聊关于在windows系统上搭建Object-C语言编程环境的那些事. 文章目录 一.基于CodeBlocks的O ...
- Linux 登录 MySQL 报错, 解决bash: mysql: command not found 的方法
原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件. 首先得知道mysql ...