Keycloak 使用工件绑定抛出 400 Bad request 异常

问题描述

我并尝试在我的球衣休息应用程序中启用 SAML SSO。我使用 keycloak 作为 IDP。 Keycloak 似乎没有设置绑定的选项,我想使用工件绑定。它只有一个选项,即强制后绑定

有谁知道在哪里设置工件绑定?

我禁用了强制后期绑定并尝试将绑定设置为在向 keycloak 的 saml 身份验证请求中的工件绑定,然后当我尝试发送工件时,我被重定向到带有工件随机数的断言消费者 URL通过 SOAP 通道解析我得到这个异常

org.opensaml.ws.soap.client.soAPClientException: Received 400 HTTP response status code from HTTP request to http://localhost:8080/auth/realms/Demo/protocol/saml
at org.opensaml.ws.soap.client.http.HttpSOAPClient.send(HttpSOAPClient.java:111)
at com.infosys.icets.arstudio.spconsumer.ConsumerServlet.sendAndReceiveArtifactResolve(ConsumerServlet.java:177)
at com.infosys.icets.arstudio.spconsumer.ConsumerServlet.doGet(ConsumerServlet.java:57)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1579)
at org.apache.tomcat.util.net.socketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:847)

在检查 Keycloak 服务器日志时,我得到了这个

2021-03-16 17:45:32,012 WARN [org.keycloak.events] (default task-43) type=LOGIN_ERROR,realmId=Demo,clientId=null,userId=null,ipAddress=10.184.22.26,错误=invalid_token,reason='未处理的 SAML 文档类型:ArtifactResolveType'

我正在使用 opensaml v2 将 SAML 与球衣休息服务集成。

知道是什么导致了这个错误吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...