今天项目中使用了spring-boot-devtools,导致判断当前用户类型的时候始终为fasle,代码如下:
Authentication authentication = getAuthentication();
if (authentication == null) {
return null;
}
Object principal = authentication.getPrincipal();
if (principal instanceof Assistant) {
return (Assistant) principal;
}
return null;
principal instanceof Assistant始终为fasle,这中间有点疑惑的地方就是,我也没有修改代码,触发spring-boot-devtools的重启,为什么会导致这里类型不一样。打印了principal的ClassLoader,发现和其他类不是同一个ClassLoader,至于为什么有待深究。记录一下