我有一个Web应用程序,该Web应用程序也具有一个REST API。该应用程序在Wildfly服务器上运行,并通过Keycloak(通过Wildfly Keycloak adpater)受保护。当我通过浏览器使用api时,它可以工作。但是我有一个在后台运行的服务应用程序。因此,我尝试为此应用程序使用基本身份验证。我的keycloak.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();
但是,即使提供了用户名/密码,客户端也会重定向到登录页面。
有任何提示吗?