springboot 2.x自定义拦截器实现

it2024-07-13  45

spring2X*

拦截器实现

HandlerInterceptor接口,下面是我自定义的接口

public class RequestFilter implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String appCode; //情况1 包含accessToken,解析出appCode,优先级高 String accessTokenStr = request.getParameter("accessToken"); appCode = this.decryptAppCode(accessTokenStr); if (StringUtils.isEmpty(appCode)) { //在accessToken中未获取导appCode,采用情况2 从请求头中获取 String client = request.getHeader("client"); appCode = StringUtils.acquireAppCode(client); } //存入共享线程变量中 ShareThread.threadLocal.set(appCode); return true; } }

第二步 注册自定义拦截器

创建注册类------实现WebMvcConfig接口----------重写addInterceptors方法,我的代码如下

/** * 注册拦截器 * * @author qiaofeng */ @Configuration public class RegisterInterceptor implements WebMvcConfigurer { @Bean public RequestFilter requestFilterBean(){ return new RequestFilter(); } //注册request请求拦截器 @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new RequestFilter()).addPathPatterns("/**"); } }

注意

registry.addInterceptor(new RequestFilter()).addPathPatterns("/**"); 后面的/**表示所有请求都拦截

最新回复(0)