接口配置拦截器
根据配置的接口拦截对应的接口(addPathPatterns),过滤拦截接口(excludePathPatterns)
拦截接口配置
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import javax.annotation.Resource;
/***
* 拦截器配置
* @author 陈植斌
* @date 2022/10/20 11:27
*/
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Resource
ControlInterceptor interceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 添加拦截器,配置拦截地址
//1.游客可以进入查看游戏
//2.play进入接口再验证合法性
//3.第3方回调不在过滤器验证合法性,前端发起支付请求时也不需要过滤验证
// addPathPatterns 拦截接口
// excludePathPatterns 过滤接口
registry.addInterceptor(interceptor)
.addPathPatterns("/HelloWord/**", "/sdkLogin/token")
.excludePathPatterns("/error/**", "/HelloWord/getUrl");
}
}
拦截逻辑处理
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/***
* 拦截器操作类
* 拦截下来后进行操作
*
* @author 陈植斌
* @date 2022/10/20 12:04
*/
@Component
public class ControlInterceptor implements HandlerInterceptor {
private final Logger logger = LoggerFactory.getLogger(ControlInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) throws Exception {
logger.info("进入拦截器");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object object, ModelAndView modelAndView){
System.out.println("postHandle");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object object, Exception exception){
System.out.println("afterCompletion");
}
}