首先,我要为打字错误道歉,在平原上的平板电脑上写东西。
我正在构建一个由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
}
没有进一步的解释,不知道那里发生了什么。有想法吗?
亲切的问候, 罗萨里奥
答案 0 :(得分:2)
HTTP 409
的响应表示冲突:
由于与目标资源的当前状态冲突,无法完成请求。该代码用于用户可能能够解决冲突并重新提交请求的情况。
您应检查Keycloak服务器日志以获取更多详细信息。我打赌那个特定名称的角色已经存在,这是409响应的根本原因。这是一个盲目的猜测-您没有发布任何Keycloak服务器错误日志,因此,如果我在这一点上错了,请不要怪我。