1.此处使用的ResourceServerConfigurerAdapter是spring-security-oauth2中的,WebSecurityConfigurerAdapter是spring-security-config中的;
2.同时使用上面的两种配置的时候,如果两者配种存在重写相同的方法时,后者的会出现配置不生效的问题,比如重写了configure这个方法(参数final不影响)
3.造成这个问题的主要原因其实就是因为两者的默认自动注册的@Order的优先级不同(具体情况请自行参考源码),前者的order默认值是比后者的order默认值小,@Order(数字),数字值越小,优先级越高,然后相同的方法只使用优先级高的,也就是order的值低的按个,然后order高的就会不生效,这也就是为啥同时使用资源服务配置与安全配置的时候,且不手动指定@Order注解的值的时候,后者的配置不生效。
4.解决的方式其实也不难,我们只需要手动设置下Order的值的大小,也就是加上@Order的注解,参见
这样,WebSecurityConfig中的configure就会执行,而ResourceServerConfig中的configure不生效。当然,其他的一些重写方法也是可以在两者中都会生效,具体的请自行尝试即可。