現在、IBM Connections 4.0 の OAuth2 コンシューマーに取り組んでいます (役立つ場合は、smartcloud でソーシャル ビジネス クイックスタート イメージを使用しています)。
すべてが正しくセットアップされていると思います (アプリが登録され、コールバック URL が HTTPS を実行しています) が、oauth プロセスの途中で 500 エラーが発生します。
基本的に、ユーザーは AuthorizationCode を取得するために次の URL に送信されます。
/oauth2/endpoint/connectionsProvider/authorize?response_type=code&client_id={appID}&callback_uri={URL}
これにより、ログイン ページが返されます。ログイン後、ユーザーは AuthorizationCode を url パラメーターとして使用してコールバック URL にリダイレクトされると想定されます。
しかし実際には、ログイン後、ページのリダイレクト前に、IBM Connections が次のメッセージで 500 エラーをスローしています。
Error 500: javax.servlet.ServletException: Filter [OAuth20ClientAuthnFilter]: filter is unavailable.
ユーザーが「/oauth2/endpoint/connectionsProvider/authorize」リンクにアクセスする前にログインしていた場合、接続がページ全体のリダイレクトを行う代わりに、500 エラーが即座に表示されます。
したがって、これはユーザーのログインとは何の関係もないと確信しています...おそらく、認証コードの生成またはアプリへのリダイレクトに関連するものです。
ここからどこへ行くべきか正確にはわかりません。何が問題なのか正しい方向に向けるのに役立つ IBM Connections の知識を持っている人はいますか? または、これを以前に見たことがあり、私が間違ったことを知っている人はいますか?
更新:
これが例外であり、私が信じているのは、SystemOut.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)