Spring Boot 学习系列之拦截器,实现用户登录拦截
2017-12-22 21:25
441 查看
Web开发中,使用Spring提供的HandlerInterceptor(拦截器),实现登录拦截器,用于拦截用户session是否过期
一、自定义拦截器类
二、在Application类中,声明拦截器
其中:
addPathPatterns添加需要拦截的命名空间;
excludePathPatterns添加排除拦截命名空间
以上两部即可实现传统会话拦截。
一、自定义拦截器类
public class LoginInterceptor implements HandlerInterceptor { private static final Logger log = LoggerFactory.getLogger(LoginInterceptor.class); /** * 进入controller层之前拦截请求 * @param httpServletRequest * @param httpServletResponse * @param o * @return * @throws Exception */ @Override public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception { log.info("---------------------开始进入请求地址拦截----------------------------"); HttpSession session = httpServletRequest.getSession(); UserInfo userInfo = (UserInfo)session.getAttribute("user"); if(userInfo!=null){ return true; } else{ //PrintWriter printWriter = httpServletResponse.getWriter(); //printWriter.write("{code:0,message:\"会话已过期,请重新登录!\"}"); httpServletResponse.sendRedirect(httpServletRequest.getContextPath()+"/admin"); return false; } } @Override public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { log.info("--------------处理请求完成后视图渲染之前的处理操作---------------"); } @Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { log.info("---------------视图渲染之后的操作-------------------------0"); } }
二、在Application类中,声明拦截器
@Override public void addInterceptors(InterceptorRegistry registry) { //注册自定义拦截器,添加拦截路径和排除拦截路径 registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/admin/**") .excludePathPatterns("/admin/login.do").excludePathPatterns("/admin"); }
其中:
addPathPatterns添加需要拦截的命名空间;
excludePathPatterns添加排除拦截命名空间
以上两部即可实现传统会话拦截。
相关文章推荐
- springmvc 自定义拦截器实现未登录用户的拦截
- spring boot 使用拦截器 实现 用户登录拦截
- SpringMVC拦截器实现用户登录拦截
- python学习系列之python装饰器基础(3)---装饰器实现用户登录验证
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(15)-用户登录详细错误和权限数据库模型设计
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(12)-实现用户异步登录和T4模板
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(12)-实现用户异步登录和T4模板
- AutoCAD 二次开发学习系列【4】 - 实现CPropertySheet进行用户交互
- iOS学习系列 - 在iOS客户端实现google oauth2登录以及在asp.net服务端上form认证
- php基础系列:从用户登录处理程序学习mysql扩展基本操作
- Android基于XMPP Smack Openfire下学习开发IM(一)实现用户注册、登录、修改密码和注销等
- 过滤器和拦截器的比较及未登录用户权限限制的实现
- Android基于XMPP Smack Openfire下学习开发IM(一)实现用户注册、登录、修改密码和注销等
- php基础系列:从用户登录处理程序学习mysql扩展基本操作
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(15)-用户登录详细错误和权限数据库模型设计
- 过滤器和拦截器的比较及未登录用户权限限制的实现
- Android基于XMPP Smack Openfire下学习开发IM(一)实现用户注册、登录、修改密码和注销等
- YII学习,实现基于数据库的后台登录,用户体系.
- 过滤器和拦截器的比较及未登录用户权限限制的实现
- Android基于XMPP Smack Openfire下学习开发IM(一)实现用户注册、登录、修改密码和注销等