SpringSecurity登陆受权出现This object has not been built问题,调查的过程有点凌乱,足足花了两个小时。
首先是看代码,是不是哪里写错了,是不是某个bean没加载;
没问题,继续断点调试,在AbstractSecurityBuilder类中出现了这个异常的message,
public final O getObject() {
if (!this.building.get()) {
throw new IllegalStateException("This object has not been built");
} else {
return this.object;
}
}
再看message,问题很明显,AuthenticationManager认证管理端需要进行匹配,但是一个类没有创建出来,导致没法用;肯定容器加载时初始化出了问题;
最后找到原因,在springboot启动类上有这样一行代码,删除就好了,在springboot启动的时候排除了Security的自动装配,自然也就找不到对应的类了;
@SpringBootApplication(exclude = { SecurityAutoConfiguration.class})
这个问题被卡了很久,大家如果遇到这个问题,以上内容供参考