调用接口时,如何知道被调用者的ip地址 java axis
1个回答
展开全部
不是默认的 WSDL 都会给一个 transport 的地址么,那个 URL 中应该有地址,当然可能不是 IP 而是服务器域名,当然也有可能人家没有把 URL 直接写在 WSDL 中,但会另外在文档中告诉你 URL 地址。你为什么需要知道 IP 地址而不直接用域名?
从分布式的松耦合设计中我们了解到,客户端应该只看 WSDL 再加上额外提供的可选的 URL (如果 WSDL 中没有提供这个 transport 配置的话)就应该可以完成与服务器的数据交换,不再需要其它条件。
从分布式的松耦合设计中我们了解到,客户端应该只看 WSDL 再加上额外提供的可选的 URL (如果 WSDL 中没有提供这个 transport 配置的话)就应该可以完成与服务器的数据交换,不再需要其它条件。
更多追问追答
追问
想测试一下安全性
追答
安全性从来不是用”不告诉其它人“来保证的,而是告诉所有人都没关系但需要你证明你确实是被授权的人。因此安全性的保证来自数字证书签名和SSL通信,对于没有必要公开在互联网上的内部应用当然可以直接通过防火墙来隔离不相关的外界访问。至于DoS 攻击这种并不是普通应用程序的职责,它与操作系统直接相关。如果你觉得要验证一下服务器是不是木马伪装的应该是通过 SSL 通信请求服务器出示证书,服务器想验证客户端是否有授权也是请求客户端出示证书,这样一来,没有出现在信任证书列表中的木马伪装的证书是无法难过验证的,当然如果你的代码非要”信任所有证书“的话,那就是自己用人品和个人信用去保证的问题,到时候当替死鬼去坐牢当然不是公司的责任。
一般用WSDL 通过 WSDL2Java 自动生成代码时很多 WSDL 中已经确定的URL 会hard-code 到代码中,当然我们在创建 axis client 时可以覆盖它。这要求了解它的 API,可以在 axis API 中找到如何取到这个 endpoint 和修改它。看 API 是最简单的直接的完全能解决问题的方法,不过我不记得是什么,但肯定从 apache.org API 能找到答案。一般生成的类可能有 YourServiceNameLocator 前缀 YourService 是根据你的 WSDL 不同的,然后它可能有 setEndpointURL 或 getEndpointURL 得到URL,我们再从中用 URL 类解析出 host name 和相应的 IP 来,或者在 Call 对象中找到它.
http://axis.apache.org/axis/java/apiDocs/org/apache/axis/client/Call.html#getTargetEndpointAddress()
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询