springboot 配置自定义拦截器
自定义AuthcInterceptor拦截器类
@Component @Order(value = 1) public class AuthcInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //Authenticate 认证 //Authorization 鉴权 if (!(handler instanceof HandlerMethod)) return true; //存在NoNeedLogin注解 就不做登录认证了 NoNeedLogin自定义的注解 首先登录接口就需要添加上该注解 if (((HandlerMethod) handler).getMethodAnnotation(NoNeedLogin.class) != null) return true; String token = request.getHeader("authenticate");
//这里根据请求头的信息判断用户是否登录状态 不是登录状态的话 返回401状态 并抛出异常 NoLoginException 是自定义状态类
//需要配置全局拦截类检测到该异常信息就返回必要信息给客户端,告知客户端未登录需要登录 response.setStatus(401);
throw new NoLoginException();
//这里直接返回true就可以,因为没有登录状态我们也需要返回一些信息 return true; } }
自定义配置类 实现 WebMvcConfigurer 类
@Configuration public class MvcConfig implements WebMvcConfigurer { @Autowired private AuthcInterceptor loginInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { List<String> excludePathPatterns = new ArrayList<>(); excludePathPatterns.add("/error"); //排除拦截swagger-api接口 excludePathPatterns.add("/swagger-resources/**"); //登录的接口在这里排除 或者 拦截器注解处理 registry.addInterceptor(loginInterceptor).addPathPatterns("/**") .excludePathPatterns(excludePathPatterns); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //处理静态文件拦截问题 registry.addResourceHandler("/**").addResourceLocations("classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"); registry.addResourceHandler("/wabjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); } }
分类:
spring
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!