`
蔡尧东
  • 浏览: 34197 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

使用Spring的AOP进行权限管理

阅读更多
对于web(jsp)的权限管理有2种方法,一种是使用过滤器filter,一种是用Spring的拦截器,基于AOP来实现颗粒度更细的权限管理,本文介绍第2种方法:
  拦截器需要实现MethodIntercptor接口,该接口来自AOP联盟。
拦截器代码:
package com.cai.oa.tools;

import javax.servlet.http.HttpServletRequest;

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.apache.struts.action.ActionMapping;
import org.springframework.stereotype.Component;

@Component
public class PopedomManagerInterceptor implements MethodInterceptor{
	
    public Object invoke(MethodInvocation invocation)
          throws Throwable{
         HttpServletRequest request = null;
         ActionMapping mapping = null;
         
         Object[] args = invocation.getArguments();
         
         for(int i = 0 ; i < args.length; i++){
             if(args[i] instanceof HttpServletRequest){
                   request = (HttpServletRequest)args[i];
 continue;
             }
             if(args[i] instanceof ActionMapping){
                   mapping = (ActionMapping)args[i];
             }
         }
         
         if(request.getSession().getAttribute("userInfo") != null){
              return  invocation.proceed();
         }else{
              return mapping.findForward("index");
         }      
  
    }
}


然后使用BeanNameAutoPoxy为需要进行权限控制的Action生成权限检查:
//拦截器bean
<bean id="popedomManagerInterceptor" class="sharpyuce.PopedomManagerInterceptor" />
//生成自动代理bean
<bean class="org.springframework.aop.framework.autopoxy.BeanNameAutoPoxy">
    <property name="beanNames">
        <list>
             <value>需要进行权限管理的action 例如:/manager</value>
                                       .....................
                                       .....................
       </list>
    </property>
    <property name="interceptorNames">
       <list>
              <value>popedomManagerInterceptor</value>
       </list>
     </property>
</bean>
分享到:
评论

相关推荐

    使用SpringAop使用Oracle数据权限控制

    Spring AOP(面向切面编程)是一个强大的工具,常用于实现业务逻辑中的横切关注点,如日志、事务管理以及我们的案例——数据权限控制。本篇将深入探讨如何结合Spring AOP和Oracle数据库来实现精细化的数据权限控制。...

    Java利用spring aop进行监测方法执行耗时

    可扩展性强:使用 Spring AOP 进行方法耗时监测,可以方便的对其他的切面进行扩展,例如:日志、异常处理、权限控制等切面。 4. 提高系统性能:通过对系统中的方法进行耗时监测,可以及时发现系统中的性能瓶颈,...

    spring aop权限小实例

    在IT行业中,Spring框架是Java企业级应用开发的首选,而Spring AOP(Aspect Oriented Programming,面向切面编程)是其核心特性之一,用于处理系统中的横切关注点,如日志、事务管理等。本实例将深入探讨如何在...

    spring aop实现用户权限管理的示例

    本篇文章主要介绍了使用 Spring AOP 实现用户权限管理的示例,通过 AOP 方式来实现权限管理,可以降低项目后期开发的可扩展性和代码重复率。 知识点一:AOP 在实际项目中的应用场景 AOP(Aspect-Oriented ...

    spring aop 实现权限的简单示例

    Spring AOP(面向切面编程)是Spring框架的重要组成部分,它允许我们在不修改源代码的情况下对程序的行为进行统一管理和控制。在本示例中,我们将深入探讨如何利用Spring AOP实现简单的权限验证。 首先,AOP的核心...

    java spring AOP权限控制

    Java Spring AOP 权限控制是指在 Java Spring 框架下使用 Aspect-Oriented Programming(面向方面编程)技术来实现权限控制。权限控制是指对用户的访问权限进行控制和管理,以确保系统的安全和可靠性。在 Java ...

    Java之Spring AOP 实现用户权限验证

    在本文中,我们将重点探讨如何使用Spring AOP实现用户权限验证。 首先,权限验证是任何应用程序中不可或缺的一部分,尤其是涉及到用户登录和访问控制的场景。通过Spring AOP,我们可以将权限验证的逻辑与业务代码...

    Spring Aop使用实例

    **Spring AOP 使用实例** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的一个重要组成部分,它提供了一种在不修改原有代码的情况下,通过代理方式添加额外功能的技术。这种技术使得我们...

    Spring AOP实现机制

    Spring AOP(面向切面编程)是Spring框架的核心特性之一,它允许程序员在不修改源代码的情况下,通过“切面”来插入额外的业务逻辑,如日志、事务管理等。AOP的引入极大地提高了代码的可复用性和可维护性。 ### 1. ...

    Spring AOP 权限

    在Spring框架中,AOP(面向切面编程)是一种强大的工具,用于实现诸如日志记录、性能监控、事务管理以及,如题目所述,权限控制等跨功能关注点。本篇文章将深入探讨如何利用Spring AOP来实现权限管理,以及相关的...

    springAop+自定义注解实现权限管理

    一个简单的采用自定义注解结合SpringAop实现方法执行的权限管理,这个demo中并没有涉及到与数据库的交互和业务代码,用户权限在登陆时采用简单的手动初始化。该demo用的jdk1.7编译,Spring4.0版本,只想通过这个demo...

    spring aop 学习笔记

    Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和抽象化的方法来处理系统中的交叉关注点,如日志、事务管理、安全性等。本学习笔记将深入探讨Spring AOP的核心概念、工作原理以及实际...

    spring aop spring aop

    总的来说,Spring AOP提供了一种优雅的方式来管理横切关注点,使代码更整洁,降低了模块间的耦合。在实际开发中,它可以用于日志记录、权限控制、事务管理等多个场景,极大地提高了代码的可维护性和复用性。

    Spring基础:Spring AOP简单使用

    Spring AOP,全称Aspect Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它扩展了传统的面向对象编程(OOP),使得开发者能够更好地处理系统中的横切关注点,如日志、事务管理、权限控制等。...

    spring-aop-jar

    在IT领域,Spring框架是一个广泛使用的Java应用框架,它提供了许多功能,包括依赖注入、面向切面编程(AOP)等。"spring-aop-jar"这个主题涉及到Spring框架中的核心组件之一——Spring AOP。这里我们将深入探讨...

    基于spring_aop_权限管理系统原型

    在基于Spring AOP的权限管理系统原型中,我们探讨的核心是如何利用Spring的面向切面编程(Aspect-Oriented Programming,AOP)特性来实现细粒度的权限控制。AOP允许我们在程序运行时,对特定关注点(如日志、事务...

    spring aop 依赖jar

    在Spring中,AOP主要用于实现日志记录、事务管理、权限控制等功能。 在描述中提到的问题,用户在尝试使用Spring AOP的注解`@Aspect`时遇到了没有提示的情况。这通常是因为缺少了相关的jar包依赖。Spring AOP的实现...

    spring aop管理xml版

    在Spring框架中,面向切面编程(Aspect Oriented Programming,简称AOP)是一种重要的设计模式,它扩展了传统的面向对象编程(OOP),使得我们可以将关注点分离,特别是那些横切关注点,如日志、事务管理、权限检查...

    Spring AOP简单demo

    Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的一个重要模块,它扩展了传统的面向对象编程,允许开发者定义“横切关注点”(cross-cutting concerns),如日志、事务管理、性能监控等。...

    spring AOP的运用

    Spring AOP,全称Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它为Java应用程序提供了声明式的企业级服务,如事务管理、日志记录等。AOP的核心概念是切面(Aspect)和通知(Advice)...

Global site tag (gtag.js) - Google Analytics