Я использую JHipster UAA и добавил идентификатор пользователя в качестве заявки к сгенерированному JWT.
Мои другие микросервисы зависят от чтения этой заявки для правильной работы.Как я могу создать макет вошедшего в систему пользователя для тестирования моих контроллеров REST?
В контроллере микросервиса бизнес-логики я использую следующий служебный метод:
public static Optional<Long> getCurrentUserIdClaim() {
SecurityContext securityContext = SecurityContextHolder.getContext();
return Optional.ofNullable(securityContext.getAuthentication())
.map(authentication -> {
Object details = authentication.getDetails();
if (details instanceof OAuth2AuthenticationDetails) {
Object decodedDetails = ((OAuth2AuthenticationDetails) details).getDecodedDetails();
if (decodedDetails instanceof Map) {
return Long.parseLong(((Map) decodedDetails).get("user_id").toString());
}
}
return null;
});
}