IBM Connections выдает ошибку 500 во время авторизации OAuth2. ([OAuth20ClientAuthnFilter]: фильтр недоступен)

В настоящее время я работаю над потребителем OAuth2 для IBM Connections 4.0 (если это поможет, я использую образ быстрого запуска социального бизнеса в smartcloud)

Я считаю, что у меня все настроено правильно (приложение зарегистрировано, а URL-адрес обратного вызова работает по протоколу HTTPS), но я сталкиваюсь с ошибкой 500 раз, как думал процесс oauth.

По сути, пользователь отправляется на этот URL-адрес, чтобы получить код авторизации:

/ Oauth2/ конечная точка /connectionsProvider/ авторизацию? Response_type= Код &client_id={APPID}&callback_uri={URL}

Это возвращает страницу входа. Предполагается, что после входа в систему пользователь будет перенаправлен на URL обратного вызова с параметром AuthorizationCode в качестве 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)

1 ответ

Решение

Откройте консоль WebSphere

Перейти к безопасности

Нажмите SSL сертификат и управление ключами

Нажмите Ключевые магазины и сертификаты

Нажмите CellDefaultTrustStore

Нажмите Сертификаты подписавшего

Нажмите Получить из порта

Введите имя хоста вашего сервера подключений и порт, на котором размещен ваш танец OAUTH, если это 443, используйте 443

Нажмите Ok

Нажмите Сохранить / Закрыть

Затем синхронизируйте узлы (вы можете сделать это в среде. Затем перезапустите сервер соединений (вам, возможно, не нужно делать этот шаг)

Повторите свой oAuth танец. если это не удается, вставьте фрагмент вашего SystemOut.log

Другие вопросы по тегам