`
kukuqiu001
  • 浏览: 210893 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

spring aop实现权限控制,路径控制

阅读更多
spring aop 的权限的管理是通过对路径的控制来实现的
现在共有两个角色,经理和员工
经理的权限检查的代码
MgrAuthorityInterceptor.java
public class MgrAuthorityInterceptor 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];
            if (args[i] instanceof ActionMapping) mapping = (ActionMapping)args[i];
        }
        //从session中得到用户的级别
        String level = (String)request.getSession().getAttribute("level");
        //如是经理级别则继续,否则,回到登陆页面
        if ( level != null && level.equals("mgr") )
        {
            return invocation.proceed();
        }
        else
        {
            return mapping.findForward("login");
        }
    }
}

员工的权限的实现,EmpAuthorityInterceptor.java
public class EmpAuthorityInterceptor 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];
            if (args[i] instanceof ActionMapping) mapping = (ActionMapping)args[i];
        }
        //从session中得到用户的级别
        String level = (String)request.getSession().getAttribute("level");
        //如是经理或员工级别则继续,否则,回到登陆页面
        if ( level != null && (level.equals("emp") || level.equals("mgr")))
        {
            return invocation.proceed();
        }
        else
        {
            return mapping.findForward("login");
        }
    }
}


员工,经理权限的实现,在action-servlet.xml中
 <!--  以经理权限拦截器生成代理  -->
    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
	    <property name="beanNames">
            <list>
				action中的经理的操作
            </list>
	    </property>
        <property name="interceptorNames">
            <list>
                <value>mgrAuthorityInterceptor</value> 
            </list>
        </property>
    </bean>

    <!--  以普通员工权限拦截器生成代理  -->
    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
	    <property name="beanNames">
            <list>
				员工中的action操作
            </list>
	    </property>
        <property name="interceptorNames">
            <list>
                <value>empAuthorityInterceptor</value> 
            </list>
        </property>
    </bean>

    <!-- 定义经理权限检查拦截器,class即前面的MgrAuthorityInterceptor.java-->
	<bean id="mgrAuthorityInterceptor" class="org.***.MgrAuthorityInterceptor"/>
    <!-- 定义普通员工权限检查拦截器 ,class即前面的EmpAuthorityInterceptor.java-->
	<bean id="empAuthorityInterceptor" class="org.***.EmpAuthorityInterceptor"/>
分享到:
评论
6 楼 dabing69221 2013-05-31  
有没有使用Annotation配置AOP的方式来实现权限管理
5 楼 maakey 2012-09-24  
还是不懂怎么配置出来!
4 楼 jack_mark 2009-01-15  
经理、员工的权限的实现中request,mapping,两个对象为什么为空呢
3 楼 anson_xu 2008-11-14  
能不能把两个BeanNameAutoProxyCreator配在一起啊,两个action就要写两个,如果多的话其不是多了很多代码?
2 楼 gaoshang502 2008-06-23  
具体怎么配置啊?
1 楼 gaoshang502 2008-06-23  
action中的经理的操作
怎么配置啊?

相关推荐

    spring aop 实现权限的简单示例

    在本示例中,我们将深入探讨如何利用Spring AOP实现简单的权限验证。 首先,AOP的核心概念是切面(Aspect),它封装了横切关注点,比如日志、事务管理、权限验证等。在Spring AOP中,切面通过通知(Advice)来定义...

    SpringAOP禁止非法请求路径实例

    在Spring框架中,AOP(Aspect Oriented Programming,面向切面编程)是一种强大的设计模式,它允许程序员在不修改源代码的情况下,通过插入被称为“切面”的代码来增强功能或处理横切关注点,如日志、事务管理、权限...

    spring aop 依赖jar

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

    Spring 2.5 AOP 例子

    - 安全控制:验证用户权限,限制访问。 - 错误处理:捕获并处理运行时异常。 综上所述,Spring 2.5 AOP例子展示了如何利用类扫描和XML配置实现面向切面编程。通过理解这些概念和实践,我们可以更高效地管理和维护...

    spring aop 所需jar包

    在Java应用中,AOP主要用于处理那些具有横切关注点(如日志记录、事务管理、权限检查等)的代码,使得业务逻辑代码能够更加专注于核心功能,而无需关心这些横切关注点的实现。 在Spring AOP中,我们通常需要依赖两...

    Spring中aop编程所需要的jar包

    在Spring框架中,AOP(面向切面编程)是一种强大的工具,它允许程序员定义横切关注点,如日志、事务管理、权限控制等,并将它们模块化为可重用的切面。为了在Spring中进行AOP编程,我们需要一些特定的JAR包。以下是...

    Spring Aop操作的相关的jar包

    9. **Spring AOP的应用场景**:日志记录、性能监控、事务管理、权限控制等。 在实际开发中,使用Spring AOP的步骤包括: 1. 创建切面类,并定义通知方法。 2. 使用`@Aspect`注解标记切面类。 3. 定义切入点表达式,...

    Spring Boot 通过AOP和自定义注解实现权限控制的方法

    Spring Boot 通过 AOP 和自定义注解实现权限控制的方法 在本文中,我们将探讨如何使用 Spring Boot 通过 Aspect-Oriented Programming(AOP)和自定义注解来实现权限控制。权限控制是任何应用程序的重要组件,它...

    spring注解方式实现aop

    在Spring框架中,AOP(面向切面编程)是一种强大的工具,它允许程序员定义横切关注点,如日志、事务管理、权限控制等,并将它们模块化为可重用的切面。本教程将详细讲解如何使用注解方式在Spring中实现AOP。 首先,...

    spring aop配置常用jar包

    Spring AOP,全称Aspect Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它提供了在应用程序中实现切面编程的能力。AOP允许开发者定义“方面”,这些方面可以包含业务逻辑的各个部分,比如日志...

    Spring_aop额外所需增强包.zip

    本压缩包"Spring_aop额外所需增强包.zip"包含了实现Spring AOP功能所必需的三个关键库:aopalliance.jar、aspectjrt.jar和aspectjweaver.jar。 1. aopalliance.jar:这是一个通用的AOP接口库,定义了一些基本的AOP...

    Spring框架核心Jar和AOP所需的Jar文件

    - **面向切面编程**:在Spring中,AOP主要用于日志记录、事务管理、权限检查等横切关注点。AspectJ库让AOP实现更加灵活和强大。 - **事务管理**:Spring提供了声明式和编程式的事务管理,简化了事务控制,确保业务...

    spring boot如何使用spring AOP实现拦截器

    总结起来,Spring Boot结合Spring AOP实现拦截器,主要是通过定义切面类,声明拦截规则(切点),然后编写环绕通知,以在方法执行前后插入自定义的行为,如记录日志、检查权限等。这种做法可以有效地解耦业务逻辑和...

    Struts+spring+hibernate 集成实现的经典权限管理系统源代码

    此外,Spring还提供了AOP(面向切面编程)功能,可以方便地实现权限拦截和日志记录等跨切面的逻辑。 再者,Hibernate作为ORM(对象关系映射)框架,处理了数据库操作。它将Java对象与数据库表对应,使得开发者可以...

    Spring2.5使用AOP需要的aspectJ

    在Spring 2.5版本中,面向切面编程(AOP)是一个强大的功能,它允许开发者定义“切面”来封装横切关注点,如日志、事务管理、权限检查等,使得代码更加模块化和可重用。AspectJ是一个成熟的AOP框架,Spring在其AOP...

    spring-shiro-training-master.zip_guide8go_shiro_spring_spring 权限

    通过Spring与Shiro的整合,我们可以实现精细化的权限控制,为企业的基础架构提供坚实的支持。 首先,我们需要理解Spring与Shiro的核心概念。Spring框架的核心是依赖注入(Dependency Injection, DI)和面向切面编程...

    如何在aop中取得requset

    在Java开发中,AOP(面向切面编程)是一种强大的设计模式,用于处理系统中的横切关注点,如日志、事务管理、权限控制等。当我们想要在AOP中获取HttpServletRequest对象时,这通常是为了实现与请求相关的业务逻辑或者...

    基于AOP的大赛信息管理系统权限设计

    粗粒度控制通过过滤器对访问路径进行权限限制,而细粒度控制则通过重写Spring的DelegatingRequestProcessor类,实现对每个方法的精确权限控制。对于无法直接拦截的类,可以利用CGLIB实现AOP,但这种方式仅适用于继承...

    hibernate-struts2-spring集成用户权限认证

    在这个项目中,Spring将负责管理对象的生命周期和依赖关系,同时也可以通过Spring的安全模块实现权限控制。 2. **Struts2框架**:Struts2是基于MVC设计模式的Java Web框架,用于处理HTTP请求和响应。在用户权限认证...

Global site tag (gtag.js) - Google Analytics