Мы создали расширение Keycloak (в основном это дополнительный Authenticator ) и пытаемся упаковать его как jar архив, чтобы мы могли развернуть его без копирования шаблонов и редактирования.properties
files.
Аутентификатор использует настраиваемую форму, которую мы поместили в каталог theme-resources/templates
, как описано в Theme Resources , - и он прекрасно работает.Однако мы не можем поместить сообщения в место, где они были получены.Вместо сообщения отображается ключ сообщения.Если мы помещаем сообщения непосредственно в keycloak-6.0.1/themes/base/login
(а не в наш архив), это работает.
Это влияет на два места:
Локализованные сообщения в пользовательской форме (company.auth.title
в приведенном ниже шаблоне Freemarker)
<#import "template.ftl" as layout>
<@layout.registrationLayout; section>
<#if section = "header">
${msg("company.auth.title")}
<#elseif section = "form">
...
Сообщение об ошибке в аутентификаторе (company.auth.invalid-code
)
Response challenge = context.form()
.setError("company.auth.invalid-code")
.createForm("company-auth-challenge.ftl");
context.failureChallenge(AuthenticationFlowError.INVALID_CREDENTIALS, challenge);
Документация указывает на то, чтолокализованные файлы сообщений должны идти в theme-resources/resources
, но это не работает.
Так, где мы должны поместить файлы сообщений (например, messages_en.properties
) в наш архив jar, чтобы они были подобраны Keycloak?