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