springboot mvc 拦截
2018-02-24 16:47
489 查看
package com.seengene.ar.conent.restful.restful.config.loginFilter; import com.seengene.ar.conent.restful.restful.entity.Session; import com.seengene.ar.conent.restful.restful.server.RedisServer; import net.sf.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginInterceptor implements HandlerInterceptor { @Autowired private RedisServer scenicUserRedisService; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //跨越处理 response.setHeader("Access-Control-Allow-Origin", "*"); try { Session session = scenicUserRedisService.getSession(request.getParameter("sid")); System.out.println(session); String token = request.getParameter("token"); if (session.getToken() == null) { scenicUserRedisService.clearSession(request.getParameter("sid")); throw new Exception(); } if (!token.equals(session.getToken())) { scenicUserRedisService.clearSession(request.getParameter("sid")); throw new Exception(); } } catch (Exception e) { JSONObject jsonObject = new JSONObject(); jsonObject.put("code", 605); jsonObject.put("status", "token error"); jsonObject.put("data", new JSONObject()); response.getWriter().write(jsonObject.toString()); return false; } return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } }
package com.seengene.ar.conent.restful.restful.config.loginFilter; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration public class MyWebAppConfigurer extends WebMvcConfigurerAdapter { @Bean LoginInterceptor loginInterceptor() { return new LoginInterceptor(); } @Override public void addInterceptors(InterceptorRegistry registry) { super.addInterceptors(registry); // 多个拦截器组成一个拦截器链 // addPathPatterns //用于添加拦截规则 // excludePathPatterns 用户排除拦截 registry.addInterceptor(loginInterceptor()).addPathPatterns("/webArContent/**") .excludePathPatterns("/webArContent/login") .excludePathPatterns("/webArContent/token") .excludePathPatterns("/webArContent/callback") .excludePathPatterns("/webArContent/addAppDownloadCount") .excludePathPatterns("/webArContent/getAppDownloadCount"); } }
相关文章推荐
- 分布式架构springcloud+redis+springmvc+springboot
- springboot+springmvc+mybatis 使用注解对数据库的增、改和查操作
- 创建一个SpringBoot + springmvc + hibernateJPA + MyBatis的项目
- springboot/springmvc+shiro+zookeeper作session共享+redis作缓存共享
- spring boot MVC 三 用户注册和登录的实现
- Spring-mvc 静态资源不拦截
- spring boot RESTFul API拦截 以及Filter和interceptor 、Aspect区别
- springboot+spring+springmvc+mybatis详解
- spring cloud + spring boot + springmvc+mybatis分布式微服务云架构
- Spring Boot / Spring MVC 入门实践 (一) :环境搭建与第一个项目
- Springboot + shiro 整合之Url拦截设置
- springboot+mybatis+springmvc整合实例
- 分布式架构springmvc+springboot+springcloud+redis
- SpringBoot进阶之使用异常替代返回错误码(拦截异常并统一处理)
- springboot常用注解(包含spring及MVC)
- IDEA上面搭建一个SpringBoot的web-mvc项目
- Spring boot+Shiro+ spring MVC+swagger UI +Mybatis+mysql+Vue +Element UI 之四 vue 基本知识点概述
- springboot+springmvc+mybatis项目整合
- Spring Boot vs. Spring MVC vs. Spring: How Do They Compare? Spring, Spring Boot, Spring MVC, there a
- SpringBoot/SpringMVC整合Shiro(一):实现登录与注册(MD5加盐加密)