当前位置: 首页 > 知识库问答 >
问题:

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

夏长卿
2023-03-14

我想在KeyClope中实现事务功能。我先创建一个用户,然后创建一个角色,并将该角色与该用户关联。我希望所有这些操作都在一个事务中进行。以下是我的代码片段:

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);
    }

共有2个答案

暴绪
2023-03-14

我知道您可以增强keycloak并创建一个新的rest API,当您这样做时,您将可以访问keycloak事务类,并可以在s事务下执行所有操作,至少这是我在搜索时所理解的。

我希望他们在不需要增强代码的情况下公开这个特性。

另一种方法是自己模拟交易。在开始处理请求之前,请创建作业Id,并将其与完成作业所需的信息一起存储。随时更新作业。如果代码失败,您可以恢复所做的更改。即使应用程序在再次启动时停止,您也可以检查作业并找到正在进行的作业,然后决定是否应尝试完成它们或恢复更改。

冀啸
2023-03-14

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

 类似资料:
  • 我使用Spring Batch使用2个(可能更多,为简单起见假设为2个)数据库。一个用于存储所有作业数据(所有BATCH_*表)。另一个用于实际运行我的业务逻辑数据。有些事情我不太明白。 当我声明我的JobRepository时,我已经指定了我的TransactionManager,为什么我必须在我的tasklet上再做一次?(我没有故意使用默认名称) 我目前正在为tasklet提供与我的JobR

  • 我想了解Spring Batch是如何进行事务管理的。这不是一个技术问题,而是一个概念性的问题:Spring Batch使用什么方法?这种方法的后果是什么? 让我试着澄清一下这个问题。例如,在TaskletStep中,我看到步骤执行通常如下所示: 准备步骤元数据的几个JobRepository事务 每一块要处理的业务事务 更多JobRepository事务,用区块处理的结果更新步骤元数据 这似乎是

  • 我需要创建一个并行执行多个操作的应用程序。我曾考虑过使用线程或线程池,但我以前从未使用过,所以我发现这相当困难。Thread应按以下方式工作: 所有系统应同时运行。你认为我应该如何实现这一点?

  • 事务处理(transaction processing) 可以用来维护数据的完整性,保证SQL的操作要么完全执行,要么完全不执行,如果发生错误就进行撤销。 保证数据的完整性。 保证数据不受外影响。 事务处理的几道术语 事务(transaction) 一组SQL语句 退回(rollback)撤销执行SQL语句的过程 提交(commit) 将为执行的SQL语句写入数据库表 保留点(savepoint)

  • 我试图在一个Spring引导应用程序中使用keyCloak管理客户端来改变keyCloak中用户的角色,但是我甚至不能实例化keyCloak。 我正在尝试在这里获取KeyClope服务器,但是我得到了一个实例化错误

  • 本文向大家介绍mysql事务管理操作详解,包括了mysql事务管理操作详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了mysql事务管理操作。分享给大家供大家参考,具体如下: 什么是事务管理 事务管理操作 回滚点 默认的事务管理 首发日期:2018-04-18 什么是事务管理: 可以把一系列要执行的操作称为事务,而事务管理就是管理这些操作要么完全执行,要么完全不执行(很经典的一个例子是