六十八、SpringBoot的Filter优先级

版权声明:转载请注明:https://blog.csdn.net/u010285974 https://blog.csdn.net/u010285974/article/details/88552475

最近接入第三方账号登录和跨域问题时遇到个大坑,浪费本人半天时间。

刚开始我是这样接入的:

1、新创建一个CommonFilter类继承Filter,加注解设置order为1作为过滤器解决跨域

2、在SpringBoot的启动类里创建返回值为FilterRegistrationBean的Bean作为登录校验过滤器

前端请求被拦截的接口发现会出现401问题(说明确实检测到未授权),但是response里没有数据,其实问题就出现在过滤器的注册顺序上,导致先走了过滤器2再走过滤器1,又出现了跨域问题。

猜测:

SpringBoot加载过滤器是先依次加载main函数下注册的,再依次扫描注解,Order可能有用但是也可能没用。

然后我是这样解决的:

把1中的CommonFilter移到SpringBoot启动类里,设置注解Order值为1,设置2中的注解Order值为2。就保证了先走过滤器1再走过滤器2,就不会出现跨域问题了。

猜你喜欢

转载自blog.csdn.net/u010285974/article/details/88552475