首页 > 解决方案 > 如何解决keycloak中类加载器不可见的接口

问题描述

使用 keycloak 管理客户端依赖项从 keycloak 获取组,该依赖项在module.xml. 但是出现错误,例如

java.lang.IllegalArgumentException:接口 org.keycloak.admin.client.resource.RealmsResource 在类加载器中不可见

我正在处理事件监听器 sysout 项目

Keycloak keycloak = Keycloak.getInstance("http://localhost:8080/auth", "nodesjs-example", "admin-cli", token);
            List<GroupRepresentation> groupRepresentation2= keycloak.realm("nodejs-example").groups().groups();
            System.out.println(groupRepresentation2);

在此处输入图像描述

标签: javakeycloak

解决方案


现在我知道你在做什么了。不需要管理员客户端,您可以从 KeycloakSession 中获取(在EventListenerProviderFactory创建中可用)

@Override
    public EventListenerProvider create(KeycloakSession session) {
        return new SysoutEventListenerProvider(excludedEvents, excludedAdminOperations,session);
    }

然后在您的 EventListenerProvider 中,您可以获得组。

RealmModel realm = session.getContext().getRealm();
 List<GroupModel> groups = realm.getGroups();

推荐阅读