java学习笔记——众筹项目练习——后台manager程序的用户模块-管理员登录功能、树形结构显示插件zTree的简单使用、RBAC权限模型介绍

                                     用户模块-管理员登录功能

 

有了前边我们练习管理员注册功能的基础,这个登录功能就简单多了,无非就是在登录页面取得用户的登录信息,在程序中进行查询数据库的操作,查到了表示,表示用户登录信息正确,登录成功并携带查询到的所有用户信息跳转到控制面板main.jsp,以供后序页面使用。如果没有查到,表示用户登录信息不正确,登录失败并将得到的登录信息回显到登录页面,这里回显界面时使用重定向的方式跳转的登录界面"redirect:/login.jsp"。还记得之前注册功能中,注册失败是是采用转发方式跳转页面的嘛,转发的方式是错误的,应该使用重定向的方式跳转页面。因为转发与重定向的区别在于http的地址有没有改变,由于转发不会引起请求地址的改变,在回显页面的请求地址还是会保存注册回显前的请求,这样就会导致,只有按F5刷新页面时,就会再次执行回显以前的注册请求。而重定向就不会引发这个问题,因为重定向的每次跳转页面,都代表浏览器重新发送了一次跳转到这个页面的请求,所以按F5也不会引起重复提交。所以在之前的注册功能中的注册失败回显时,也应该使用重定向来跳转页面。

 

在login.jsp页面中修改form表单的请求地址、请求方式,和各个元素的信息名称与回显时显示的信息。

点击登录后提交form表单。

添加代码查询数据库,然后跳转页面到控制面板或者回显到登录页面

登录成功后,在控制面板页面显示用户信息

 

 

 

好了,用户的注册与登录功能就这么愉快的完成了。

接下来我们打开原型界面看看控制面板main.html中都有哪些东西,首先映入眼帘的就是权限管理。

而权限管理中的权限列表是使用树形结构显示的,并且坐标的菜单栏也是树形结构显示的,树形结构数据的显示是一种很常见的功能,在很多场景下都有用到,并且实现起来也简单,只是使用一个插件而已。所以,我们先来说说这个树形结构显示,然后再来重点介绍权限的相关内容吧。

 

                                                          树形结构显示

树形结构显示这里使用zTree_v3-3.5.28插件来完成,这个插件可以在页面中显示一个树形结构,很是简单。

zTree的下载地址:https://download.csdn.net/download/qq_25106373/11082580

首先我们使用HBuilder来完成树形结构显示的测试。打开HBuilder,将zTree插件的相关文件拷入测试项目中。包中包含有说明文档和demo,有了说明文档我们想写一个简单的树形结构显示,就简单多了。我打开来看看。

这个简单JSON数据,树形结构显示很适合我们,所以就以这个实例为例子,我们右键看看他的框架源码,了解一下他是如何实现一个树形结构的吧。

首先映入眼帘的是添加zTree需要的js文件和css文件。还有这个setting 结构、zNodes结构、和$.fn.zTree.init()方法。

还有这个显示树形结构的区域标签,这样就可以显示一个树形结构数据了,是不是很简单。

刚才说了,这个简单JSON数据 的树形结构显示很适合我们,主要原因是他的zNodes结构很适合我们。大家有没有发现这个zNodes结构很像我们的数据库表中的结构呢。为了在表中表示出子父级的关系,我们通常会在表中添加一列pID,表示父级的id。如果pId是0,则表示这个节点是所有节点的父节点.。这样的话我们只需要查询数据库表中的数据,然后以数组的方式组装成zNodes结果就可以使用了。

好,现在我们在HBuilder中按照说明文档的方法简单写一个树形结构。

这里引入jQuery库的时候要注意,我这里引入jquery-1.4.4.min.js是无法正常显示的,引入jquery-3.2.1.min.js就可以正常显示,可能是因为版本问题吧!!!

好了,运行一下看看效果。。。

说明文档中还有其他详细的功能提供,别的更加详细的需要可以查看说明文档(比如自定义节点的图标),这里只做一个简单的记录。好,页面中可以显示树形结构了,这样只要将相关的代码拷贝到我们项目的页面中,我们的项目就可以使用了!!!!

 

 

                                           RBAC权限模型

权限管理,这是每个软件系统都会涉及到的,而且权限管理的需求本质往往都是一样,不同的角色拥有不同的权限,只要你充当了某个角色,你就拥有了相对应的功能

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限(功能)之间,一般者是多对多的关系。还记得多对多的关系在我们的数据库表中应该如何建立表的对应关系嘛。通常如果我们的数据库表中有一个用户表和一个角色表,一个用户可以有很多的角色,一个角色也可以有很多的用户,那这个用户表与角色表就是多对多的关系,如果想为这两张表建立关系,只是在这两张表中添加彼此的外键作为关联,是无法实现我们的需求的。所以我们如果想为两张多对多关系的表添加关联的话,通常我们都会为这两张表创建一张中间关联表来记录对应关系(如 用户-角色表),表中可以记录用户1对应那几个角色,同时也可以记录角色1对应那几个用户,以此类推。

这就是最简单的RBAC权限模型,有简单的当然还有复杂一点的了,不够万变不离其中,复杂的也都是从这个简单的权限模型中扩展出来的

比如这个复杂一点的扩展模型

 这个模型在简单的RBAC模型基础上又添加了用户组的概念,以及菜单项、页面元素、文件表、功能操作等一系列的权限管理,这样不同权限的用户,不光权限不同就连能够使用的菜单、页面能看到的元素、可以操作的文件等等,统统都不同啦。。。

 

好,我们接着扩展,下面的RBAC级别 - RBAC0 就是我们上面提到的最简单的RBAC权限模型,我们叫他RBAC0。它有四个部分组成,用户、角色、许可(也叫权限)和会话。会话这个词其实没什么特别的含义,只表示用户访问一次系统就发生一次会话。我们也可以把会话去掉,认为RBAC0有用户、角色、权限三部分组成就可以了。

RBAC级别 - RBAC0

核心模型, 其他的级别都是建立在该级别的基础上

 

 

RBAC级别 - RBAC1

这个模型是基于RBAC0模型,进行了角色的分层,也就是说角色上有了上下级的区别

 

RBAC级别 - RBAC2

这个RBAC2,也是基于RBAC0模型的基础上,进行了角色的访问控制

 

 

RBAC级别 - RABC3

RBAC3,也就是最全面级的权限管理,它是基于RBAC0的基础上,将RBAC1和RBAC2进行整合了,最全面的,也最复杂的。

 

总之,任何系统中都在所难免的会涉及到权限管理的模块,无论复杂简单,我们都可以通过以RBAC模型为基础,进行相关灵活运用来解决我们的问题。这里仅仅作为简单记录,具体还需要去实践。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值