SpringMVC 处理全局异常
在使用 Shiro 权限控制框架后,如果使用注解在 Controller 控制访问的角色,如果权限不足,就会抛出 AuthorizationException
异常:
@RequiresRoles({"admin"})//需要 admin 角色才能访问,否则抛出异常
@RequestMapping("/article/update/{id}.html")
public String toUpdateArticlePage(Model model, @PathVariable Long id) {
List<BlogArticleCategory> categoryList = categoryService.getAllCategory();
model.addAttribute("categoryList", categoryList);
BlogArticle article = articleService.getArticleById(id);
model.addAttribute("article", article);
return "update-article";
}
我们需要全局的捕获该异常,然后跳转到权限不足的画面:
@ControllerAdvice
public class GlobalExceptionResolver {
/**
* 处理 AuthorizationException 异常
* @return
*/
@ExceptionHandler(AuthorizationException.class)
public String handlerException(AuthorizationException e){
return "unauthorized";
}
}
- 通过
@ControllerAdvice
指定该类为Controller
增强类。 - 通过
@ExceptionHandler
自定捕获的异常类型。
如果需要返回 JSON 数据,可以采用 @ResponseBody 注解。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: SpringMVC 获取请求参数
下一篇: 谈谈自己对于 AOP 的了解
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论