Аутентификация между виджетом и SBT

Фон

Мне нужно отобразить список трех загруженных файлов в виджете, когда человек входит в сообщество.

Я использую Social Business Toolkit в бэкэнде, чтобы получить эти данные и отправить их в виде строки JSON в виджет, чтобы отобразить то же самое.

Вопрос:

Для получения файлов из сообщества через SBT требуется аутентификация (доступ к конечной точке).

Как в этом сценарии можно передать учетные данные пользователя из iWidget настроенному сервлету, чтобы он мог получать все файлы из того же сообщества Connections?

Я бы избегал повторной аутентификации, поскольку пользователь уже прошел аутентификацию при входе в Сообщество.


Получите следующую ошибку при вызове из iWidget

java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest at org.apache.http.impl.client.AbstractHttpClient.determineTarget(AbstractHttpClient.java:584) at 
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554) at com.ibm.sbt.services.client.ClientService.executeRequest(ClientService.java:1108) at com.ibm.sbt.services.client.ClientService._xhr(ClientService.java:1071) at com.ibm.sbt.services.client.ClientService.execRequest(ClientService.java:1037) at com.ibm.sbt.services.client.ClientService.xhr(ClientService.java:997) at com.ibm.sbt.services.client.ClientService.get(ClientService.java:873) at com.ibm.sbt.services.client.ClientService.get(ClientService.java:869) at com.ibm.sbt.services.client.base.BaseService.retrieveData(BaseService.java:371) at com.ibm.sbt.services.client.base.BaseService.retrieveData(BaseService.java:395) at com.ibm.sbt.services.client.base.BaseService.retrieveData(BaseService.java:346) at com.ibm.sbt.services.client.base.BaseService.getEntities(BaseService.java:205) at com.ibm.sbt.services.client.connections.communities.CommunityService.getMyCommunities(CommunityService.java:260) at 
com.ibm.sbt.services.client.connections.communities.CommunityService.getMyCommunities(CommunityService.java:244) at com.ibm._jsp._Test._jspService(_Test.java:124) at 

Вот как выглядит папка Lib внутри введите здесь описание изображения


person bukubapi    schedule 18.03.2015    source источник


Ответы (1)


Вы должны использовать ConnectionsSSOEndpoint в вашем файле manage-beans.xml.

<!-- Connections SSO -->    
<managed-bean>
<managed-bean-name>connections</managed-bean-name>
<managed-bean-class>com.ibm.sbt.services.endpoints.ConnectionsSSOEndpoint</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>url</property-name>
<value>${connectionsUrl}</value>
</managed-property>
<!-- Trust the connection -->
<managed-property>
<property-name>forceTrustSSLCertificate</property-name>
<value>true</value>
</managed-property>
<managed-property>
<property-name>serviceMaps</property-name>
<value>${connectionsMaps}</value>
</managed-property>
</managed-bean>

Конечная точка SSO использует токены ltpatoken и ltpatoken2 из существующего сеанса для автоматического входа в серверную службу.

person Paul Bastide    schedule 18.03.2015
comment
Добавлена ​​ошибка, которую я получаю при вызове из iWidget с помощью Connections SSO. - person bukubapi; 19.03.2015
comment
Просто быстро добавлю - я установил sbt.sample-1.0.3.20140723-1200.ear на свой WAS, у которого есть подключения. Когда я пытаюсь получить доступ к любым фрагментам, таким как GetCommunityFiles, я получаю следующую ошибку. org/apache/http/client/HttpClient.execute(Lorg/apache/http/client/methods/HttpUriRequest;)Lorg/apache/http/HttpResponse; - person bukubapi; 19.03.2015
comment
измените политику загрузки классов на PARENT_LAST для вашего файла войны - person Paul Bastide; 19.03.2015
comment
После изменения в WAS я получаю следующую ошибку. - Ошибка 500: java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest. Просто чтобы добавить, я получаю ту же ошибку и в примере приложения sbt. - person bukubapi; 19.03.2015
comment
Я перезапустил сервер. Ошибка решилась. Но теперь столкнулся с другой ошибкой. Ошибка 500: javax.servlet.ServletException: Фильтр [SBTFilter]: не класс фильтра. Это приложение работало на сервере Tomcat до того, как я развернул его на WAS 8.0.05. Все, что мне здесь не хватает - person bukubapi; 19.03.2015
comment
Я бы сказал, что классы находятся не в том месте, возможно, добавьте их в каталог WEB-INF/lib. - person Paul Bastide; 19.03.2015
comment
Все файлы jar находятся в каталоге web-inf/lib. Добавили снимок к исходному вопросу - person bukubapi; 19.03.2015
comment
если вы не можете найти фильтр, я бы предположил, что класс не найден. Это приводит к проблемам с ClassPath, перезапуску и проверке. Кроме того, вы хотите убедиться, что ваш файл web.xml настроен одинаково. - person Paul Bastide; 19.03.2015
comment
Пробовал все, что предлагалось, не уверен, где ломается путь к классам. Web.xml такой же, как и в примере войны. Любые указатели помогут - person bukubapi; 20.03.2015
comment
Давайте продолжим обсуждение в чате. - person Paul Bastide; 20.03.2015