为什么我在创建keycloak用户(spring Boot )时会得到一个http 409?

xienkqul  于 2023-03-02  发布在  Spring
关注(0)|答案(2)|浏览(139)

首先,我想为我的错别字道歉,在平板电脑上写东西。
我正在构建一个由Keycloak服务保护的springboot应用程序。我需要我的最终用户能够通过我的前端创建一个keycloak用户,所以我尝试通过keycloak管理依赖项构建它

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

我快好了,但是有个讨厌的东西

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
    }

没有进一步的解释,不知道那里发生了什么。你知道吗?
此致罗萨里奥

niknxzdl

niknxzdl1#

HTTP 409响应表示冲突:
由于与目标资源的当前状态冲突,无法完成请求。此代码用于用户可能能够解决冲突并重新提交请求的情况。
你应该检查Keycloak服务器日志以获取更多细节。我敢打赌,具有该特定名称的角色已经存在,这是409响应的根本原因。这是一个盲目的猜测-你没有发布任何Keycloak服务器错误日志,所以如果我在这一点上错了,请不要责怪我。

5cnsuln7

5cnsuln72#

我面临着同样的,在我的情况下,它是与不唯一的用户的电子邮件相关.从keycloak日志:原因是:org. postgresql. util.错误:重复键值违反了唯一约束"uk_dykn684sl8up1crfei6eckhd7"详细信息:键(领域ID,电子邮件约束)=(,)已存在。地址为org.postgresql.jdbc@42.2.5//org.postgresql.core.v3.QueryExecutorImpl.receiveErrorRespon

相关问题