Обновление сервера MobileFirst 7 с версии Worklight 6.2, вызов адаптера не работает

У нас есть приложение MobileFirst, которое работало с сервером Worklight 6.2 — в том числе и в производстве. Мы используем http-адаптер: <connectionPolicy xsi:type="http:HTTPConnectionPolicyType">

В настоящее время мы меняем производственный сервер на 7.0.0. На сервере разработки мы могли протестировать наше приложение, и все функции были в порядке. Мы создали .war с производственным сервером в конфигурации сборки и загрузили вместе с Android .wlapp . Теперь мы получаем 404, когда приложение пытается вызвать любую функцию адаптера на рабочем сервере. invokeProcedure onFailure возвращает UNEXPECTED_ERROR. Это с:

  • Версия сервера: 7.0.0.00.20150312-0731
  • Версия проекта WAR: 7.0.0.00.20150402-2001
  • Имя адаптера: ХХХХХ. Версия: 7.0.0.00.20150402-2001
  • Приложение: XXXXX-android-0.9.7, версия: 7.0.0.00.20150402-2001

У нас в приложении не включена защита. Есть ли что-то, что должно быть включено на сервере, чтобы разрешить вызов адаптеров старого типа?
Когда мы тестировали обновленную версию MobileFirst Development Studio 7.0.0.00.20150430 в качестве платформы для разработки - та же версия сервера, и мы получили тот же 404 ( Контекст не найден), но пытается подключиться с авторизацией/v1/clients/instance вместо /apps/services/api/XXXXX/android/query

Должен ли апгрейд сервера решить эту проблему? Мы заметили, что доступны обновления.

Сервер находится на соединении https, но был таким же на WL 6.2.


person Olimpiu Olar    schedule 07.05.2015    source источник
comment
Используйте одну и ту же версию сервера и версию студии. Предоставьте messages.log, предоставьте более полное сообщение об ошибке.   -  person Idan Adar    schedule 07.05.2015
comment
Привет, мы обновили сервер до той же версии, что и студия. Мы могли бы успешно протестировать приложение Android, пока оно не подписано. Но с подписанным приложением и при добавлении publicSigningKey в конфигурацию Android в application-descriptor.xml соединение приложения с сервером не работает. Вот журнал Android: [ссылка]m.uploadedit.com/ba3c/1431097202119.txt   -  person Olimpiu Olar    schedule 08.05.2015


Ответы (1)


Судя по описанию в комментариях и прилагаемому файлу messages.log, вы пытаетесь использовать защиту подлинности приложений.

Эта функция работала определенным образом в версии 6.2 и по-другому в версии 6.3 и выше.
Судя по комментариям, вы добавляете только publickSigningKey — этого уже недостаточно.

Дальнейшие действия см. в обновленном руководстве по защите подлинности приложений: https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-7-0/authentication-security/application-authenticity-protection/

Общие шаги, которые необходимо выполнить:

  1. Настройка authenticationConfig.xml с тестом безопасности
  2. Добавьте тест безопасности в узел среды в application-descriptor.xml.
  3. Добавьте publicSigningKey в элемент <publicSigningKey>
  4. Добавьте элемент <packageName> имени пакета приложения

Я полагаю, что вы пропустили шаг 4.
Обратите внимание, что теперь вы также можете включить режим расширенной аутентификации; следуйте инструкциям в учебнике.

Обратите внимание на шаг 3: очевидно, что то же самое хранилище ключей, которое использовалось для создания publicSigningKey, должно использоваться при экспорте подписанного файла .apk... в противном случае возникнет несоответствие, и проверка подлинности не будет выполнена.


В файле authenticationConfig.xml убедитесь, что доступен тест безопасности (= не закомментирован, как в файле, который вы предоставили в комментариях ниже).

В вашем application-descriptor.xml отсутствует атрибут securityTest в элементе среды Android: <android version="0.9.9"> изменить на <android version="0.9.9" securityTest="customTests">

person Idan Adar    schedule 08.05.2015
comment
Здравствуйте, Идан, спасибо за быстрый ответ. Мой файл конфигурации выглядит следующим образом: [ссылка]m.uploadedit.com/ba3c/1431099240756.txt - person Olimpiu Olar; 08.05.2015
comment
См. мое примечание внизу моего ответа о ключе подписи, который вы используете, и о проверке, которую вы должны выполнить. - person Idan Adar; 08.05.2015
comment
Правильно ли настроен мой файл authenticationConfig.xml, прикрепленный выше? Я сгенерировал ‹publicSigningKey›, используя функцию извлечения открытого ключа подписи из eclipse, когда я нажимаю на среду Android. Затем я использую тот же файл ключа для Android Tools -> Экспорт подписанного пакета приложения. - person Olimpiu Olar; 08.05.2015
comment
Нет. Тест безопасности customTests НЕ ДОЛЖЕН быть закомментирован. В файле authenticationConfig.xml. Кроме того, он отсутствует в среде Android в application-descriptor.xml: securityTest=customTests - person Idan Adar; 08.05.2015
comment
Спасибо за поддержку. После добавления в authenticationconfig.xml следующей конфигурации (из документации) я мог создать подписанное приложение и распространить его: ‹test realm=wl_deviceNoProvisioningRealm step=2 isInternalDeviceID=true/› ‹/customSecurityTest› - person Olimpiu Olar; 11.05.2015
comment
@OlimpiuOlar, ваше предложение сокращено. - person Idan Adar; 11.05.2015
comment
Извините, это была ошибка в написании, - не должно быть. Я больше не могу это исправить. - person Olimpiu Olar; 11.05.2015
comment
Хорошо. Поэтому, если этот вопрос решен, пожалуйста, отметьте его как ответ. Спасибо. Если нет, объясните, что не работает. - person Idan Adar; 11.05.2015