我们遇到了同样的问题。这是我们发现的:
如果您仔细检查异常,您会注意到引发异常的根本原因在堆栈跟踪中描述
Caused by: org.openid4java.discovery.DiscoveryException: 0x70d: Error parsing XML document
.
.
.
Caused by: org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 15; cvc-complex-type.2.4.a: Invalid content was found starting with element 'Type'. One of '{"xri://$xrd*($v*2.0)":Query, "xri://$xrd*($v*2.0)":Status, "xri://$xrd*($v*2.0)":ServerStatus, "xri://$xrd*($v*2.0)":Expires, "xri://$xrd*($v*2.0)":ProviderID, "xri://$xrd*($v*2.0)":Redirect, "xri://$xrd*($v*2.0)":Ref, "xri://$xrd*($v*2.0)":LocalID, "xri://$xrd*($v*2.0)":EquivID, "xri://$xrd*($v*2.0)":CanonicalID, "xri://$xrd*($v*2.0)":CanonicalEquivID, "xri://$xrd*($v*2.0)":Service, WC[##other:"xri://$xrd*($v*2.0)"], WC[""]}' is expected. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException
似乎 simple id 使用 XRDS simple,该格式已于 2008 年底取消。我不确定它是否仍然是有效的 OpenID 2.0 响应,但我知道 Jenkins 无法解析它。
如果您将手动编辑 XRDS 文档(只需<Type>xri://$xrds*simple</Type>
从文档中删除)并将 Jenkins 指向您已编辑的文件的位置(并在 http 服务器上可用),您将能够毫无错误地保存配置。
但是,不幸的是,这仍然无法正常工作。尝试登录时将显示以下错误:
javax.servlet.ServletException: org.openid4java.consumer.ConsumerException: 0xa00: Authentication cannot continue: no discovery information provided.
似乎 SimpleID 支持每个用户的端点,但不为多个用户提供单个端点——这是 Jeknins 在 SSO 模式下所需要的。
Bottom line - you'll have to use another OpenID provider than SimpleID