如何使用java keycloak管理库处理keycloak中多个操作之间的事务

问题描述

我想在keycloak中实现交易功能。 我先创建一个用户,然后创建一个角色,并将角色与用户相关联。我希望所有这些操作都在一次交易中。 这是我的代码段:

Keycloak keyClk = getKeyCloakInstance();
    UserRepresentation userRepresentation = new UserRepresentation();
    userRepresentation.setEnabled(user.getStatus());
    userRepresentation.setUsername(user.getUserId() != null ? user.getUserId() : "");
    userRepresentation.setEmail(user.getEmail());

    RealmResource realmResource = keyClk.realm(KeyCloakUtil.realmName);
    UsersResource usersRessource = realmResource.users();
    Response response = usersRessource.create(userRepresentation);
    List<Role> roleList = user.getRoles();
    if (!roleList.isEmpty() || roleList != null) {
        createUserRoleList(user.getUserId(),roleList,KeyCloakUtil.clientId,KeyCloakConstant.ACTION_ADD);
    }

任何帮助将不胜感激。

解决方法

我不确定 keycloak 是否能够以事务方式处理该任务。我所做的是在 keycloak 中创建用户后,我会将创建的用户的引用保存在数据库中。如果您的工作流程出现问题,并且可能您最终在 keycloak 中拥有一些用户而不是在您的本地数据库中,则这种方法是有风险的。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...