以下问题:我在Spring Boot项目中使用Javers,并希望提取提交作者名称。
snapshots.get(0).getCommitMetadata().getAuthor()
的值仅提供类似TokenPayload@254d2bf
的内容。
第一个想法是设置AuthorProvider Bean
@Bean
public AuthorProvider authorProvider() {
return new SpringSecurityAuthorProvider();
}
但是没有帮助。没有使用额外的配置,只有默认配置。预先谢谢你。
Javers Version: 5.8.9
Spring Boot Version: 1.5.8
您需要提供严格的AuthorProvider
bean,它与Spring Security设置一起使用。 Javers提供的SpringSecurityAuthorProvider
只是默认实现。
/**
* Returns a current user name from Spring Security context
*/
public class SpringSecurityAuthorProvider implements AuthorProvider {
@Override
public String provide() {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
if (auth == null) {
return "unauthenticated";
}
return auth.getName();
}
}