security getAuthentication().getPrincipal()只能获取用户名

天坑 找了一下午才找到原因 记录一下

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.*"})

Guess you like

Origin blog.csdn.net/qq_36268103/article/details/118465380