`
gege_s
  • 浏览: 18757 次
  • 性别: 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拦截器实现权限控制demo

    通过以上步骤,我们可以实现一个基本的基于Struts2拦截器的权限控制系统。这个demo对于初学者来说,是一个很好的起点,可以帮助他们理解如何在实际项目中结合Struts2的拦截器和权限控制来增强应用的安全性。在实际...

    Struts2拦截器及其用法详细说明

    Struts2是一个强大的Java web开发框架,它提供了一种组织和控制MVC(模型-视图-控制器)架构的方式...通过自定义拦截器和合理配置,我们可以实现诸如日志记录、事务管理、权限验证等多种业务需求,大大提升了开发效率。

    struts2 拦截器

    3. **权限验证**:拦截器可以实现用户登录检查,防止未授权的访问。 4. **数据校验**:在Action执行前,拦截器可以对输入数据进行校验,确保数据的合法性。 5. **业务逻辑增强**:如事务管理,可以在拦截器中进行...

    struts2 拦截器实例

    在Struts2中,拦截器(Interceptor)扮演着核心角色,它们允许开发者在Action执行前后插入自定义的逻辑,如日志、权限检查、事务管理等。现在我们将深入探讨Struts2的拦截器机制及其实例应用。 ### 一、Struts2拦截...

    struts2拦截器

    描述中提到的“基于struts2的拦截器测试,实现了页面的跳转,中间过程的拦截”,这表明我们可能在创建一个测试场景,来验证拦截器如何控制请求的流向以及如何在特定的业务逻辑点进行干预。页面跳转通常是拦截器完成...

    Struts2 拦截器

    Struts2的拦截器基于AOP(面向切面编程)思想,允许开发者在不修改原有代码的情况下添加额外的功能。 在Struts2中,拦截器是基于Java的动态代理机制实现的。当你定义一个拦截器时,实际上创建了一个实现了`...

    struts2拦截器实现权限控制

    在Struts2中,拦截器是基于AOP(面向切面编程)的概念设计的,它们在Action调用前后执行,可以添加额外的功能,如日志记录、事务管理、权限验证等。对于权限控制,拦截器可以在请求到达Action之前检查用户的登录状态...

    使用struts2拦截器对登陆权限验证

    在Struts2中,拦截器(Interceptor)扮演着至关重要的角色,它允许开发者在动作执行前后插入自定义逻辑,如日志记录、权限验证等。在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合...

    Struts2拦截器原理分析

    在文章"Struts2拦截器原理分析实例"中,作者通过一个具体的应用场景,展示了如何配置和使用拦截器来实现特定的功能,比如日志记录或权限验证。通过阅读这篇博客,我们可以更直观地理解拦截器的工作方式和价值。 ...

    Struts2拦截器源码

    首先,理解拦截器的定义:拦截器是AOP(面向切面编程)的一个概念,在Struts2中,拦截器是基于Java的动态代理机制实现的。它们是一系列实现了`Interceptor`接口的类,可以在Action执行前后插入额外的行为。这些行为...

    struts2拦截器实现拦截不文明字迹

    拦截器是Struts2框架的一个重要组成部分,能够帮助开发者实现一些在请求处理前后执行的通用逻辑,如日志记录、权限验证、数据校验等。在本场景中,我们将探讨如何使用Struts2拦截器来实现对不文明字迹或者敏感词汇的...

    Struts2学习案例(拦截器)

    在Struts2中,拦截器是基于Java的动态AOP(面向切面编程)实现的,它可以在Action调用前后插入额外的逻辑,比如日志记录、权限验证、事务管理等。拦截器通过配置文件或者注解与Action关联,形成一个拦截器栈,每个...

    struts2拦截器原理

    Struts2 拦截器是基于Java的Servlet Filter设计模式的一种实现,它提供了一种在Action执行前后插入额外逻辑的方式。拦截器是Struts2框架的核心组件之一,用于增强应用的功能,比如权限验证、日志记录、数据校验等。 ...

    struts2 拦截器实现登录控制

    总的来说,Struts2的拦截器机制为开发者提供了强大的功能,使得应用程序能够更好地管理复杂的业务流程和控制逻辑,同时保持代码的清晰和模块化。通过理解并熟练运用拦截器,我们可以构建更健壮、更安全的Web应用。

    Struts2 拦截器 和 Java 中的动态代理

    总结来说,Struts2拦截器是实现业务逻辑增强和控制流程的重要组件,它基于Java的动态代理机制。通过在Action执行前后插入自定义代码,拦截器使得我们可以方便地进行如日志记录、权限验证等操作,而无需直接修改...

    struts1.2拦截器使用插件

    2. **注册拦截器**:在`struts-config.xml`配置文件中,通过`&lt;interceptors&gt;`标签定义拦截器栈,然后通过`&lt;action&gt;`标签的`interceptor-ref`属性引用拦截器栈。 3. **配置拦截器栈**:在`struts-config.xml`中,...

    基于Struts2的个人信息管理系统

    基于Struts2的个人信息管理系统是使用这一框架来设计和实现的一个典型示例,它涵盖了用户管理、行程管理和文件操作等多个核心功能。 在用户管理模块中,Struts2提供了丰富的动作类(Action)和结果(Result)配置,...

    struts2 拦截器的使用(继承抽象拦截器)

    在Struts2中,拦截器是基于Java的动态代理机制实现的,它们按照配置的顺序形成一个拦截器链。每个拦截器都可以在Action执行之前或之后执行特定的任务,而无需修改Action本身。这遵循了“开闭原则”,使得代码更易于...

    struts2拦截器权限判断实例

    在“struts2拦截器权限判断实例”中,我们将创建一个自定义的拦截器来检查用户是否具有访问特定资源的权限。这个拦截器可能包括以下几个步骤: 1. **创建拦截器类**: 首先,我们需要创建一个实现了`Interceptor`...

    struts2.X 拦截器源码

    Struts2.X 拦截器是Apache Struts框架的核心组件之一,它是基于拦截器模式实现的,使得开发者能够方便地扩展和定制应用程序的行为。在Struts2中,拦截器扮演着中间件的角色,它在Action执行前后进行处理,可以进行如...

Global site tag (gtag.js) - Google Analytics