客户端和服务器没有同步时间,因此soap服务器的安全性返回未授权的响应。我将获取服务器的当前时间,并在发送soap请求时使用该时间(在security头上,username token created vs)。
如何在springws上手动设置时间戳。
我使用的是spring ws.client.core、ws.soap.security.wss4j2(wss4jsecurityinterceptor和webservicemplate)。ws usernametoken是为了安全而发送的(nonce,username,password,created)(我猜created就是问题所在。我应该设置它。)服务器是onvif设备。
1条答案
按热度按时间cfh9epnr1#
你可以这样做(来源于这里)
简而言之,您可以执行以下操作
调用%soap.security.timestamp的create()类方法
set ts=##class(%SOAP.Security.Timestamp).Create()
调用web客户端或web服务的securityout属性的addsecurityelement()方法do client.SecurityOut.AddSecurityElement(ts)e
发送soap消息