WSO2 - IS - отправка настраиваемого шаблона электронной почты с сервера идентификации с помощью настраиваемого обработчика событий

Я пробовал использовать подход, предложенный в блоге ниже

https://is.docs.wso2.com/en/latest/develop/writing-a-custom-event-handler/

У меня есть требование отправлять настраиваемый шаблон электронной почты при изменении роли пользователя на сервере идентификации. Каким-то образом я выяснил событие, когда мы меняем роль. Но у меня нет возможности отправить письмо из настраиваемого обработчика событий. Я хотел бы знать, есть ли другой способ добиться этого? заранее спасибо

1 ответ

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

Это примерный сегмент кода.

              String eventName = IdentityEventConstants.Event.TRIGGER_NOTIFICATION;

        HashMap<String, Object> properties = new HashMap<>();
        properties.put(IdentityEventConstants.EventProperty.USER_NAME, user.getUserName());
        properties.put(IdentityEventConstants.EventProperty.TENANT_DOMAIN, user.getTenantDomain());
        properties.put(IdentityEventConstants.EventProperty.USER_STORE_DOMAIN, user.getUserStoreDomain());
        properties.put("OLD_ROLE", oldRole);
        properties.put("NEW_ROLE", newRole);
        properties.put("TEMPLATE_TYPE", templateId);

        Event identityMgtEvent = new Event(eventName, properties);
        try {
            NotificationFunctionServiceHolder.getInstance().getIdentityEventService().handleEvent(identityMgtEvent);
        } catch (IdentityEventException | NotificationRuntimeException e) {
            LOG.error(String.format("Error when sending notification of template %s to user %s", templateId, user
                    .toFullQualifiedUsername()), e);
            
        }
        

Здесь нужно заменить user, oldRole, newRoleи . В управлении шаблонами вам необходимо создать новый шаблон электронной почты с этим templateId и там вы можете создать письмо с помощью этих заполнителей ( OLD_ROLE, NEW_ROLE, для других заполнителей вы можете обратиться к существующим шаблонам.).

Вы можете найти реализацию обработчика событий TRIGGER_NOTIFICATION здесь для любой справки об этом.

Другие вопросы по тегам