首先,我想为我的错别字道歉,在平板电脑上写东西。
我正在构建一个由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
}
没有进一步的解释,不知道那里发生了什么。你知道吗?
此致罗萨里奥
2条答案
按热度按时间niknxzdl1#
HTTP 409
响应表示冲突:由于与目标资源的当前状态冲突,无法完成请求。此代码用于用户可能能够解决冲突并重新提交请求的情况。
你应该检查Keycloak服务器日志以获取更多细节。我敢打赌,具有该特定名称的角色已经存在,这是409响应的根本原因。这是一个盲目的猜测-你没有发布任何Keycloak服务器错误日志,所以如果我在这一点上错了,请不要责怪我。
5cnsuln72#
我面临着同样的,在我的情况下,它是与不唯一的用户的电子邮件相关.从keycloak日志:原因是:org. postgresql. util.错误:重复键值违反了唯一约束"uk_dykn684sl8up1crfei6eckhd7"详细信息:键(领域ID,电子邮件约束)=(,)已存在。地址为org.postgresql.jdbc@42.2.5//org.postgresql.core.v3.QueryExecutorImpl.receiveErrorRespon