由于客户端密码错误,无法访问 keycloak

Can´t access keycloak due to wrong client password

我需要 Java Keycloak(2.3) 连接到 return 令牌,但是我 运行 很早就遇到了问题。 POST-在 Postman 中请求我的 Keycloak 实例时,我在特定控制台中收到以下错误。

This 是我的代码基于 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

野蝇:

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

Java:

Keycloak keycloak = Keycloak.getInstance(
           KEYCLOAK_TOKEN_RESOURCE_URI,
           REALM,
           KEYCLOAK_USERNAME,
           KEYCLOAK_PASSWORD,
            KEYCLOAK_CLIENT);
    RealmRepresentation realm = keycloak.realm(REALM).toRepresentation();
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。

我可以通过将 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();