0

Сервер приложенийРазвертывание приложения MobileFirst на существующем WebSphere одноузловых что существующие приложения

  • AIX V7.1
  • WebSphere
  • Application Server V8.5.5.4
  • Java SDK V7 .0.8
  • MobileFirst Platform Foundation 6.3
  • Клиент DB2 V10.1

Database Server

  • AIX V7.1
  • DB2 V10.1

У нас есть приложение, которое MobileFirst наш мобильный передний конец существующего приложения. Существующим приложением является приложение WebSphere, которое предоставляет веб-службы RESTful. Приложение MobileFirst взаимодействует с существующим приложением WebSphere через адаптер MobileFirst. URL-адреса веб-сервиса RESTful являются защищенными URL-адресами, а аутентификация выполняется с использованием LDAP и создается токен LTPA. LDAP настроен в WebSphere через консоль WAS.

Приложение MobileFirst отлично работает и может подключаться к веб-службам RESTful и использовать их, но только если приложение MobileFirst запущено в отдельном профиле WebSphere или на отдельном сервере WebSphere. Если мы попытаемся установить приложение MobileFirst в тот же профиль WebSphere, что и наше существующее приложение WebSphere, которое предоставляет веб-службы RESTful, оно ломается. Мобильное устройство успешно завершает работу с MobileFirst и затем вызывает адаптер для вызова вызова веб-службы RESTful. Однако следующий вызов адаптера с мобильного устройства заканчивается ошибкой HTTP 401, которая является ошибкой авторизации.

Я предполагаю, что после того, как адаптер аутентифицируется с помощью нашего существующего приложения WebSphere, которое предоставляет веб-службы, которые каким-то образом переписывают аутентификацию, выполненную между мобильным устройством и MobileFirst.

Мои вопросы заключаются в следующем.

  1. Может как приложение MobileFirst и наше существующее приложение WebSphere, которая предоставляет RESTful веб-сервисы работают в одном профиле WebSphere и разделить маркер LTPA таким образом, что, когда мобильное устройство проверяет подлинность с MobileFirst, что также будет уполномочен выполните веб-службы, работающие в одном и том же профиле WebSphere.

  2. Можно ли запускать оба приложения в одном профиле WebSphere или использовать отдельные профили или на отдельных серверах.

Стоимость - это проблема, поскольку мы не обязательно нуждаемся в дополнительных эксплуатационных расходах на добавление физически отдельного сервера только для запуска MobileFirst.

С точки зрения эксплуатации, это дополнительная работа по добавлению и обслуживанию нескольких профилей WAS.

В идеале мы хотели бы запустить оба приложения в одном и том же профиле WebSphere.

Вот ссылка Google Drive (не требуется для входа в аккаунт) в trace.log, SystemOut.log, SystemErr.log и Firebug-console.html

MobileFirst Trace log

Приложение MobileFirst была запущена в браузер с использованием «Предварительный просмотр как общие ресурсы». Я получаю тот же результат при использовании реального устройства Android или iOS. Приложение WARW MobileFirst было запущено в том же профиле WAS, что и веб-службы WAR, к которому он обращался через адаптер. Этот же код работает успешно, когда приложение WARF MobileFirst работает в отдельном профиле WAS или на отдельном сервере WAS.

Просьба сообщить.

+0

Джеймс, пожалуйста, включите трассировку на сервере и укажите полученный файл журнала. –

+0

@IdanAdar, я предоставил ссылку для загрузки журналов в главном сообщении. –

+0

Джеймс, можете ли вы поставлять журналы проводки как в случае, когда веб-приложения являются отдельными (2 разных сервера), и когда два веб-приложения находятся на одном сервере? –

ответ

1

Я сам решу проблему. Это была кодовая база, которую моя команда унаследовала от другой команды.

Что происходит, мобильное устройство инициировало подключение к MobileFirst, работающему на WebSphere, которое создает cookie JSESSIONID и файл cookie LTPA2Token. Затем вызывался адаптер, который вызывал HTTP-вызов веб-службы, работающей в том же профиле WebSphere. При вызове веб-службы были созданы новые файлы JSESSIONID и LTPA2Token. Эти новые куки были возвращены на мобильное устройство, а код JavaScript на мобильном устройстве принимал эти новые значения cookie и затем перезаписывал документы document.cookies, которые уничтожили исходные файлы cookie. Затем, когда мобильное устройство попыталось подключиться к MobileFirst при последующем вызове, сеанс был недействительным и в итоге получил ошибку HTTP 401, которая является ошибкой авторизации. Поэтому мы объясняем эту проблему плохой реализацией нашего приложения.

Смежные вопросы