You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Liferay 7.2升级至7.4 GA112后OpenID相关类缺失及依赖问题求助

Liferay 7.2升级到7.4 GA112后Keycloak集成问题解决

问题1:替代OpenIdConnectProviderRegistry.getOpenIdConnectProviderNames()方法

Liferay 7.4中移除了OpenIdConnectProviderRegistry类,可使用com.liferay.portal.security.sso.openid.connect.OpenIdConnectProviderManager类替代,通过其getProviderNames()方法获取OpenID Connect提供商名称。

使用示例:

import com.liferay.portal.security.sso.openid.connect.OpenIdConnectProviderManager;
import org.osgi.service.component.annotations.Reference;

// 在组件类中注入实例
@Reference
private OpenIdConnectProviderManager _openIdConnectProviderManager;

// 获取提供商名称集合
Set<String> providerNames = _openIdConnectProviderManager.getProviderNames();

问题2:依赖解析异常(Unresolved requirement: Import-Package: com.liferay.portal.security.sso.openid.connect.internal)

该异常是因为你的模块尝试导入Liferay的内部私有包(internal前缀),这类包属于非公开API,Liferay升级后禁止外部模块依赖。解决步骤:

  1. 清理导入配置:检查代码和bnd.bnd文件,删除所有import com.liferay.portal.security.sso.openid.connect.internal相关的导入语句。
  2. 修正Gradle依赖:在build.gradle中使用Liferay公开的OIDC API或SPI依赖,替代原来的内部包依赖,示例:
dependencies {
    compileOnly group: "com.liferay", name: "com.liferay.portal.security.sso.openid.connect.api", version: "7.4.0"
    compileOnly group: "com.liferay", name: "com.liferay.portal.security.sso.openid.connect.spi", version: "7.4.0"
}
  1. 确认UserInfoProcessor实现:自定义用户信息处理时,应实现SPI接口com.liferay.portal.security.sso.openid.connect.spi.UserInfoProcessor,而非原内部类。

内容的提问来源于stack exchange,提问作者Akash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 08:23:19