gpt4 book ai didi

python - liferay 6.2GA2 使用 python suds 客户端进行 SOAP 验证

转载 作者:太空宇宙 更新时间:2023-11-03 18:22:04 24 4
gpt4 key购买 nike

我在使用 liferay 6.2soap api 时遇到了一些问题:我需要它来使用 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'

与服务器端回溯:

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中通过soap身份验证吗?

感谢您的回答。

杰罗姆。

最佳答案

最后,我使用来自 suds.transport.http 的 HttpAuthenticated 传输解决了我的问题

使用它会添加一个新 header 授权以及用户名+密码的base64编码组合,并将在每个soap请求中使用。

这是一个例子:

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')

关于python - liferay 6.2GA2 使用 python suds 客户端进行 SOAP 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23915905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com