您的位置:首页 > 编程语言 > Java开发

SpringMVC拦截器(包括自定以拦截器--实现HandlerInterceptorAdapter)(资源和权限管理)

2018-02-07 21:43 429 查看

一,springmvc的配置

1 <!-- 访问拦截  -->
2       <mvc:interceptors>
3         <mvc:interceptor>
4             <mvc:mapping path="/**/**"/>
5             <bean class="com.fh.interceptor.LoginHandlerInterceptor"/>
6         </mvc:interceptor>
7     </mvc:interceptors>

二,拦截类

1 public class LoginHandlerInterceptor extends HandlerInterceptorAdapter{
2
3     @Override
4     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
5         // TODO Auto-generated method stub
6         String path = request.getServletPath();
7         if(path.matches(Const.NO_INTERCEPTOR_PATH)){
8             return true;
9         }else{
10             User user = (User)Jurisdiction.getSession().getAttribute(Const.SESSION_USER);
11             if(user!=null){
12                 path = path.substring(1, path.length());
13                 boolean b = Jurisdiction.hasJurisdiction(path); //访问权限校验
14                 if(!b){
15                     response.sendRedirect(request.getContextPath() + Const.LOGIN);
16                 }
17                 return b;
18             }else{
19                 //登陆过滤
20                 response.sendRedirect(request.getContextPath() + Const.LOGIN);
21                 return false;
22             }
23         }
24     }
25
26 }

 

 

三,静态类

1     public static final String NO_INTERCEPTOR_PATH = ".*/((login)|(logout)|(code)|(app)|(weixin)|(static)|(main)|(websocket)).*";    //不对匹配该值的访问路径拦截(正则)

 

四,解释

只要进入Controller之前都会进入这个拦截器

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: