问题描述
项目发布时候,权限校验发生了问题,登录接口报错‘用户未授权’,其实就是登录接口也被拦截器拦掉了,本地是没有问题的,估计是代理的问题,查看服务器日志如下:

org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL contained a potentially malicious String "//",
其实本质上就是多了个反斜线,查看代理配置,最终发现反向代理的时候,多了个'/'。
把这个去掉就OK了。
另一种解决方法
其实看错误日志,是spring security firewall 就是防火墙配置的问题,可以重写Bean,让他支持这个双反斜线配置。
配置如下
@Bean
public HttpFirewall allowDoubleSlashHttpFirewall() {
StrictHttpFirewall firewall = new StrictHttpFirewall();
// 允许双//
firewall.setAllowUrlEncodedDoubleSlash(true);
return firewall;
}
以上问题解决。