由于客户密码错误导致无法访问密钥泄露

时间:2018-04-04 16:21:45

标签: java keycloak bad-request

我需要一个Java Keycloak(2.3)连接来返回令牌,但是我早就遇到了问题。当在Postman中请求我的Keycloak实例时,我在特定控制台中遇到以下错误。

This是我的代码基于Keycloak的示例。

Keycloak:

17:54:47,586 WARN  [org.keycloak.events] (default task-25) type=LOGIN_ERROR, realmId=master, clientId=admin-cli, userId=null, ipAddress=127.0.0.1, error=invalid_client_credentials, grant_type=password

Wildfly:

17:55:14,310 ERROR [stderr] (default task-48) javax.ws.rs.BadRequestException: HTTP 400 Bad Request

爪哇:

Keycloak keycloak = Keycloak.getInstance(
           KEYCLOAK_TOKEN_RESOURCE_URI,
           REALM,
           KEYCLOAK_USERNAME,
           KEYCLOAK_PASSWORD,
            KEYCLOAK_CLIENT);
    RealmRepresentation realm = keycloak.realm(REALM).toRepresentation();

2 个答案:

答案 0 :(得分:0)

Keycloak keycloak = KeycloakBuilder.builder().serverUrl(KEYCLOAK_TOKEN_RESOURCE_URI).realm(REALM)
            .username(KEYCLOAK_USERNAME).password(KEYCLOAK_PASSWORD).clientId(KEYCLOAK_CLIENT)
            .clientSecret("input-here-your-client-secret").build();

也许这应该有效,因为Keycloak 2.3.Final在Keycloak.getInstance(...)方法上有一个Bug。

答案 1 :(得分:0)

我能够通过将我的java代码更改为以下

来解决此问题
Keycloak keycloak = KeycloakBuilder.builder()
.serverUrl(KEYCLOAK_TOKEN_RESOURCE_URI)
.realm(REALM)
.username(KEYCLOAK_USERNAME)
.password(KEYCLOAK_PASSWORD)
.clientId(KEYCLOAK_CLIENT)
.clientSecret(CLIENT_SECRET)
.build();