IBM Connections 在 OAuth2 授权期间抛出 500 错误.([OAuth20ClientAuthnF



我目前正在为 IBM Connections 4.0 开发 OAuth2 使用者(如果有帮助,我正在使用 smartcloud 上的社交业务快速入门图像(

我相信我已经正确设置了一切(应用程序已注册并且回调 URL 正在运行 HTTPS(,但我在 oauth 过程中遇到了 500 错误。

基本上,用户被发送到此 URL 以获取授权代码:

/

oauth2/endpoint/connectionsProvider/authorize?response_type=code&client_id={appID}&callback_uri={URL}

这将返回一个登录页面。登录后,用户应该被重定向到回调 url,并将授权代码作为 url 参数。

但实际发生的是,在登录后,但在页面重定向之前,IBM Connections 会抛出 500 错误,并显示以下消息:

Error 500: javax.servlet.ServletException: Filter [OAuth20ClientAuthnFilter]: filter is unavailable.

如果用户在点击"/oauth2/endpoint/connectionsProvider/authorize"链接之前登录,则会立即显示 500 错误,而不是连接执行整个页面重定向操作。

所以我很确定这与用户登录无关......这可能与授权代码生成或重定向回我的应用程序有关。

我不确定从这里开始。有没有人对 IBM Connections 有任何了解,可以帮助我指出出错的正确方向?或者更好的是,以前有没有人见过这个,知道我做错了什么?

更新

这是例外,我认为是系统输出堆栈跟踪的相关部分.log

10/11/13 12:10:43:585 EDT] 00000064 servlet       E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: Uncaught exception created in one of the service methods of the servlet OAuth20EndpointServlet in application WebSphereOauth20SP. Exception created : javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.j: PKIX path building failed: java.security.cert.CertPathBuilderException: unable to find valid certification path to requested target
        at com.ibm.jsse2.o.a(o.java:15)
        at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:460)
        at com.ibm.jsse2.kb.a(kb.java:294)
        at com.ibm.jsse2.kb.a(kb.java:533)
        at com.ibm.jsse2.lb.a(lb.java:55)
        at com.ibm.jsse2.lb.a(lb.java:581)
        at com.ibm.jsse2.kb.s(kb.java:11)
        at com.ibm.jsse2.kb.a(kb.java:394)
        at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:44)
        at com.ibm.jsse2.SSLSocketImpl.h(SSLSocketImpl.java:496)
        at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:528)
        at com.ibm.jsse2.SSLSocketImpl.startHandshake(SSLSocketImpl.java:505)
        at com.ibm.net.ssl.www2.protocol.https.c.afterConnect(c.java:83)
        at com.ibm.net.ssl.www2.protocol.https.d.connect(d.java:31)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1184)
        at com.ibm.net.ssl.www2.protocol.https.b.getInputStream(b.java:40)
        at com.ibm.ws.security.oauth20.util.TemplateRetriever.getTemplateFromRemote(TemplateRetriever.java:102)
        at com.ibm.ws.security.oauth20.util.TemplateRetriever.getTemplate(TemplateRetriever.java:72)
        at com.ibm.ws.security.oauth20.form.FormRenderer.renderForm(FormRenderer.java:67)
        at com.ibm.ws.security.oauth20.web.OAuth20EndpointServlet.renderConsentForm(OAuth20EndpointServlet.java:557)
        at com.ibm.ws.security.oauth20.web.OAuth20EndpointServlet.processAuthorizationRequest(OAuth20EndpointServlet.java:214)
        at com.ibm.ws.security.oauth20.web.OAuth20EndpointServlet.doPost(OAuth20EndpointServlet.java:139)
        at com.ibm.ws.security.oauth20.web.OAuth20EndpointServlet.doGet(OAuth20EndpointServlet.java:110)

打开 WebSphere 控制台

转到安全性

单击 SSL 证书和密钥管理

单击密钥存储和证书

单击单元格默认信任存储

单击签署者证书

单击从端口检索

输入连接服务器的主机名,以及托管 OAUTH 舞蹈的端口,如果是 443,请使用 443

单击"确定

">

点击保存/关闭

然后同步节点(您可以在环境下执行此操作。然后重新启动连接服务器(您可能不必执行此步骤(

重新尝试您的 oAuth 舞蹈。 如果失败,请粘贴系统输出的代码段.log

最新更新