У меня есть веб-приложение, в котором также есть API для отдыха. Приложение работает на сервере Wildfly и защищено через Keycloak (через adpater Wildfly Keycloak). Когда я использую API через браузер, он работает. Но у меня есть сервисное приложение, которое работает в фоновом режиме. Поэтому я попытался использовать basi c auth для этого приложения. Мой брелок. json выглядит следующим образом:
"realm": "myrealm",
"auth-server-url": "https://myserver/auth/",
"ssl-required": "all",
"resource": "myclient",
"verify-token-audience": true,
"enable-basic-auth" : true,
"public-client" : false,
"credentials": {
"secret": "secret"
},
"use-resource-role-mappings": true,
"confidential-port": 443
}
Сервисное приложение использует библиотеку Apache httpClient для остальных вызовов и настраивается следующим образом:
CredentialsProvider provider = new BasicCredentialsProvider();
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("username", "secret");
provider.setCredentials(AuthScope.ANY, credentials);
httpClient = HttpClientBuilder.create()
.setDefaultCredentialsProvider(provider)
.build();
Но клиент перенаправляется на страницу входа, хотя имя пользователя / пароль предоставлены.
Есть подсказки?