Я создал загрузочное приложение Spring со следующей конфигурацией:
- Spring boot 2.1.0.RELEASE
- OpenJdk 11
В моем проекте есть класс AuditConfiguration
, который выглядит следующим образом:
@Configuration
@EnableJpaAuditing(auditorAwareRef = "auditorProvider")
public class AuditConfiguration {
@Bean
public AuditorAware<String> auditorProvider() {
return new AuditorAwareImpl();
}
class AuditorAwareImpl implements AuditorAware<String> {
@Override
public Optional<String> getCurrentAuditor() {
Principal principal =
SecurityContextHolder.getContext().getAuthentication();
return Optional.of(principal.getName());
}
}
}
и SecurityContextHolder.getContext().getAuthentication()
всегда возвращают anonymousUser
.
Однако следующий код возвращает правильное имя пользователя.
@RestController
@RequestMapping("/history")
public class HistoryEndpoint {
@RequestMapping(value = "/username", method = RequestMethod.GET)
@ResponseBody
public String currentUserName(Principal principal) {
return principal.getName();
}
}
Мне нужна ваша помощь для решения этой проблемы.