ControllerAdvice 拦截shiro 异常信息
时间: 2023-07-07 15:03:09 浏览: 45
可以通过在ControllerAdvice类中定义一个方法,使用@ExceptionHandler注解来拦截Shiro抛出的异常信息,然后进行处理或转发到错误页面。以下是一个简单的示例:
```java
@ControllerAdvice
public class ShiroExceptionHandler {
@ExceptionHandler(AuthorizationException.class)
public ModelAndView handleAuthorizationException(AuthorizationException ex) {
ModelAndView modelAndView = new ModelAndView("error");
modelAndView.addObject("errorMessage", "您没有权限进行此操作!");
return modelAndView;
}
@ExceptionHandler(AuthenticationException.class)
public ModelAndView handleAuthenticationException(AuthenticationException ex) {
ModelAndView modelAndView = new ModelAndView("error");
modelAndView.addObject("errorMessage", "请先登录后再进行此操作!");
return modelAndView;
}
}
```
在上述示例中,我们定义了两个方法来分别处理Shiro抛出的AuthorizationException和AuthenticationException异常,然后将异常信息转发到error页面并显示相应的错误提示信息。需要注意的是,我们需要在方法上使用@ExceptionHandler注解来指定需要拦截的异常类型。