Пользовательская тема электронной почты Keycloak не работает

Для сброса пароля ссылка keycloak по умолчанию показывает время истечения срока действия ссылки в минутах, но мы хотим показать это в часах.

Для этого мы внесли изменения в тему электронной почты keycloak.ftl file (password-reset.ftl). Эти изменения работают нормально, если мы делаем это в базовой теме электронной почты keycloak (/opt/keycloak/themes/base/email). Но эти изменения отменяются после развертывания / обновления Keycloak.

Чтобы избежать этого, мы переместили эту тему в папку пользовательских тем (/ opt / keycloak / themes / mytheme / email) и выбрали собственную тему электронной почты для электронной почты из конфигурации темы области администрирования keycloak, но, тем не менее, клавиатура не использует настраиваемую тему для электронной почты.,

Файл: themes/mytheme/email/html/password-reset.ftl

код, который отображает время в часах вместо минут:

<html>
  <body>
     ${msg("passwordResetBodyHtml",link, (linkExpiration/60)?string["0"], realmName)?no_esc}
  </body>
</html>

Выбранный mytheme для письма от скриншота конфигурации конфигурации области keycloak здесь

1 ответ

Чтобы отформатировать время по минутам, часам, дням, лучше всего передать linkExpirationFormatter(linkExpiration)в функцию msg и добавьте перевод единиц времени в файл messages_xx.properties, например:

      linkExpirationFormatter.timePeriodUnit.seconds=seconds
linkExpirationFormatter.timePeriodUnit.seconds.1=second
linkExpirationFormatter.timePeriodUnit.minutes=minutes
linkExpirationFormatter.timePeriodUnit.minutes.1=minute
linkExpirationFormatter.timePeriodUnit.hours=hours
linkExpirationFormatter.timePeriodUnit.hours.1=hour
linkExpirationFormatter.timePeriodUnit.days=days
linkExpirationFormatter.timePeriodUnit.days.1=day
Другие вопросы по тегам