Пользовательская тема электронной почты 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