`
gege_s
  • 浏览: 18157 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

基于struts2拦截器的权限管理

阅读更多

我要分享的是我为华夏银行保证金系统做的一个权限管理模块,基于struts2拦截器来实现可配置的权限模型。

 

看下struts配置文件先:

 

 

	<package name="accesslog" extends="base" abstract="true">
		<interceptors>
			<interceptor name="accesslog"
				class="com.ylsoft.power.web.intercept.AccessLogInterceptor">
			</interceptor>
			<interceptor-stack name="accesstrace">
				<interceptor-ref name="defaultStack" />
				<interceptor-ref name="accesslog" />
			</interceptor-stack>
		</interceptors>
		<default-interceptor-ref name="accesstrace" />
	</package>

	<package name="needsession" extends="accesslog" abstract="true">
		<interceptors>
			<interceptor name="validsession"
				class="com.ylsoft.power.web.intercept.ValidSessionInterceptor">
			</interceptor>
			<interceptor-stack name="filtersession">
				<interceptor-ref name="mydefault"></interceptor-ref>
				<interceptor-ref name="accesslog"></interceptor-ref>
				<interceptor-ref name="validsession"></interceptor-ref>
			</interceptor-stack>
		</interceptors>
		<default-interceptor-ref name="filtersession"></default-interceptor-ref>
	</package>
	<package name="authrole" extends="needsession" abstract="true">
		<interceptors>
			<interceptor name="authenticate"
				class="com.ylsoft.power.web.intercept.AuthenticateInterceptor">
			</interceptor>
			<interceptor-stack name="auth">
				<interceptor-ref name="mydefault"></interceptor-ref>
				<interceptor-ref name="accesslog"></interceptor-ref>
				<interceptor-ref name="filtersession"></interceptor-ref>
				<interceptor-ref name="authenticate"></interceptor-ref>
			</interceptor-stack>
		</interceptors>
		<default-interceptor-ref name="auth"></default-interceptor-ref>
	</package>

 

我把对struts提供的服务的访问权限分为以下几种:

 

1.不做任何限制

2.只做访问日志

3.所有登录的用户都能访问

4.通过角色认证的用户才能访问

 

通过配置文件可以看出它们有序的组合在一起,并且都是抽象的,对它们的定义很简单,它们是独立的内容不与任何业务相关,因为它们不知道接下来要配置到哪些业务上。

 

这样的好处是这些配置可以重用,方便管理。

 

 

下面是针对具体业务的配置:

 

 

<package name="backlog" namespace="/" extends="authrole">
		<action name="backlog"
			class="com.ylsoft.backlog.action.BacklogAction">
			<result name="failList">
				/project/backlog/failList.jsp
			</result>
			
			<result name="accountUpdate">
				/project/backlog/accountUpdate.jsp
			</result>
			
			<result name="queryList">
				/project/backlog/queryList.jsp
			</result>
		</action>
	</package>
 

 

分享到:
评论
1 楼 gege_s 2012-04-02  
    程序有很大的优化空间,都是因为了解不全面,就开始着手编码了,总觉得struts在配置上少些什么,比如一个action中的所有public方法都会被公开出去,这样就有一个问题,如果我想把这些方法分开到不同的pakeage里公开呢,现在是没有办法做到的。


    有一篇博文提醒了我:http://blog.csdn.net/javaiswhat/article/details/2631233

应该继承自MethodFilterInterceptor,这样就可以在配置文件里过滤不需要权限限制的方法。

相关推荐

    STRUTS2拦截器控制页面访问权限的设计与实现

    STRUTS2拦截器控制页面访问权限的设计与实现,解决基于STRUTS2的web应用的程序访问控制,防止非法访问

    [Struts 2权威指南--基于WebWork核心的MVC开发(高清完整版) 1/12

    第1章 Struts 2概述,第2章 Struts 2下的HelloWorld,第3章 Struts 2基础,第4章 深入Struts 2,第5章 Struts 2的类型转换,第6章 文件的上传和下载.,第7章 Struts 2的拦截器,第8章 Struts 2的输入校验,9.2 ...

    图书管理系统-struts2

    (1) 图书管理系统可以按照用户权限和实现功能的不同分为两部分:外部学生对数据库的查阅访问和内部管理人员对图书记录的管理维护。 (2) 用户注册,需要通过Struts2字段校验判断用户注册页面中的用户名、密码、年龄...

    Struts2入门教程(全新完整版)

    6.使用拦截器实现权限验证 35 7.拦截器中的注解 37 8.使用PreResultListener实现回调 39 六、使用标签 40 1.基础表单标签 40 2.单选按钮和复选框: 41 3.三种方式实现下拉列表 41 4.二级联动 42 5.其它表单标签 44 6...

    S2SH项目整体系统架构

    2、拦截器实现用户权限检查功能 3、拦截器自动生成日志 4、未登录非法访问页面检测 5、三种方式日志的生成 6、页面访问计数 7、选中页面对应的帮助页面实现 8、根据页面编号或名称跳转页面 9、数据库连接池 ...

    ssh框架实现通讯录

    写的比较简陋,,基于struts1.2+spring2.0+hibernate3.1框架 基本功能: 注册,登陆,添加联系人,按类别查找联系人,删除联系人,登出 表单输入使用validate框架验证,权限管理使用 Filter+action拦截器,...

    毕业论文-办公自动化系统的设计和实现

    随着计算机网络通信技术的发展,资源...利用拦截器和过滤器实现“用户、角色、权限”三维管控,使系统更加具有层次化和结构化。 本系统具有易用性、健壮性、严密性和实用性等特点,将现代化办公和计算机技术有机结合。

    J2EE应用开发详解

    208 11.7.1 基于容器管理事务 209 11.7.2 基于Bean管理的事务 210 11.8 EJB拦截器 212 11.9 EJB定时服务 214 11.10 EJB安全管理 214 11.11 小结 216 第12章 RMI 217 12.1 RMI简介 217 12.1.1 RMI的架构 218 12.1.2 ...

    SSH框架实现BBS完整版

    该文档是SSH框架为基础实现的BBS论坛。其中有整合好的全面的SSH jar包,BBS前台,后台源码,这个小系统的报告,数据库关系分析等。 以下内容摘自报告目录部分(希望...4.14 根据权限定义拦截器 4.15 测试系统相应的功能

    Spring面试题

    基于Struts开发的应用由3类组件构成:控制器组件、模型组件、视图组件 8. Struts的validate框架是如何验证的? 在struts配置文件中配置具体的错误提示,再在FormBean中的validate()方法具体调用。 9. 说下Struts...

    SSM开发框架

    通过拦截器进行权限检查、日志输出等操作; 05、框架实现了文件上传共通、电子文档导出、校验、全局异常处理、分页等共通,具体参见相关画面的相关功能; 06、通过注解方式实现事务控制,相关画面有测试代码,具体在...

    最新SSM整合

    通过拦截器进行权限检查、日志输出等操作; 05、框架实现了文件上传共通、电子文档导出、校验、全局异常处理、分页等共通,具体参见相关画面的相关功能; 06、通过注解方式实现事务控制 07、关于数据库链接,可以...

    spring security 参考手册中文版

    25.1 AOP联盟(MethodInvocation)安全拦截器 197 25.1.1显式MethodSecurityInterceptor配置 197 25.2 AspectJ(JoinPoint)安全拦截器 198 26.基于表达式的访问控制 200 26.1概述 200 26.1.1通用内置表达式 201 ...

Global site tag (gtag.js) - Google Analytics