1.创建一个filter
package com.ruoyi.weixin.user.interator; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.weixin.user.domain.vo.UserWeixinInfo; import com.ruoyi.weixin.user.service.impl.WxTokenService; import org.springframework.beans.factory.annotation.Autowired; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; public class MyWeiXinInterceptor implements Filter { @Autowired private WxTokenService wxtokenService; @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { UserWeixinInfo info = wxtokenService.getUserWeixinInfo((HttpServletRequest)request); if (StringUtils.isNotNull(info) && StringUtils.isNull(SecurityUtils.getAuthentication())) { wxtokenService.verifyToken(info); chain.doFilter(request, response); } return; } @Override public void destroy() { } }
2.配置filter
package com.ruoyi.weixin.user.config; import com.ruoyi.common.filter.RepeatableFilter; import com.ruoyi.weixin.user.interator.MyWeiXinInterceptor; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class WeiXinFilterConfig { @SuppressWarnings({ "rawtypes", "unchecked" }) @Bean public FilterRegistrationBean weixinUrlFilterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(new MyWeiXinInterceptor()); //要添加的拦截器 registration.addUrlPatterns("/**/lvju/*"); //拦截路径 registration.setName("weixinUrlFilter"); //设置拦截器名称 registration.setOrder(FilterRegistrationBean.LOWEST_PRECEDENCE); //排序 return registration; }
//如果要添加多个拦截器,把上面的方法改一下就行
@SuppressWarnings({ "rawtypes", "unchecked" })
@Bean
public FilterRegistrationBean2 weixinUrlFilterRegistration()
{
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new MyWeiXinInterceptor2()); //要添加的拦截器
registration.addUrlPatterns("/**/lvju/*"); //拦截路径
registration.setName("weixinUrlFilter2"); //设置拦截器名称
registration.setOrder(FilterRegistrationBean.LOWEST_PRECEDENCE); //排序
return registration;
}
}