Keycloak-添加使用不同消息协议(即非HTTP)的端点的最佳方法是什么?

时间:2019-06-27 18:17:09

标签: keycloak

我们正在寻求将Keycloak用作身份管理系统。使Keycloak使用自定义消息传递协议(不是HTTP)的最佳方法是什么?我正在查看有关extending the server by adding a custom SPI的《 Keycloak服务器开发人员指南》部分。这是正确的方法吗?

1 个答案:

答案 0 :(得分:1)

是的。正如您所提到的,我将实现SPI以及相应的ProviderFactory和Provider。

过去,我编写了一个Kafka侦听器,该侦听器使用此SPI策略从主题中提取消息,并且效果很好。您需要执行以下操作才能使其正常工作:

  1. 将您的Spi类添加到META-INF/services/org.keycloak.provider.Spi
  2. ProviderFactory中以您的META-INF/services的名称创建文件,并在其中添加您的提供者工厂impl类
  3. 将jar作为模块添加到`modules / system / layers / keycloak / com / yourcompany / yourmodule / main
  4. 在与上述相同的目录中添加module.xml配置。您需要在此处适当地添加依赖项。由于要实现自定义协议,因此可能需要添加一个包含该库的模块,并将其添加为依赖项。例如,我必须将kafka-clients.jar添加为单独的模块,然后在我的自定义提供程序中将其列为依赖项。
  5. 修改standalone.xml和/或standalone-ha.xml以添加提供程序(请参阅keycloak-server子系统下现有的<providers>块)。 Keycloak上有一些有关如何执行此操作的文档。