自定义拦截器判断用户是否有权限访问

Posted 羽哲

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义拦截器判断用户是否有权限访问相关的知识,希望对你有一定的参考价值。

1、关于权限系统,对于用户是否有权限对系统进行访问,设置自定义拦截器,来拦截用户的请求

 1 package org.slsale.interceptor;
 2 
 3 import javax.annotation.Resource;
 4 import javax.servlet.http.HttpServletRequest;
 5 import javax.servlet.http.HttpServletResponse;
 6 import javax.servlet.http.HttpSession;
 7 
 8 import org.apache.log4j.Logger;
 9 import org.slsale.common.Constants;
10 import org.slsale.common.RedisAPI;
11 import org.slsale.pojo.User;
12 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
13 
14 /**
15  * 自定义拦截器,拦截请求(是否有权限访问)
16  * @author lzw
17  * 2017-7-11
18  * 每个人都有自己的梦想。努力拼搏吧!不要让自己后悔!
19  */
20 public class SysInterceptor extends HandlerInterceptorAdapter {
21     private Logger logger = Logger.getLogger(SysInterceptor.class);
22     @Resource
23     private RedisAPI redisAPI;
24 
25     @Override
26     public boolean preHandle(HttpServletRequest request,
27             HttpServletResponse response, Object handler) throws Exception {
28         HttpSession session = request.getSession();
29         String urlPath = request.getRequestURI();
30 
31         User user = (User) session.getAttribute(Constants.SESSION_USER);
32         if (null == user) {// 如果session中user为空,返回登录页面
33             response.sendRedirect("/");
34             return false;
35         } else {
36             String key = "Role" + user.getRoleId() + "UrlList";
37             String urls = redisAPI.get(key);
38             if (urls != null && !"".equals(urls) && urls.indexOf(urlPath) > 0) {
39                 return true;
40             } else {
41                 response.sendRedirect("/401.html");
42                 return false;
43             }
44         }
45     }
46 
47 }

 

以上是关于自定义拦截器判断用户是否有权限访问的主要内容,如果未能解决你的问题,请参考以下文章

拦截器和自定义注解@interface

Vue 路由拦截、http拦截

spring AOP 和自定义注解进行身份验证

10.自定义拦截器判断用户登录

erp12---shiro框架使用

前端如何实现登录拦截?