知识大全 基于Struts的权限实现

Posted

篇首语:会挽雕弓如满月,西北望,射天狼。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 基于Struts的权限实现相关的知识,希望对你有一定的参考价值。

基于Struts的权限实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    作者 孤魂一笑          一 概念介绍      :)资源  可以使用的系统资源 比如注册用户是一种资源 修改用户信息也是一种资源   资源在系统中呈现为一棵树 假如用户管理是一个节点 用户注册 用户信息  修改为用户管理的叶子 叶子具有不可分割性      :)角色  绑定可操作资源的集合   比如系统管理员 可以使用全部资源   一般用户 可以注册和修改查看自己的信息   角色可以有依赖角色 也就是说现在系统中存在  RoleA RoleB RoleC RoleD 四种角色   RoleD 倚赖RoleA  假设一个用户的角色是RoleD   根据倚赖关系 默认有RoleA 的可使用资源      :)用户  系统中的使用者 因为角色可以倚赖 所以一个用户只有一种角色      二 资源的分配    上述三个概念之间的绑定关系为用户绑定一个角色 角色绑定若干资源   角色绑定资源有两种绑定 一种是绑定叶子 一种绑定节点 绑定节点有  两种一种只绑定节点下的叶子 一种绑定节点下所有的叶子 在系统中权  限的分配需要做到一个角色可以访问整个资源树中的任意节点和叶子的组合      三 资源树的构造    我们使用namespace的方式去构造一棵树 根节点为空   下面形如:sysytem user useradd system department add mon  上面的可以理解为system是一个节点 并有两个子节点user department   一个叶子mon     四 Struts中的资源标识    在Struts中一个Action的配置通常如下:    <action path= /editSubscription   type= apache struts webapp example EditSubscriptionAction   attribute= subscriptionForm   scope= request   validate= false >  <forward name= failure path= /mainMenu jsp />  <forward name= success path= /subscription jsp />  </action>    为了使没一个Action绑定到一个跟节点下 我们加一个选项把上面的配置修改为  <action path= /editSubscription   type= apache struts webapp example EditSubscriptionAction   attribute= subscriptionForm   scope= request   rights= system user   validate= false >  <forward name= failure path= /mainMenu jsp />  <forward name= success path= /subscription jsp />  </action>    为了在xml parse的时候可以加载上面的配置 我们需要修改一下Struts的源代码  修改/apache/struts/config/ActionConfig  增加如下代码    protected String rights= mon ;    public String getRights()  return this rights;       public void setRights(String rights)  if (configured)   throw new IllegalStateException( Configuration is frozen );    this rights=rights;      假如修改成功后我们把ActionMapping 打印出来会看到相关的配置     五 权限分配的实现     :)实现角色资源的绑定  在我的实现中我使用xml文件去配置如下   <role name= >  <resource list>  <resource name= test url= test jsp menu= false />  <resource name= user url= user jsp menu= true />  <! 绑定绑定一个叶子 >  </resource list>  <node list>  <node name= system test include= false >  <! 绑定绑定一个节点如果include为true绑定所有子叶子 >  </node list>  </role>     :)权限的判断  这一部分有很多中实现方式 一种所有的Action继承BaseAction  在BaseAction里面实现 并在没一个Action里面去调用判断     另外一种交给Struts去判断   apache struts action RequestProcessor  里面有一个processActionPerform  调用Action的execute去执行Action   我们可以修改processActionPerform让其在执行execute前先执行权限检查  如果是这样的话 必须修改 apache struts action Action  让一个方法去实现权限判断     如果使用第二种需要修改蛮多源代码 不建议对Struts不熟悉的人使用 cha138/Article/program/Java/ky/201311/28653

相关参考

知识大全 Struts2基于注解的Action配置

Struts2基于注解的Action配置  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用注解

知识大全 基于Struts1.2的动态多文件上传

基于Struts1.2的动态多文件上传  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  首先是we

知识大全 浅谈基于URL的权限控制ASP.NET MVC中的实现

浅谈基于URL的权限控制ASP.NETMVC中的实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 JSF和struts基于框架的错误控制与封装处理

JSF和struts基于框架的错误控制与封装处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Struts中如何基于validation.xml来启用客户端验证

Struts中如何基于validation.xml来启用客户端验证?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 基于hibernate的开源通用查询框架-bba96

  bba框架当前版本包含  bbacore核心框架封装HibernateCriteria提供方便的查询以及分页支持查询参数  bbastruts基于Struts的开发框架依赖core提供便捷的CRU

知识大全 控制数据表中的[字段权限][单元格权限]

我们习惯了在页面上有几个按钮控制这几个按钮的权限都做得都很熟练例如有btnAdd添加按钮btnEdit编辑按钮btnDelete删除按钮此页面是学生基本信息管理页面frmStudentManager那

知识大全 安卓手机怎么在权限管理上添加应用

安卓手机怎么在权限管理上添加应用添加应用去软件商城里面添加。想要给软件更改权限管理可以去手机管家里面。你打开手机。然后找到手机管家---》权限管理-----》应用权限。找到软件。然后看看他的权限。看看

知识大全 控制数据表中的字段权限及单元格权限

  我们习惯了在页面上有几个按钮控制这几个按钮的权限都做得都很熟练例如有btnAdd添加按钮btnEdit编辑按钮btnDelete删除按钮此页面是学生基本信息管理页面frmStudentManage

知识大全 怎样才能获得百度百科的编写权限

怎样才能获得百度百科的编写权限?有些词条需要权限,有些是不需要的。多数的是不需要权限的。如果是创建的话,是没有任何等级限制的。编辑的话有时候需要有权限。例如编辑以下两种情况,需要四级账号和通过率85%