Неизвестный механизм аутентификации Keycloak

Мне нужна помощь с использованием keycloak в приложении Errai. Я получаю сообщение об ошибке "Неизвестный метод аутентификации" для "KEYCLOAK"? У меня работает keycloak-appliance (на другом порту), а приложение Errai имеет KEYCLOAK в файле web.xml внутри WEB-INF Когда я запускаю приложение Errai с mvn gwt: run, я получаю: RuntimeException, вызванное "Неизвестным механизмом аутентификации KEYCLOAK". Я не знаю, как обойти эту проблему.

Ответ 1

Вам нужно будет установить и настроить адаптер Wildfly, чтобы ваше приложение Errai распознало метод аутентификации "KEYCLOAK". См. Раздел 7.2 Документация Keycloak.

Ответ 2

Просто хотел добавить немного больше подробностей в ответ @cfsnyder. Чтобы ваш сервер приложений распознал определение в файле web.xml, это выглядит следующим образом:

<login-config>
    <auth-method>KEYCLOAK</auth-method>
    <realm-name>internal</realm-name>
</login-config>

вам нужно указать jboss (в этом случае), как интерпретировать этот конкретный метод auth. Во время моего ответа это находится в разделе в разделе 8.2 документов Keycloak.

Во-первых, загрузите адаптер keycloak (помните, что это не то же самое, что и Keycloak Server). Затем распакуйте загрузку в домашний каталог wildfly. При запуске вашего сервера приложений используйте следующую команду, чтобы установить конфигурацию Keycloak в соответствующие файлы:

jboss-cli.sh -c --file=adapter-install.cli

Когда этот script завершается, ваш файл конфигурации будет иметь новую запись, добавленную для размещения записи KEYCLOAK в вашем web.xml. script добавит что-то подобное к domain.xml или standalone.xml:

            <security-domain name="keycloak">
                <authentication>
                    <login-module code="org.keycloak.adapters.jboss.KeycloakLoginModule" flag="required"/>
                </authentication>
            </security-domain>

После того, как у вас есть файлы модуля Keycloak, предоставленные адаптером +, конфигурацию домена безопасности, чтобы связать метод KEYCLOAK с соответствующим LoginModule, вы должны быть установлены.