如何在springws-security上手动设置时间戳

uelo1irk  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(369)

客户端和服务器没有同步时间,因此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设备。

cfh9epnr

cfh9epnr1#

你可以这样做(来源于这里)

<bean class="org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor">
<property name="validationActions" value="Timestamp"/>
<property name="timestampStrict" value="true"/>
<property name="timeToLive" value="10"/>

简而言之,您可以执行以下操作
调用%soap.security.timestamp的create()类方法 set ts=##class(%SOAP.Security.Timestamp).Create() 调用web客户端或web服务的securityout属性的addsecurityelement()方法 do client.SecurityOut.AddSecurityElement(ts)e 发送soap消息

相关问题