微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何使用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 中拥有一些用户而不是在您的本地数据库中,则这种方法是有风险的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。