更改 Liferay 登录页面中的“OpenId Connect”链接的最佳方法是啥?
Posted
技术标签:
【中文标题】更改 Liferay 登录页面中的“OpenId Connect”链接的最佳方法是啥?【英文标题】:What's the best way to change the "OpenId Connect" link in the Liferay login page?更改 Liferay 登录页面中的“OpenId Connect”链接的最佳方法是什么? 【发布时间】:2021-11-30 10:53:31 【问题描述】:我们在 Liferay 7.3 门户中添加了多个社交登录。其中包括内置的 Facebook 和 OpenId Connect 功能以及 Twitter、LinkedIn 等的自定义过滤器。 OpenId Connect 已配置为使用 Google 登录。
一切正常,但我需要将登录页面中的链接从“OpenId Connect”更改为“Google”。
我发现该值是在 portal-security-sso-openid-connect-api 模块的语言文件中的键 open-id-connect-configuration-name 中设置的。然后通过 com.liferay.portal.settings.authentication.openid.connect.web.internal.portal.settings.configuration.admin.display.OpenIdConnectPortalSettingsConfigurationScreenContributor 类的 getName() 方法访问它。我相信这个贡献者将值提供给导航器以用作标签。
我的问题是更改此值的最简单和最可维护的方法是什么?我的想法是提供备用 Language_*.properties 文件,但我不确定如何覆盖现有文件。 portal-security-sso-openid-connect-api 模块的 JSP 钩子允许我这样做吗?
【问题讨论】:
【参考方案1】:我不知道一个干净的方法 - 希望有人会加入其中 - 但我遇到了同样的问题,不得不在 navigation.jspf 中使用一小段 javascript 来解决它:
<script>
$( document ).ready(function()
$(".taglib-text").filter(function ()
return ($(this).text() === 'OpenId Connect')
).text("Google");
);
</script>
虽然这可行,但仍然有点奇怪,因为单击链接将转到 OpenId Connect portlet,该 portlet 有一个下拉菜单,其中包含一个已选中的项目 - Google,然后用户必须单击另一个登录按钮。我知道这是为了允许多个 OpenID Connect 客户端,但我肯定喜欢 Google 的直接方法。
【讨论】:
感谢您的回复。这不是我的想法,但我可能会在等待的时候这样做。 同意。我会考虑你为我自己使用的任何解决方案。 我会说这符合您的问题“什么是最简单和最可维护的方式”。其他选项,例如引入 JSP 片段可能看起来更优雅,但您必须维护它们(与原始实现的差异)。话虽这么说:JSP 片段是一种选择,但我个人的偏好是:如果我可以不用,我可以为自己节省维护负担。 感谢@Olaf Kock。我始终重视并相信您的意见。以上是关于更改 Liferay 登录页面中的“OpenId Connect”链接的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
当我链接到另一个页面时,Liferay 6.1 PortletSession ID 在 Google Chrome 的 iframe 中发生了更改