Keycloak - Каков наилучший способ добавить конечную точку, которая использует другой протокол обмена сообщениями (т.е. не HTTP)? - PullRequest
1 голос
/ 27 июня 2019

Мы собираемся использовать Keycloak в качестве системы управления идентификацией.Каков наилучший способ заставить Keycloak использовать собственный протокол обмена сообщениями (это не HTTP)?Я просматриваю раздел «Руководство разработчика сервера Keycloak» о расширении сервера путем добавления пользовательского SPI .Это правильный способ сделать это?

1 Ответ

1 голос
/ 03 июля 2019

Да.Я бы реализовал SPI и соответствующие ProviderFactory и Provider, как вы упомянули.

В прошлом я писал прослушиватель Kafka, который выбирает сообщения из темы, используя эту стратегию SPI, и она работает довольно хорошо.Вам нужно будет сделать следующее, чтобы заставить его работать:

  1. Добавьте ваш класс Spi в META-INF/services/org.keycloak.provider.Spi
  2. Создайте файл с именем вашего ProviderFactory в META-INF/services и добавьте туда класс impl фабрики вашего провайдера
  3. Добавьте jar как модуль в `modules / system / слои / keycloak / com / yourcompany / yourmodule / main
  4. Добавьте module.xmlКонфиг в том же каталоге, что и выше.Вам нужно будет добавить соответствующие зависимости здесь.Поскольку вы реализуете собственный протокол, вам, вероятно, потребуется добавить модуль, содержащий эту библиотеку, и добавить его в качестве зависимости.Например, мне пришлось добавить kafka-clients.jar в качестве отдельного модуля, а затем перечислить его как зависимость в моем настраиваемом поставщике.
  5. Изменить standalone.xml и / или standalone-ha.xml, чтобы добавить поставщика (см.существующий блок <providers> в подсистеме keycloak-server).Keycloak имеет некоторую документацию о том, как это сделать.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...