2014-05-28 6 views
1

У меня есть некоторые проблемы с liferay 6.2 soap api: мне нужно его искать пользователей с клиентом python suds.liferay 6.2GA2 аутентификация мыла с клиентом python suds

В Liferay 6.1, я использовал следующий код, он работал хорошо:

from suds.client import Client 
c = Client('http://liferay62instance.domain.com/api/secure/axis/Portal_UserService?wsdl', username='liferayuser', password='liferaypassword') 
c.service.getUserByScreenName(companyId=10154, screenName='user') 

В Liferay 6.2, WSDL URL изменился, и не требует аутентификации HTTP, по умолчанию, используйте следующий код выдает ошибку:

from suds.client import Client 
c = Client('http://liferay62instance.domain.com/api/axis/Portal_UserService?wsdl', username='liferayuser', password='liferaypassword') 
c.service.getUserByScreenName(companyId=10154, screenName='user') 

и ошибка:

Server raised fault: 'java.rmi.RemoteException: Authenticated access required' 

с серверной стороны ПРОФ eback:

14:50:45,030 ERROR [ajp-bio-9009-exec-8][UserServiceSoap:845] 
java.lang.SecurityException: Authenticated access required 
java.lang.SecurityException: Authenticated access required 

У вас есть идеи, как пройти проверку подлинности мыла в liferay 6.2 ??

Спасибо за любой ответ.

Jérôme.

ответ

1

Наконец я сумел мой вопрос, используя HttpAuthenticated транспорт из suds.transport.http

Использование добавляет новый заголовок Авторизация с кодировкой Base64 combinaison от имени пользователя + пароль и будет использоваться в каждом мыльный запрос.

Вот пример:

from suds.client import Client 
from suds.transport.http import HttpAuthenticated 

t = HttpAuthenticated(username='liferayuser', password='liferaypassword') 
c = Client('http://liferay62instance.domain.com/api/axis/Portal_UserService?wsdl', transport=t) 
result = c.service.getUserByScreenName(companyId=10154, screenName='user') 

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

  • Нет связанных вопросов^_^