配置aop拦截登录用户
时间: 2023-11-24 20:44:26 浏览: 30
配置AOP拦截登录用户的步骤如下:
1. 在Spring配置文件中开启AOP支持,添加以下代码:
```xml
<aop:aspectj-autoproxy/>
```
2. 创建一个切面类,用于拦截登录用户,代码如下:
```java
@Aspect
@Component
public class LoginAspect {
@Autowired
private HttpSession session;
@Pointcut("execution(* com.example.controller.*.*(..))")
public void pointcut() {}
@Before("pointcut()")
public void before(JoinPoint joinPoint) {
Object[] args = joinPoint.getArgs();
for (Object arg : args) {
if (arg instanceof HttpServletRequest) {
HttpServletRequest request = (HttpServletRequest) arg;
User user = (User) session.getAttribute("user");
if (user == null) {
throw new RuntimeException("请先登录!");
}
}
}
}
}
```
3. 在切面类中定义一个切点,用于指定需要拦截的方法,这里使用了通配符,拦截了所有在com.example.controller包下的方法。
4. 在切面类中定义一个前置通知,在方法执行前判断用户是否登录,如果未登录则抛出异常。
5. 在需要拦截的Controller方法中添加HttpServletRequest参数,这样切面类就可以获取到请求对象,从而获取到session中的登录用户信息。
6. 部署应用程序并测试,如果用户未登录,则访问任何需要登录的页面都会被拦截并跳转到登录页面。