天坑 找了一下午才找到原因 记录一下
debug跟踪 发现setAuthentication(result)的时候 都是正常的 ,principal为实体对象 ,但是get的时候就变成字符串了
项目背景:springcloud项目 有多模块,在B模块中 引入了A模块(因为需要用到A模块的某个Component)
操作:B模块application中需要指定 ComponentScan (不指定默认只扫描本包 及B模块包下Component),
为了省事,直接指定了
@ComponentScan("com.xx.*")
这样就把xx项目所有Component都扫描了,
当改成正确扫描后 getPrincipal()成功获取到了实体对象
@ComponentScan({
"com.xx.A.*","com.xx.B.*"})