Как расширить и настроить существующий обработчик событий WSO2

#wso2 #wso2is

#wso2 #wso2-identity-server

Вопрос:

Мы пытаемся расширить AdminForcedPasswordResetHandler, чтобы настроить значение generate OTP.

В документации указано, как написать пользовательский обработчик событий (https://is.docs.wso2.com/en/latest/develop/writing-a-custom-event-handler /), расширяя AbstractEventHandler и настраивая новый обработчик событий в файле конфигурации deployment.toml.

Чего мы на самом деле хотим добиться, так это расширить существующий AdminForcedPasswordResetHandler и заменить текущий настроенный AdminForcedPasswordResetHandler на нашу версию, но мы не знаем, что нам нужно написать в deployment.toml, чтобы заменить AdminForcedPasswordResetHandler вместо добавления нового обработчика.

Ответ №1:

Добавьте в deployment.toml файл следующие конфигурации.

  1. Это приведет к удалению всех событий, подписанных обработчиком событий adminForcedPasswordReset по умолчанию. Поэтому обработчик по умолчанию не будет вызываться при запуске событий «PRE_SET_USER_CLAIMS» и «PRE_AUTHENTICATION».
 [identity_mgt.events.schemes.adminForcedPasswordReset]
subscriptions=[]
  
  1. Эта конфигурация предназначена для добавления пользовательского обработчика событий для AdminForcedPasswordReset. Измените имя «customAdminForcedPasswordReset» на любое имя вашего пользовательского обработчика событий. Кроме того, новый дескриптор должен подписываться на события «PRE_SET_USER_CLAIMS» и «PRE_AUTHENTICATION».
 [[event_handler]]
name= "customAdminForcedPasswordReset"
subscriptions=["PRE_SET_USER_CLAIMS","PRE_AUTHENTICATION"]
  

Ответ №2:

Вы можете отключить обработчик по умолчанию и зарегистрировать свой пользовательский обработчик, как показано ниже, в deployment.toml файле. (Я не тестировал это, хотя)

 [[event_handler]]
name= "adminForcedPasswordReset"
subscriptions=["PRE_SET_USER_CLAIMS","PRE_AUTHENTICATION"]
enable=false
[[event_handler]]
name= "customAdminForcedPasswordReset"
subscriptions=["PRE_SET_USER_CLAIMS","PRE_AUTHENTICATION"]
  

Комментарии:

1. В этом случае возникает проблема: добавляется новое пользовательское событие с модулем 21 и не отключается. Он также не заменяет существующее событие по умолчанию модулем 9 # Пользовательская конфигурация события. module.name . 21=adminForcedPasswordReset adminForcedPasswordReset.подписка. 1=PRE_SET_USER_CLAIMS adminForcedPasswordReset.subscription. 2= ПРЕДВАРИТЕЛЬНАЯ ПРОВЕРКА ПОДЛИННОСТИ module.name . 22=пользовательскийadminforcedpasswordreset пользовательскийadminforcedpasswordreset.подписка. 1=PRE_SET_USER_CLAIMS customAdminForcedPasswordReset.subscription. 2= ПРЕДВАРИТЕЛЬНАЯ ПРОВЕРКА ПОДЛИННОСТИ