SpringBoot中如何实现登录拦截配置?(实测有效)

2026-05-24 11:361阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计464个文字,预计阅读时间需要2分钟。

SpringBoot中如何实现登录拦截配置?(实测有效)

背景:写一个用户登录拦截器,在网上找到一个圆圈没找到好用的,于是自己尝试了一下,总结出来分享给家人。

1. 自定义登录拦截器LoginInterceptorjavapublic class LoginInterceptor implements HandlerInterceptor {

背景:写一个用户登录拦截,在网上找了一圈没找到好用的,于是自己试验了一下,总结出来,分享给大家。

1.自定义登录拦截器LoginInterceptor

public class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 这里是关键 User loginUser = (User) request.getSession().getAttribute("user"); if (loginUser == null) { // 未登录抛出异常,交给统一异常处理器处理 throw new CustomException(ResultCode.USER_NOT_LOGIN); } 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 { } }

2.在WebConfigurer中添加拦截器

@Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { //注册TestInterceptor拦截器 registry.addInterceptor(new LoginInterceptor()) .addPathPatterns("/**") // 排除登录注册等接口,注意这里的格式是 /**/xxx .excludePathPatterns("/**/login", "/**/register"); } }

3.登录接口

/** * 登录 * @return 用户信息 */ public User login(UserVO userVO. HttpServlet) { String username = userVO.getUsername(); String password = userVO.getPassword(); User user = userMapper.findByUsernameAndPassword(username, password); // 未找到用户 if(user == null) { throw new CustomException(ResultCode.USER_ACCOUNT_ERROR); } // 设置session中的用户信息 SessionUtils.setSessionAttribute("user", user); return user; }

文中的代码细节不一一列举了,这里重点讨论的拦截器,感兴趣的朋友可以私聊我获取其他代码。

结果

未登录的情况下,请求普通接口提示未登录。

请求登录接口。

SpringBoot中如何实现登录拦截配置?(实测有效)

登录后再去请求普通接口,返回正常。

-END-

到此这篇关于SpringBoot登录拦截配置详解(实测可用)的文章就介绍到这了,更多相关SpringBoot登录拦截内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

本文共计464个文字,预计阅读时间需要2分钟。

SpringBoot中如何实现登录拦截配置?(实测有效)

背景:写一个用户登录拦截器,在网上找到一个圆圈没找到好用的,于是自己尝试了一下,总结出来分享给家人。

1. 自定义登录拦截器LoginInterceptorjavapublic class LoginInterceptor implements HandlerInterceptor {

背景:写一个用户登录拦截,在网上找了一圈没找到好用的,于是自己试验了一下,总结出来,分享给大家。

1.自定义登录拦截器LoginInterceptor

public class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 这里是关键 User loginUser = (User) request.getSession().getAttribute("user"); if (loginUser == null) { // 未登录抛出异常,交给统一异常处理器处理 throw new CustomException(ResultCode.USER_NOT_LOGIN); } 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 { } }

2.在WebConfigurer中添加拦截器

@Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { //注册TestInterceptor拦截器 registry.addInterceptor(new LoginInterceptor()) .addPathPatterns("/**") // 排除登录注册等接口,注意这里的格式是 /**/xxx .excludePathPatterns("/**/login", "/**/register"); } }

3.登录接口

/** * 登录 * @return 用户信息 */ public User login(UserVO userVO. HttpServlet) { String username = userVO.getUsername(); String password = userVO.getPassword(); User user = userMapper.findByUsernameAndPassword(username, password); // 未找到用户 if(user == null) { throw new CustomException(ResultCode.USER_ACCOUNT_ERROR); } // 设置session中的用户信息 SessionUtils.setSessionAttribute("user", user); return user; }

文中的代码细节不一一列举了,这里重点讨论的拦截器,感兴趣的朋友可以私聊我获取其他代码。

结果

未登录的情况下,请求普通接口提示未登录。

请求登录接口。

SpringBoot中如何实现登录拦截配置?(实测有效)

登录后再去请求普通接口,返回正常。

-END-

到此这篇关于SpringBoot登录拦截配置详解(实测可用)的文章就介绍到这了,更多相关SpringBoot登录拦截内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!