Как лучше всего изменить ссылку «OpenID Connect» на странице входа в систему Liferay?

#liferay #liferay-7

Вопрос:

Мы добавили несколько социальных логинов на наш портал Liferay 7.3. Facebook и OpenID Connect, а также настраиваемые фильтры для Twitter, LinkedIn и так далее.К ним относятся встроенные функции Facebook и OpenID Connect, а также пользовательские фильтры для Twitter, LinkedIn и так далее. OpenID Connect настроен для входа в систему Google.

Все это работает нормально, но мне нужно изменить ссылку на странице входа в систему с «OpenID Connect» на «Google».

Я обнаружил, что значение задано в ключе open-id-connect-имя конфигурации в языковых файлах в модуле portal-security-sso-openid-connect-api. Затем к нему обращается метод getName() com.liferay.portal.settings.authentication.openid.connect.web.internal.portal.settings.configuration.admin.display.Класс атрибута OpenIdConnectPortalSettingsConfigurationScreenContributor. Я полагаю, что этот участник предоставляет значение навигатору для использования в качестве метки.

Мой вопрос в том, какой самый простой и удобный способ изменить это значение? Моей мыслью было предоставить альтернативные файлы Language_*.properties, но я не уверен, как переопределить существующие. Позволит ли мне это сделать JSP-хук модуля portal-security-sso-openid-connect-api?

Ответ №1:

Я не знаю чистого способа — надеюсь, кто — нибудь подключится к нему, — но у меня была та же проблема, и мне пришлось решить ее с помощью небольшого фрагмента JavaScript в navigation.jspf:

 <script>
    $( document ).ready(function() {
        $(".taglib-text").filter(function () {
        return ($(this).text() === 'OpenId Connect')
    }).text("Google");
});
</script>
 

Хотя это работает, это все еще немного странно, так как при нажатии на ссылку откроется портлет OpenID Connect, в котором есть раскрывающийся список с одним выбранным элементом — Google, а затем пользователь должен нажать другую кнопку входа. Я знаю, что это позволяет нескольким клиентам OpenID подключаться, но мне бы очень хотелось использовать прямой метод для Google.

Комментарии:

1. Спасибо за ответ. Это не то, что я имел в виду, но я могу в конечном итоге сделать это, пока я жду.

2. Согласованный. Я рассмотрю любое решение, которое вы получите для моего собственного использования.

3. Я бы сказал, что это соответствует вашему вопросу «какой самый простой и удобный способ». Другие варианты, такие как введение фрагмента JSP, могут показаться более элегантными, но вам придется их сохранить (в отличие от первоначальной реализации). При этом: фрагменты JSP-это вариант, но мое личное предпочтение таково: если я могу обойтись без этого, я избавлю себя от бремени обслуживания.

4. Спасибо @Olaf Kock. Я всегда ценю ваш вклад и доверяю ему.