其实spring boot拦截器的配置方式和springMVC差不多,只有一些小的改变需要注意下就ok了。本文主要给大家介绍了关于如何在Springboot实现登陆拦截器功能,需要的朋友可以参考下
在项目目录下建立两个包:inter 与contsfig

在inter新建层中实现HandlerInterceptor的继承类

package com.example.gameboxadminserver.inter;
import com.example.gameboxadminserver.entity.User;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class MyInterceptor implements HandlerInterceptor {
//在preHandle方法中进行登录判断
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
//session.setAttribute("adminName","o");
String adminName = (String)session.getAttribute("adminName");//获取储存的session
//System.out.println(adminName);
if(adminName==null){
System.out.println("请先登陆!");
return false;
}
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
//System.out.println("执行了TestInterceptor的postHandle方法");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
在conrsfig中新增WebMvcConfiguer的继承类LoginConfig

实现addInterceptors方法
package com.example.gameboxadminserver.contsfig;
import com.example.gameboxadminserver.inter.MyInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class LoginConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
//注册拦截器
InterceptorRegistration registration = registry.addInterceptor(new MyInterceptor());
registration.addPathPatterns("/**"); //所有路径都被拦截
registration.excludePathPatterns(
//添加不拦截路径
"/admin/adminLogin",
);
}
}
在serviceImpl层
实现登录逻辑并保存session
Httpsession session
session.setAttribute(“name”,value);
package com.example.gameboxadminserver.service.impl;
import com.example.gameboxadminserver.entity.Admin;
import com.example.gameboxadminserver.entity.Result;
import com.example.gameboxadminserver.entity.ResultUtil;
import com.example.gameboxadminserver.mapper.AdminMapper;
import com.example.gameboxadminserver.service.AdminService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* <p>
* 服务实现类
* </p>
*
* @author firstGroup
* @since 2020-10-28
*/
@Service
public class AdminServiceImpl extends ServiceImpl<AdminMapper, Admin> implements AdminService {
@Autowired
AdminMapper adminMapper;
@Override
public Result adminLogin(HttpSession session,String adminName, String adminPwd) {
Admin admin = adminMapper.adminLogin(adminName,adminPwd);
if(admin!=null){
session.setAttribute("adminName",adminName);
return ResultUtil.success("登陆成功!");
}
return ResultUtil.error(2000,"登陆失败");
}
}
这样就写完啦
功能测试
登陆失败

无法访问其他接口

登录成功

成功访问其他接口
到此这篇关于SpringBoot实现登录拦截器的方法详解的文章就介绍到这了,更多相关SpringBoot登录拦截器内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
织梦狗教程
本文标题为:SpringBoot实现登录拦截器的方法详解
基础教程推荐
猜你喜欢
- 工厂方法在Spring框架中的运用 2023-06-23
- Java去掉小数点后面无效0的方案与建议 2023-02-18
- 全局记录Feign的请求和响应日志方式 2023-01-09
- 一文了解Java 线程池的正确使用姿势 2023-06-17
- SpringBoot配置文件中密码属性加密的实现 2023-03-11
- JVM分析之类加载机制详解 2023-04-06
- Project Reactor源码解析publishOn使用示例 2023-04-12
- Java使用EasyExcel进行单元格合并的问题详解 2023-01-18
- Java File类的概述及常用方法使用详解 2023-05-18
- 用java实现扫雷游戏 2022-12-06
