代理背后的SOAP web服务,使用python SUD访问

代理背后的SOAP web服务,使用python SUD访问,python,soap,https,reverse-proxy,suds,Python,Soap,Https,Reverse Proxy,Suds,我有一个关于python泡沫的奇怪案例场景 我有一个在本地ip上运行的soap服务(java),比如http://10.0.0.1:8080/services/ 我在本地网络中使用sudshttpbase-auth,它工作正常 from suds.client import Client c = Client(url, username="user", password="pass") 但是我想从外部访问它,所以我问系统管理员:“你能为这个soap服务设置一个外部IP使用反向代理吗?” “是的

我有一个关于python泡沫的奇怪案例场景

我有一个在本地ip上运行的soap服务(java),比如
http://10.0.0.1:8080/services/

我在本地网络中使用sudshttpbase-auth,它工作正常

from suds.client import Client
c = Client(url, username="user", password="pass")
但是我想从外部访问它,所以我问系统管理员:“你能为这个soap服务设置一个外部IP使用反向代理吗?”

“是的,但公司防火墙不允许8080端口,因此您的规则是:

http://10.0.0.1:8080/services/*
https://example.com/services/*

然后规则设置好了,但我无法使客户端正常工作。我尝试了各种传输:

from suds.transport.https import WindowsHttpAuthenticated
from suds.transport.http import HttpAuthenticated
#from suds.transport.https import HttpAuthenticated
from suds.client import Client

http = HttpAuthenticated(username="jlee", password="jlee")
#https = HttpAuthenticated(username="jlee", password="jlee")
ntlm = WindowsHttpAuthenticated(username="jlee", password="jlee")
url = "https://example.com/services/SiteManager?wsdl"
c = Client(url, transport = http)
它总是返回:

suds.transport.TransportError: HTTP Error 403: Forbidden ( The server denied the specified Uniform Resource Locator (URL). Contact the server administrator.  )
我试图访问URL
https://example.com/services/SiteManager?wsdl
从chrome,它也返回403

但是,如果我首先使用其他路由登录(我的服务器正在tomcat上运行其他http页面),然后再次访问URL,就会显示wsdl描述页面

有人能告诉我这有什么问题吗?这与反向代理服务器或suds传输的配置有关吗

非常感谢!
Jackie通过与系统管理员(负责设置反向代理)交谈找到了解决方案,他说MS DMZ(反向代理服务器)中有一个复选框选项用于允许http基本身份验证