У меня есть микросервис, который поддерживает аутентификацию HttpBasic для двух пользователей, пользователь и admin , с различными полномочиями.Теперь у меня есть веб-приложение, запрашивающее логин и делегирующее операции первому микросервису.
Я использую @LoadBalanced
и RestTemplateBuilder
таким образом
@LoadBalanced
@Bean
RestTemplate restTemplate(RestTemplateBuilder builder) {
return builder.basicAuthorization("x", "x").build();
}
, чтобы получитьавторизованный / сбалансированный по нагрузке RestTemplate
для доступа к моему микросервису, но этот дизайн подразумевает, что учетные данные всегда будут x - x , независимо от того, что пользователь и пароль используются для входа в веб-приложение.
Я знаю, что мог бы использовать что-то вроде этого
@Autowired
private RestTemplateBuilder restTemplateBuilder;
public String callSecureService() {
// ... get principal and password
RestTemplate restTemplate = restTemplateBuilder.basicAuthorization([user], [password]).build();
return restTemplate.getForObject("http://localhost:8080/secureAPI",String.class);
}
для вызова микросервиса с учетными данными, используемыми для входа в веб-приложение, ноэто означает потерю возможностей балансировки нагрузки ленты, я думаю.
Итак, мой вопрос, есть ли способ получить обе ловушки (балансировка нагрузки и динамическая аутентификация)?Или я что-то не так понимаю, и дизайн не должен быть таким?
(пример кода взят с javadeveloperzone.com 1 )