创建密钥斗篷用户(春季启动)时,为什么会收到http 409?

时间:2020-09-13 18:43:16

标签: spring spring-boot keycloak keycloak-rest-api

首先,我要为打字错误道歉,在平原上的平板电脑上写东西。

我正在构建一个由Keycloak服务保护的springboot应用程序。 我需要最终用户能够通过前端创建密钥斗篷用户,所以我试图通过密钥斗篷管理员依赖项来构建它。

<dependency>
            <groupId>org.keycloak</groupId>
            <artifactId>keycloak-admin-client</artifactId>
            <version>11.0.2</version>
        </dependency>

我快要完成了,但是遇到了令人讨厌的HTTP 409

    private void createClientRole(String clientRole, Keycloak kc) {
        RoleRepresentation clientRoleRepresentation = new RoleRepresentation();
        clientRoleRepresentation.setName(clientRole);
        clientRoleRepresentation.setClientRole(true);
        kc.realm(this.realm).clients().findByClientId(clientId).forEach(clientRepresentation ->
kc.realm(this.realm).clients().get(clientRepresentation.getId()).roles().create(clientRoleRepresentation)
        );//<== Here
    }

没有进一步的解释,不知道那里发生了什么。有想法吗?

亲切的问候, 罗萨里奥

1 个答案:

答案 0 :(得分:2)

HTTP 409的响应表示冲突:

由于与目标资源的当前状态冲突,无法完成请求。该代码用于用户可能能够解决冲突并重新提交请求的情况。

您应检查Keycloak服务器日志以获取更多详细信息。我打赌那个特定名称的角色已经存在,这是409响应的根本原因。这是一个盲目的猜测-您没有发布任何Keycloak服务器错误日志,因此,如果我在这一点上错了,请不要怪我。