1 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
該方法auditAware()僅在啟動(dòng)時(shí)執(zhí)行一次。此時(shí),沒(méi)有當(dāng)前用戶。所以你總是回來(lái)
() -> Optional.of("system")
而這個(gè) AuditorAware 實(shí)例,無(wú)論何時(shí)被調(diào)用,都會(huì)因此總是返回
Optional.of("system")
您想要的是一個(gè) AuditAware,無(wú)論何時(shí)調(diào)用它,都會(huì)測(cè)試當(dāng)前用戶是誰(shuí),并確定它應(yīng)該返回什么。所以應(yīng)該是
@Bean
public AuditorAware<String> auditAware(){
return () -> {
if (SecurityContextHolder.getContext() == null || SecurityContextHolder.getContext.getAuthentication() == null) {
return Optional.of("system");
} else {
return Optional.of(SecurityContextHolder.getContext().getAuthentication().getName());
}
}
}
添加回答
舉報(bào)