Допустим, в моем приложении есть несколько классов @RestController.
Я получаю один конкретный параметр из контекста OAuth2Authentication.Пример запроса выглядит следующим образом:
@RequestMapping("/contractor")
public Contractor contractor(OAuth2Authentication authentication) {
String email = String.valueOf(((LinkedHashMap<String, Object>) authentication.getUserAuthentication().getDetails()).get("email"));
return contractorRepository.findByEmail(email);
}
Он работает как шарм, но есть одна проблема.Существует множество конечных точек, основанных на объекте OAuth2Authentication
, точнее - на строке электронной почты от
String.valueOf(((LinkedHashMap<String, Object>) authentication.getUserAuthentication().getDetails()).get("email"));
Я не очень хорошо понимаю Spring Security или OAuth2, но есть ли способ как-тоautowire this OAuth2Authentication
и удерживайте String email
как поле в контроллерах Rest, или удерживайте его в отдельном классе и вставляйте его в контроллеры?