安全问题需求:要求所有接口都要校验token(此token是另一系统的token,所以接口是在权限框架的白名单里的,需要额外校验)
解决方法:写一个全局的拦截校验
1.第一步 写一个拦截器
public class TokenInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception
{
System.err.println("进入全局拦截器,路径为:"+request.getRequestURI());
// 验证登录token 这里是调用的工具类,在工具类中校验过token令牌了。此处返回true则继续调用方法,反之终止方法
UserInfo userInfo = TokenUtil.getUserInfo(request, response);
if(userInfo==null){
return false;
}
return true;
}
}
2.第二步 注册拦截器,使之生效
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override //拦截器配置
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new TokenInterceptor()) //拦截器注册对象
.addPathPatterns("/special/**","/report/**"); //指定要拦截的请求
}
}
3.效果如下图,ending