SpringBoot登录拦截配置详解(实测可用)
时间:2021-04-06 10:04:01|栏目:JAVA代码|点击: 次
背景:写一个用户登录拦截,在网上找了一圈没找到好用的,于是自己试验了一下,总结出来,分享给大家。
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;
}
文中的代码细节不一一列举了,这里重点讨论的拦截器,感兴趣的朋友可以私聊我获取其他代码。
结果
未登录的情况下,请求普通接口提示未登录。

请求登录接口。

登录后再去请求普通接口,返回正常。
-END-
栏 目:JAVA代码
本文地址:http://www.codeinn.net/misctech/95947.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




