applicationContext.xml
<bean id="empDAO" class="dao.EmpDAO"></bean>
<bean id="empService" class="service.EmpService">
<property name="dao">
<ref local="empDAO" />
</property>
</bean>
<bean name="/emp" class="action.EmpAction">
<property name="service">
<ref local="empService" />
</property>
</bean>
<!-- 定义普通员工权限检查拦截器 ,class即前面的EmpAuthorityInterceptor.java-->
<bean id="empAuthorityInterceptor"
class="util.EmpAuthorityInterceptor" />
<!-- 以员工权限拦截器生成代理 -->
<bean
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>/emp</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>empAuthorityInterceptor</value>
</list>
</property>
</bean>
EmpAuthorityInterceptor.java
package util;
import javax.servlet.http.HttpServletRequest;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.apache.struts.action.ActionMapping;
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];
}
String parameter = mapping.getParameter();
String methodName = request.getParameter(parameter);
String path = mapping.getPath();
System.out.println("方法名======"+methodName);
System.out.println("path======="+path);
// 从session中得到用户
String username = (String) request.getSession()
.getAttribute("username");
// 如是经理级别则继续,否则,回到登陆页面
if (username != null && username.equals("admin")) {
return invocation.proceed();
} else {
return mapping.findForward("error");
}
}
}
分享到:
相关推荐
在本示例中,我们将深入探讨如何利用Spring AOP实现简单的权限验证。 首先,AOP的核心概念是切面(Aspect),它封装了横切关注点,比如日志、事务管理、权限验证等。在Spring AOP中,切面通过通知(Advice)来定义...
Spring AOP实现权限检查的功能是将权限验证的逻辑与核心业务逻辑相分离,以此提高代码的可维护性和可复用性。在Spring框架中,AOP(面向切面编程)是一种强大的工具,它允许我们在不修改原有代码的情况下,向应用...
**Spring AOP 实现机制详解** Spring AOP(面向切面编程)是Spring框架的核心特性之一,它允许程序员在不修改源代码的情况下,通过“切面”来插入额外的业务逻辑,如日志、事务管理等。AOP的引入极大地提高了代码的...
在本文中,我们将重点探讨如何使用Spring AOP实现用户权限验证。 首先,权限验证是任何应用程序中不可或缺的一部分,尤其是涉及到用户登录和访问控制的场景。通过Spring AOP,我们可以将权限验证的逻辑与业务代码...
Spring AOP(面向切面编程)是一个强大的工具,常用于实现业务逻辑中的横切关注点,如日志、事务管理以及我们的案例——数据权限控制。本篇将深入探讨如何结合Spring AOP和Oracle数据库来实现精细化的数据权限控制。...
本实例将深入探讨如何在Spring AOP中实现权限控制,以提高代码的可读性和可维护性。 首先,我们要理解AOP的基本概念。AOP允许程序员定义“切面”,这些切面封装了特定的关注点,比如权限检查。然后,这些切面可以在...
本篇文章主要介绍了使用 Spring AOP 实现用户权限管理的示例,通过 AOP 方式来实现权限管理,可以降低项目后期开发的可扩展性和代码重复率。 知识点一:AOP 在实际项目中的应用场景 AOP(Aspect-Oriented ...
一个简单的采用自定义注解结合SpringAop实现方法执行的权限管理,这个demo中并没有涉及到与数据库的交互和业务代码,用户权限在登陆时采用简单的手动初始化。该demo用的jdk1.7编译,Spring4.0版本,只想通过这个demo...
Java Spring AOP 权限控制是指在 Java Spring 框架下使用 Aspect-Oriented Programming(面向方面编程)技术来实现权限控制。权限控制是指对用户的访问权限进行控制和管理,以确保系统的安全和可靠性。在 Java ...
2. **Spring AOP实现方式** - **代理模式**:Spring AOP使用两种代理方式,JDK动态代理和CGLIB代理。如果目标类实现了接口,Spring会使用JDK动态代理;如果没有实现接口,Spring会使用CGLIB代理生成子类。 - **JDK...
Spring AOP,全称Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它为Java应用程序提供了声明式事务管理、日志记录、权限控制等实用功能。AOP的核心概念是切面(Aspect)和通知(Advice...
下面我们将深入探讨Spring AOP的底层实现技术和相关知识点。 1. **代理模式** Spring AOP基于两种代理机制实现:JDK动态代理和CGLIB代理。JDK动态代理适用于实现了接口的目标对象,通过反射机制创建一个代理类来...
- **事务管理**:通过AOP实现声明式事务管理,简化事务控制代码。 - **性能监控**:在关键方法前、后插入性能计时通知,便于性能分析。 - **权限校验**:在方法执行前进行用户权限验证,确保安全。 5. **源码...
本篇文章将深入探讨如何利用Spring AOP来实现权限管理,以及相关的知识点。 首先,权限管理是系统安全的关键组成部分,它确保只有具有适当权限的用户才能访问特定的资源或执行特定的操作。在Spring AOP中,我们可以...
**Spring AOP实现权限控制** 在Spring中,我们可以使用注解或XML配置来定义切面。这里我们以注解为例: 1. **定义切面类(Aspect)**:创建一个类,并使用`@Aspect`注解标记。在这个类中,我们可以定义拦截器方法...
在Spring Boot应用中,Spring AOP(面向切面编程)是一种强大的工具,它允许我们创建横切关注点,如日志记录、权限检查等,这些关注点可以被编织到应用程序的多个点上,而无需侵入核心业务逻辑。在本案例中,我们将...
**Spring AOP实现方式** 1. **注解驱动(Annotation-based)**:使用`@Aspect`注解定义切面,`@Before`, `@After`, `@AfterReturning`, `@AfterThrowing`, `@Around`定义通知,`@Pointcut`定义切入点表达式。 2. *...
AOP实现权限校验 除了使用拦截器外,我们还可以使用AOP技术来实现权限校验功能。在AOP中,我们可以使用Advice来抛出异常,以便在service层方法中实现权限校验功能。 AOP Advantage 使用AOP技术可以使得权限校验...
2. **Spring AOP实现方式**:Spring提供了两种AOP实现,一种是基于代理(Proxy-based AOP),另一种是基于ASM字节码操作的AspectJ。基于代理的方式简单易用,而AspectJ则更为强大,支持更复杂的切面定义。 3. **...
XML配置是Spring AOP早期的主要实现方式,虽然现在有更简洁的注解式配置,但理解XML配置方式对于深入理解AOP原理仍然很有帮助。下面我们将详细探讨如何通过XML配置实现Spring AOP。 首先,我们需要在Spring配置文件...