JAVA实现权限管理的两种方式六_第1页
JAVA实现权限管理的两种方式六_第2页
JAVA实现权限管理的两种方式六_第3页
JAVA实现权限管理的两种方式六_第4页
JAVA实现权限管理的两种方式六_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA 实现权限管理的两种方式六实现权限管理的两种方式六 第一种方式 利用 filter xml 文件和用户信息表 配合使用来实现权限管理 1 过滤器 filter ackage aaa bbb filter imort java io IOExcetion imort java io InutStream imort java util HashMa imort java util Iterator imort java util List imort java util Ma imort javax servlet Filter imort javax servlet FilterChain imort javax servlet FilterConfig imort javax servlet ServletContext imort javax servlet ServletExcetion imort javax servlet ServletRequest imort javax servlet ServletResonse imort javax servlet htt HttServletRequest imort javax servlet htt HttServletResonse imort mons logging Log imort mons logging LogFactory imort org dom4j Document imort org dom4j Element imort org dom4j io SAXReader imort aaa bbb domain User imort aaa bbb util HttUtils 过滤 后台管理的模块授权 根据 配置文件 xml 根据当前 session 中用的管理员信息 注 不用再访问数据库 也不需要再使用什么 bean 去判断 直 接在这个类里就可以判断 author cuiguangqiang ublic class ManagerAuthFilter imlements Filter rotected static final Log logger LogFactory getLog ManagerAuthFilter class ublic static final String MAING FILE WEB INF managerauthmaing xml rivate ServletContext context null rivate Ma actions new HashMa ublic void init FilterConfig filterConfig throws ServletExcetion context filterConfig getServletContext if context null logger error unable to init as servlet context is null return loadConf logger info ManagerAuthFilter configure success rivate void loadConf InutStream inutStream context getResourceAsStream MAING FILE if inutStream null logger info unable find auth maing file MAING FILE else actions arseConf inutStream rivate Ma arseConf InutStream inutStream try SAXReader reader new SAXReader Document document reader read inutStream return createActionMa document catch Excetion e logger info e getMessage e rintStackTrace return new HashMa rivate Ma createActionMa Document document Ma ma new HashMa Element root document getRootElement 处 理 XML 读入 JAVA Object 对象中 List actionList root elements for Iterator it actionList iterator it hasNext Element e Element it next String actionName e attributeValue name String auth value e element auth value getTextTrim ma ut actionName auth value logger info actionName is auth value return ma ublic void doFilter ServletRequest request ServletResonse resonse FilterChain chain throws IOExcetion ServletExcetion 处理某次提交的 Action 是否在权限定义范围内 权限共有 1 站长 2 0 Admin all 代表所有人都可以 均需要 登录 HttServletRequest req HttServletRequest request HttServletResonse res HttServletResonse resonse 得到此次用户的提交请求 String url req getServletath 只有在配置文件中存在的 action 才进行处理 String method req getarameter method if method null url url method method String auth value String actions get url if auth value null logger info action is not in Manager Auth xml chain doFilter request resonse return 第一必须要登录 取得当前用户 User manager User HttUtils getAdminUserSession req 检查管理用户是否登录 if manager null res sendRedirect req getContextath sessionLost do return 第二必须在权限定义范围内 if auth value indexOf all 0 chain doFilter request resonse 必须返回给上一层 return else String currUserAuth Integer toString manager getLever String currUserAuth Integer toString manager getLever if auth value indexOf currUserAuth 0 chain doFilter request resonse 必须返回给上一层 return else res sendRedirect req getContextath accessdenied do return ublic void destroy logger info in authfilter destroy 2 xml 文件 xml 只给出了部分内容不过所有的内容都包括了 xml version 1 0 encoding UTF 8 权限共有 0 Admin 具有所有权限包括增删改用户 1 站长 2 maing xxxx 管理模块 xx 列表 报名选手和历史比赛查询部分 action name listallmatch doauth value0 1 a uth value action action name matchManager doauth value0 auth value action action name rewrite doauth value0 1 auth value action action name leftHome doauth valueall auth value action action name login doauth valueall auth value action maing 3 用户表里面有一个用来保存用户级别的字段 level 具体用户表的信 息有以下内容 我用实体类来表示用户表的信息因为没有表结构了 The comosite rimary key value rivate String id 用户编号 rivate String userId The value of the simle username roerty rivate String username The value of the simle assword roerty rivate String assword 0 Admin 1 站长 2 rivate int lever 1 创建用户的日期 rivate Date createDate 所有的操作都显示在页面上当该操作时才进行权限控制抛出是否该 用户有没有该功能的权限 第二种方式 利用专门的权限表来维护用户权限根据登录的用户的 权限信息判断谋个功能是否显示在页面上来实现权限的控制 1 不用数据库表了我用实体类的属性来表示 rivate String id 管理员 id rivate String emloyeeid 管理功能 id rivate String urlid 功能名称 rivate String urlname 超级管理员给每一个用户分配权限然后添加到该张表中 登录用户 根据自己的权限可以判断是否显示该功能 权限控制表设计 用户 角色 权限 大概有这几种模式 用户 组 角色 权限 用户 组 权限 用户 角色 权限 用户 权限 两种权限管理其一是功能权限的管理而另外一种则是资源权限的管理 A 数据库表形式 1 用户表 用户编号 用户名 密码 角色编号 2 角色表 角色编号 角色名 3 功能表 主要保存系统功能清单 编号 功能名称 父编号 URL 4 角色权限对应表 编号 角色编号 功能编号 权限 imort java util Set ublic class UserVo rivate Integer id rivate String uname rivate String assword rivate Level level ublic Level getLevel return level ublic void setLevel Level level t his level level ublic String getUname return uname ublic void setUname String uname this uname uname ublic String getassword return assword ublic void setassword String assword this assword assword ublic Integer getId return id ublic void setId Integer id this id id ublic class Level rivate Integer id rivate String levelName rivate SetQuanxian qx new HashSetQuanxian 0 ublic Integer getId return id ublic void setId Integer id this id id ublic String getLevelName return levelName ublic void setLevelName String levelName this levelName levelName ublic SetQuanxian getQx return qx ublic void setQx SetQuanxian qx this qx qx ublic class Quanxian rivate Integer id rivate String quanxian rivate Integer fatherid rivate String url ublic Integer getFatherid return fatherid ublic void setFatherid Integer fatherid this fatherid fatherid ublic Integer getId return id ublic void setId Integer id this id id ublic String getQuanxian return quanxian ublic void setQuanxian String quanxian this quanxian quanxian ublic String getUrl return url ublic void setUrl String url this url url ublic class AdminLoginCheck extends HttServlet imlements Filter 通过 一个过滤器 Filter 进行权限控制 rivate FilterConfig filterConfig Handle the assed in FilterConfig ublic void init FilterConfig filterConfig throws ServletExcetion this filterConfig filterConfig rocess the request resonse air ublic void doFilter ServletRequest request ServletResonse resonse FilterChain filterChain Sy

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论