Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 3294|回复: 0

JSP权限管理系统实例源码 下载

  [复制链接]

该用户从未签到

发表于 2011-9-15 23:38:31 | 显示全部楼层 |阅读模式
一、概述

   以前写过一篇关于B/S权限管理的文章,参考(http://blog.chinaunix.net/u1/52224/showart_415123.html),那篇文章和演示系统主要是针对大型企业应用的SSO解决方案,实际B/S开发中除了大型应用,也有很多中小型应用,不需要大型企业应用那样高度模块化,一般需要高度集成而且能快速实施,所以这次再次发布一个权限管理的演示系统,相对上一个系统,这个显得比较“轻巧”,这个系统把用户管理和权限验证结合到一起,使用单一的数据库管理这些数据,同时这个示例也可以作为一般中小型B/S应用的起点,业务模块可以直接在这个起点上扩充。

二、实现方法

2.1 登录管理
    B/S应用里面,所有的资源都可以看成一个url,有些url可以不经授权访问,有的需要用户登录并且验证权限以后才能访问,登录管理就是处理需要保护的url的用户登录问题。
[/td][td=1,1,342]

Google_protectAndRun("render_ads.js::google_render_ad", google_handleError, google_render_ad);
[/td][/tr][/table]    利用Servlet可以实现这些url的隔离,在示例里面把需要保护的jsp放在/szone目录里面(通过配置web.xml可以修改),org.zjulhs.jsp.JSPLoginFilter类实现了javax.servlet.Filter接口,当用户通过浏览器访问/szone里面的jsp的时候,JSPLoginFilter会验证当前session是否存在用户变量,如果不存在,说明用户没有登录过,那么通过response.sendRedirect重定向这个访问到login.jsp页面要求用户登录,事实上目前大多数SSO系统也采用这种方式,login.jsp页面处理完成用户登录后,会在当前session里面设置用户变量,会再次将用户访问重定向到刚才的页面,JSPLoginFilter继续验证,这时用户变量已经存在,JSPLoginFilter放行,允许用户继续访问指定页面,流程图如下:


2.2 权限验证

权限验证使用“谁-做-什么”的方式,“谁”就是用户,“做”就是一种操作,“什么”就是一种资源,“做”和“什么”根据业务模式而定,比如一个订票系统,管理员张三可以冻结某个航班的机票,那么“谁”就是张三,“做”就是冻结,“什么”就是某航班的机票,事实上绝大多数情况都可以通过这种简单的模式来达到权限管理的目的。

示例使用了这种方式,为了管理方便,扩展了角色和资源分类,角色是一类相同权限用户的集合,资源分类相当于文件管理系统的文件夹,便于找到相应资源进行授权。
数据库结构如下:


   实际使用中只需要根据需要配置相应的prv_resource和prv_operation的数据,然后把这两者结合到prv_privilege表作为一种权限,并通过管理系统授权给用户或者角色。

org.zjulhs.ca.IAuthenLogic接口用来验证权限,基于MySQL5数据库的实现是org.zjulhs.ca.MySQL5AuthenLogic,IAuthenLogic.check(int userId, String operationKey, String resourceKey)返回一个bool值表示userId的用户是否能进行operationKey- resourceKey的操作,operationKey对应prv_operation表的key字段,resourceKey对应prv_resource的key字段。

三、安装方法

1、  安装MySQL5数据库,root密码设置为1,建一个编码为UTF8的ca的数据库,把/db/ca.sql导入ca数据库。通过修改classes/config.xml可以修改默认数据库连接密码。
2、  安装Tomcat5或者Tomcat6,使用JRE6或者JDK6(因为war使用JDK6编译的,如果只能使用JRE5或者JDK5,可以从源代码编译),把ca.war复制到Tomcat的webapps目录。
3、  通过Tomcat的地址访问示例http://<your_tomcat_host>:< your_tomcat_port>/ca



四、其他

1、  数据库模型在/db/ca.dm2,使用case studio2.23.1可以进行查看和修改。
2、  中文乱码可以修改Tomcat/conf/server.xml里面的默认连接的URIEncoding=”UTF-8”来纠正,更多JSP乱码问题可以google之。
3、  项目源代码使用Oracle的JDeveloper10.1.3.5开发的,可以去Oracle的OTN网站下载(http://otn.oracle.com/),当然也可以用eclipse进行开发,只要用eclipse创建一个项目到ca/ca目录,ca/ca目录是一个标准的JSP项目目录,src是java源代码,public_HTML是web页面代码目录。


下载地址:

JSP权限管理系统实例源码 下载

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1Java金币 +1 收起 理由
anthony + 1

查看全部评分

回复

使用道具 举报

该用户从未签到

发表于 2011-10-19 13:55:47 | 显示全部楼层
学习了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-21 14:30:15 | 显示全部楼层
bucuo
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-21 14:57:55 | 显示全部楼层
不错
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-11-2 22:51:07 | 显示全部楼层
想看看
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-11-4 15:04:41 | 显示全部楼层
很好
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2012-3-11 21:09:44 | 显示全部楼层
谢谢楼主了,下载下来试试
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2012-3-12 21:02:40 | 显示全部楼层
学习一下。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2012-3-14 11:01:02 | 显示全部楼层
正在找。。。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2012-3-19 00:54:24 | 显示全部楼层
XIEXEI  HEHE
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-5-19 06:03 , Processed in 0.476227 second(s), 54 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表