我们有一个用例,当用户在 Keycloak 中创建新领域(例如:“realmNew”)时,需要将现有领域中的一些配置和资源(例如:“realmOld”中的所有角色)复制到新领域中创建领域。
我做了一些研究,发现 Keycloak 提供了 SPI 来实现监听特定事件并执行操作的插件。
就我而言,事件将是领域创建。当我尝试在插件中实现接口EventListenerProvider
时,我在这个接口中找到了方法:
void onEvent(AdminEvent event, boolean includeRepresentation);
输入是 AdminEvent
类。因此,这意味着侦听器无法访问 keycloak 的任何内部资源(例如:领域、角色、用户...)
在这种情况下,基于 Keycloak SPI 的侦听器插件似乎不适用于我的设计。我应该找到另一种方法。
有谁知道我的理解是否正确?或者有什么建议?
答案 0 :(得分:0)
按照某人的建议,我做了一些调查。我可以在方法中看到每个 Provider 类都有一个对应的 ProviderFactory 类/接口:
ViewBag.term = termDetail.ToExpando();
KeycloakSession 的一个实例在运行时可用。所以session对象可以用来获取大量的内部资源,这使得我打算做的操作是可行的。