OpenID Connect - 无法重定向到提供商的登录页面

问题描述 投票:0回答:1

在选择 OpenID Connect 提供商并单击“登录”按钮后尝试连接提供商的登录页面时遇到问题。

我在 liferay 日志上收到以下错误消息:

2023-02-27 18:24:19.252 ERROR [http-nio-9090-exec-10][OpenIdConnectLoginRequestMVCActionCommand:199] Unable to process the OpenID Connect login: java.lang.IllegalStateException: Resource URI must be absolute and with no query or fragment:
com.liferay.portal.kernel.exception.PortalException: java.lang.IllegalStateException: Resource URI must be absolute and with no query or fragment:
        at com.liferay.portal.security.sso.openid.connect.internal.OpenIdConnectAuthenticationHandlerImpl.requestAuthentication(OpenIdConnectAuthenticationHandlerImpl.java:243) ~[?:?]
        at com.liferay.login.authentication.openid.connect.web.internal.portlet.action.OpenIdConnectLoginRequestMVCActionCommand.doProcessAction(OpenIdConnectLoginRequestMVCActionCommand.java:164) ~[?:?]
        at com.liferay.portal.kernel.portlet.bridges.mvc.BaseMVCActionCommand.processAction(BaseMVCActionCommand.java:57) ~[portal-kernel.jar:?]
        at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.callActionMethod(MVCPortlet.java:402) ~[portal-kernel.jar:?]
        at com.liferay.portal.kernel.portlet.LiferayPortlet.processAction(LiferayPortlet.java:83) ~[portal-kernel.jar:?]

...TRUNCATED...

        at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.IllegalStateException: Resource URI must be absolute and with no query or fragment:
        at com.nimbusds.openid.connect.sdk.AuthenticationRequest$Builder.build(AuthenticationRequest.java:959) ~[?:?]
        at com.liferay.portal.security.sso.openid.connect.internal.OpenIdConnectAuthenticationHandlerImpl._getAuthenticationRequestURI(OpenIdConnectAuthenticationHandlerImpl.java:299) ~[?:?]
        at com.liferay.portal.security.sso.openid.connect.internal.OpenIdConnectAuthenticationHandlerImpl.requestAuthentication(OpenIdConnectAuthenticationHandlerImpl.java:221) ~[?:?]
        ... 193 more
Caused by: java.lang.IllegalArgumentException: Resource URI must be absolute and with no query or fragment:
        at com.nimbusds.oauth2.sdk.AuthorizationRequest.<init>(AuthorizationRequest.java:814) ~[?:?]
        at com.nimbusds.openid.connect.sdk.AuthenticationRequest.<init>(AuthenticationRequest.java:1135) ~[?:?]
        at com.nimbusds.openid.connect.sdk.AuthenticationRequest$Builder.build(AuthenticationRequest.java:946) ~[?:?]
        at com.liferay.portal.security.sso.openid.connect.internal.OpenIdConnectAuthenticationHandlerImpl._getAuthenticationRequestURI(OpenIdConnectAuthenticationHandlerImpl.java:299) ~[?:?]
        at com.liferay.portal.security.sso.openid.connect.internal.OpenIdConnectAuthenticationHandlerImpl.requestAuthentication(OpenIdConnectAuthenticationHandlerImpl.java:221) ~[?:?]
        ... 193 more
2023-02-27 18:24:19.269 ERROR [http-nio-9090-exec-10][PortletServlet:118] Unable to process portlet com_liferay_login_web_portlet_LoginPortlet: java.lang.IllegalStateException: Set render parameter has already been called
javax.portlet.PortletException: java.lang.IllegalStateException: Set render parameter has already been called
        at com.liferay.portal.kernel.portlet.bridges.mvc.BaseMVCActionCommand.processAction(BaseMVCActionCommand.java:65) ~[portal-kernel.jar:?]
        at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.callActionMethod(MVCPortlet.java:402) ~[portal-kernel.jar:?]

...TRUNCATED...

        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-coyote.jar:9.0.68]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) [tomcat-coyote.jar:9.0.68]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) [tomcat-coyote.jar:9.0.68]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:9.0.68]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-util.jar:9.0.68]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-util.jar:9.0.68]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:9.0.68]
        at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.IllegalStateException: Set render parameter has already been called
        at com.liferay.portlet.internal.ActionResponseImpl.sendRedirect(ActionResponseImpl.java:52) ~[portal-impl.jar:?]
        at com.liferay.portal.util.PortalImpl.sendError(PortalImpl.java:6545) ~[portal-impl.jar:?]
        at com.liferay.portal.util.PortalImpl.sendError(PortalImpl.java:6513) ~[portal-impl.jar:?]
        at com.liferay.login.authentication.openid.connect.web.internal.portlet.action.OpenIdConnectLoginRequestMVCActionCommand.doProcessAction(OpenIdConnectLoginRequestMVCActionCommand.java:204) ~[?:?]
        at com.liferay.portal.kernel.portlet.bridges.mvc.BaseMVCActionCommand.processAction(BaseMVCActionCommand.java:57) ~[portal-kernel.jar:?]
        ... 191 more

我应该检查什么配置?

我使用 Liferay Community Edition Portal 7.4.3.60 CE GA60 和 Keycloak 21.0.0。

问候,

[巴渝]

点击 Liferay 登录页面上的登录按钮后,它将重定向到提供商的登录页面。

single-sign-on liferay openid-connect
1个回答
0
投票

我也收到同样的消息。你找到答案了吗?

问候 克里斯托夫

© www.soinside.com 2019 - 2024. All rights reserved.