![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
sysprog |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 9.8.2007 Репутация: нет Всего: нет |
Добрый день.
Столкнулся с подобной задачей, сервер-фасад JBoss, а клиент - PHP5 стандартный php_soap.dll Подключиться к фасаду получается, но затем при вызове методов возникают ошибка авторизации: SecurityException; nested exception is: javax.security.auth.login.LoginException: Login Failure: all modules ignored Исходя из того как ребята делали это на С# понял, что при вызове методов еще необходимо передавать sessionId в заголовке, и в этом вся загвоздка.
Вот несколько вариантов попытки вызова метода фасада на PHP через Soap. 1 Вариант. При создании объекта сразу передается логин и пароль:
2 Вариант. Используем объект SoapHeader:
Подозреваю, что в этом случае может быть ошибка с установкой Namespace=Authorization, т.к. не исключено, что в Jboss Namespace будет другой. (Использовал по аналогии с примерами на других платформах, надеялся, может везде стандартный) 3 Вариант. Используем недокументированную функцию __setSoapHeaders
Помогите, пожалуйста, нахожусь в полном замешательстве. ![]() Вроде бы перерыл и перечитал все :( |
||||||||
|
|||||||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
sysprog,
ссылку на WSDL файл Добавлено через 11 секунд в смысле покажи -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
sysprog |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 9.8.2007 Репутация: нет Всего: нет |
Fortop, В локальной сети! :(
|
|||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 11 Всего: 146 |
Метод __call устарел, вместо него следует использовать метод __soapCall() Это не правильно. Под паролем и логином тут имеются ввиду логин и пароль для HTTP авторизации, в случае если WSDL схема находится под паролем. Хидеры же надо передавать каждый раз при вызове метода __soapCall(), как у вас это сделано во втором варианте. Естественно, для каждого веб сервиса будет свой namespace. Кроме того он должен быть иметь тип xs:anyURI, а не строки. http://www.w3.org/TR/wsdl20/#Description_t...space_attribute
|
|||
|
||||
sysprog |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 9.8.2007 Репутация: нет Всего: нет |
Хех, перепробовал много чего... но в итоге помогли старшие товарищи!
![]() sTa1kEr, спасибо за толковый ответ!!
По-моему, с SessionId довольно криво, но по другому не работает!.. |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
sysprog,
читай заголовки после авторизации и сохраняй кукисы оттуда затем soap->__setCookies()
-------------------- Мир это Я. Живее всех живых. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |