基于Struts的权限实现

权限管理框架实现(1)--Struts切面处理 要做一款权限架构,就要适用几个流行的相关框加,struts2是我们公司首先需要考虑的,考虑到侵入性,决定通过切面的方式,在每个Action前进行权限验证,基本思路是:        1,自定义通用权限注解        2,开发抽象切面,预留传入uid的接口        3,配置struts切面,做权限拦截以下源码是对上边功能的实现:1,权限注解/** * 自定义权限注解 */ @Targe 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 基于Struts的权限实现 作者:孤魂一笑 日期:2003-01-20 一:概念介绍 1:)资源 可以使用的系统资源.比如注册用户是一种资源,修改用户信息也是一种资源. 资源在系统中呈现为一棵树.假如用户管理是一个节点.用户注册,用户信息 修改为用户管理的叶子。叶子具有不可分割性. 2:)角色 绑定可操作资源的集合。 比如系统管理员,可以使用全部资源. 一般用户,可以注册和修改查看自己的信息. 角色可以有依赖角色。也就是说现在系统中存在 RoleA,RoleB,RoleC ,RoleD 四种角色. RoleD 倚赖RoleA 假设一个用户的角色是RoleD. 根据倚赖关系。默认有RoleA 的可使用资源. 3:)用户 系统中的使用者,因为角色可以倚赖,所以一个用户只有一种角色. 二:资源的分配 上述三个概念之间的绑定关系为用户绑定一个角色,角色绑定若干资源. 角色绑定资源有两种绑定,一种是绑定叶子,一种绑定节点。绑定节点有 两种一种只绑定节点下的叶子,一种绑定节点下所有的叶子.在系统中权 限的分配需要做到一个角色可以访问整个资源树中的任意节点和叶子的组合. 三:资源树的构造 我们使用namespace的方式去构造一棵树.根节点为空。 下面形如:sysytem.user.useradd,system.department.add,system.common 上面的可以理解为system是一个节点,并有两个子节点user,department, 一个叶子common 四:Struts中的资源标识 在Struts中一个Action的配置通常如下: <action path="/editSubscription" type="org.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="org.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的源代码 修改org/apache/struts/config/ActionConfig 增加如下代码 protected String rights="common"; public String getRights(){ return this.rights; } public void setRights(String rights){ if (configured) { throw new IllegalStateException("Configuration is frozen"); } this.rights=rights; } 假如修改成功后我们把ActionMapping 打印出来会看到相关的配置 五:权限分配的实现 1:)实现角色资源的绑定 在我的实现中我使用xml文件去配置如下: <role name="01"> <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> 2:)权限的判断 这一部分有很多中实现方式,一种所有的Action继承BaseAction 在BaseAction里面实现,并在没一个Action里面去调用判断. 另外一种交给Struts去判断 org.apache.struts.action.RequestProcessor 里面有一个processActionPerform 调用Action的execute去执行Action 我们可以修改processActionPerform让其在执行execute前先执行权限检查 如果是这样的话,必须修改org.apache.struts.action.Action 让一个方法去实现权限判断. 如果使用第二种需要修改蛮多源代码,不建议对Struts不熟悉的人使用
struts2权限管理 以拦截器的方式实现系统用户权限的管理,又清清楚楚的源码 立即下载

相关推荐

从入门到精通:dirmap 高级 Web 目录扫描实战指南

本文提供了一份从环境搭建到高级配置的dirmap Web目录扫描实战指南。详细解析了工具安装、核心配置文件dirmap.conf的深度调优,包括递归扫描、四种扫描模式(字典、爆破、爬虫、Fuzz)的实战应用,并演示了分阶段资产发现的完整工作流程,帮助安全人员高效发现隐藏目录与敏感文件。

rnn9storyteller的博客 482

基于struts的权限控制——简单实现

struts框架中只有一个ActionServlet,但可以有多个客户化的requestProcesscor。对于struts来说真正做控制的是RequestProecssor和Action。其中Action的process方法最终调用的是RequestProcessor类中的process方法。下面是该方法的源码:public void process(HttpServletRequ

Brave.Chi 的博客 1818

FPGA矩阵键盘计算器Verilog实现与Quartus仿真全流程解析

本文详细解析了基于FPGA和Verilog的矩阵键盘计算器实现全流程,包括矩阵键盘扫描、状态机设计、算术运算逻辑及数码管显示驱动。通过Quartus仿真与Testbench测试,确保设计稳定性与准确性,适合数字逻辑设计初学者学习FPGA开发与硬件描述语言应用。

chair的专栏 743

struts2通过拦截器,实现权限控制功能

自定义拦截器 package com.fsti.ssh.interceptor; import java.util.Map; import org.apache.commons.lang3.StringUtils; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; i

lisq037的专栏 3695

干扰管理学习日志4-------信道估计方法 LS(最小二乘)、MMSE(最小均方误差)

信道估计,就是从接收数据中将假定的某个信道模型的模型参数估计出来的过程。如果信道是线性的话,那么信道估计就是对系统冲激响应进行估计。需强调的是信道估计是信道对输入信号影响的一种数学表示,而“好”的信道估计则是使得某种估计误差最小化的估计算法。本文主要讲述非盲信道估计中的LS估计和MMSE估计。LS全称为,即估计的信道参数与实际信道参数的差,进行平方求和后得到的误差累积最小。MMSE估计是LS估计的改进,在LS估计的最终结果的基础上乘以加权矩阵,使之与实际信道参数更为接近。

taiyuezyh的博客 1万+

EDEM基础操作指南

EDEM(Enhanced Discrete Element Method)是一种用于模拟颗粒物料行为的软件工具。它可以模拟颗粒的碰撞、流动、堆积等过程,广泛应用于颗粒物料工程、振动筛分、堆垛机械、矿山开采等领域。本文将介绍EDEM的基础操作步骤,并提供相应的源代码示例。以上是EDEM的基础操作步骤。通过创建EDEM项目、定义颗粒材料、导入几何模型、设置边界条件、创建颗粒流场和运行模拟,您可以开始模拟颗粒物料的行为并进行相应的分析和优化。请根据您的具体需求和场景进行相应的参数设置和功能调用。

TrDelphi的博客 5295

基于Struts权限实现

一:概念介绍  1:)资源  可以使用的系统资源.比如注册用户是一种资源,修改用户信息也是一种资源.资源在系统中呈现为一棵树.假如用户管理是一个节点.用户注册,用户信息修改为用户管理的叶子。叶子具有不可分割性.      2:)角色  绑定可操作资源的集合。比如系统管理员,可以使用全部资源.一般用户,可以注册和修改查看自己的信息.角色可以有依赖角色。也就是说现在系统中存在RoleA

张波的技术积累 1184

19、情境理论中的信息结构解析

本文系统解析了情境理论中的信息结构,从信息元(infon)的基本概念出发,深入探讨了关系结构与简单信息结构的构建方法,分析了标准信息结构所满足的一系列公理(如A1-A14),并阐述了角色、同一性、高阶信息、循环现象、参数适当性及信息元部分性等核心性质。通过具体示例和流程图展示了信息结构的构建过程,并对比了不同公理下的结构差异,最后讨论了该理论在与其他领域融合中的发展趋势及面临的挑战。

book8的博客 81

Struts2实现权限控制

Struts2的核心功能是通过一个个interceptor来实现的,那么用户可以自定义一个interceptor来实现权限控制功能。    步骤一:自定义一个类,该类实现Interceptor接口,重写其intercept()方法。如: package edu.interceptor; import com.opensymphony.xwork2.ActionContext; import

ITSTAR 2154

22h2版本的win10安装Docker Desktop时页面空白

摘要:Windows10 22H2系统重装Docker时出现安装界面卡死问题,通过管理员CMD执行静默安装命令解决。命令指定了WSL-2后端及多个自定义数据存储路径(安装目录、Hyper-V数据、Windows容器数据、WSL数据),安装需等待几分钟。最终验证安装成功。

猿小白的博客 663

基于毫米波生物感知雷达+STM32设计的独居老人居家监护系统(微信小程序)(192)

当前基于STM32设计的独居老人居家监护系统为独居老人提供一种简便、实时的健康监护服务。该系统通过集成多种传感器和功能模块,能够实时监测老人的生理指标、姿态以及室内环境状况,并通过微信小程序远程显示数据,当出现异常情况时及时发出报警提醒。

1万+

struts2拦截器实现权限控制

在使用struts2框架开发一个办公OA系统时候,需要使用到权限控制 除了判定是否登陆之外,还必须对每个action的访问实现权限控制,因为如果用户登陆成功了,而且以前拥有某个权限的访问,记录下访问的action,而现在没有权限了,也能直接在地址栏输入action路径直接访问,这将使权限这一模块毫无用处。 因为没有用到命名空间,这里对于涉及命名空间的没有控制

wklken的笔记 1万+

SiC MOSFET 失效机制详解

TDDB 指在相对较低电场(通常接近或略高于器件工作电压)下,长时间施加电压导致介电层(如栅氧化物)逐渐退化并最终击穿的现象。与即时击穿(Immediate Breakdown,由强电场直接引起)不同,TDDB 是时间相关的渐进过程,通常发生在数小时、几天甚至数年之后。核心过程:在 MOSFET 中,栅极与衬底之间施加电压时,电子通过量子隧道效应(Tunneling)注入介电层,形成缺陷或陷阱。这些缺陷积累,最终在介电层中形成导电路径(Conductive Path),导致短路和器件失效。统计特性。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 385

【OA】——用Struts2拦截器实现对每一个请求的权限判断

需求:      我们在做系统的时候,使用系统的用户经常会分为很多种角色。比如什么都可以访问的admin,只能管理论坛的管理员。等等。我们系统中就遇到了权限分配的问题,那什么是权限,权限就是对系统功能的使用,功能就是开发出来的url,对功能的控制就是对url的控制,拦截器器要实现Interceptor接口,或是继承AbstractInterceptor类。

周洲 (Julie) 3274

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

基于Struts的权限实现 .

一:概念介绍 1:)资源 可以使用的系统资源.比如注册用户是一种资源,修改用户信息也是一种资源. 资源在系统中呈现为一棵树.假如用户管理是一个节点.用户注册,用户信息 修改为用户管理的叶子。叶子具有不可分割性. 2:)角色 绑定可操作资源的集合。 比如系统

【郭林专刊】云哥中国 I T 民工 362

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Struts2的interceptor实现权限管理

这是以前写过的一个利用struts2的interceptor进行权限管理的笔记,以前是放电脑上的,今天偶然看到了,就贴出来,希望能对有需要的人有点帮助,同时自己以后需要看的时候也会更加方便点!   说明一点:这个interceptor里面的代码是根据我特定的项目写的,所以请有需要的人不要盲目的照搬!   自己写一个interceptor,该interceptor继承interceptor接口,

我本善良 569

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: Jsp中调用Oracle存储过程
下一篇: PetStore1.3分析 一
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值