SpringBoot实现前端请求拦截器
参考文档:https://blog.csdn.net/a14654/article/details/110383829
一、编写自定义拦截器:
package com.example.demo.loginInterceptor; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import org.springframework.web.servlet.HandlerInterceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.Map; public class PermissionInterceptor implements HandlerInterceptor { //controller层之前执行 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //从请求头中获取所需参数 String token = request.getHeader("Authorization"); System.out.println("打印Token = " + token); boolean isHavePermission = (token != null); //返回 true,放行 false,拦截 if (isHavePermission) { System.out.println("权限检查通过::操作放行"); return true; } else { //设置response,手动返回response响应 response.setContentType("application/json;charset=utf-8"); Map<String, Object> error = new HashMap<>(); error.put("code", 70001); error.put("msg", "无访问权限"); error.put("data", "权限检查失败::当前用户没有该权限"); Gson gson = new GsonBuilder().create(); response.getWriter().print(gson.toJson(error)); System.out.println("拦截不通过"); //设置response,手动返回response响应 return false; } } }
二、将编写的自定义拦截器,加入到拦截系统中:
package com.example.demo.loginInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class WebMvcConfig implements WebMvcConfigurer { @Bean public PermissionInterceptor permissionInterceptor() { return new PermissionInterceptor(); } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(permissionInterceptor()) //.excludePathPatterns("/permission/get") //添加拦截路径 /** :拦截所有路径 .addPathPatterns("/**"); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix