繁体   English   中英

如何在 spring-ws 安全性上手动设置时间戳

[英]How to set timestamp manually on spring-ws security

客户端和服务器没有同步时间,因此 soap 服务器的安全返回未授权响应。 我将获取服务器的当前时间,并在发送 soap 请求时使用该时间(在安全性 header 上,已创建用户名令牌与)。

如何在 spring-ws 上手动设置时间戳。

我正在使用 spring ws.client.core、ws.soap.security.wss4j2(Wss4jSecurityInterceptor 和 WebServiceTemplate)。 WS-Usernametoken 是为了安全而发送的(随机数、用户名、密码、已创建(我猜是已创建的问题。我应该设置它。)服务器是 onvif 设备。

您可以执行以下操作( 此处来源)

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

简而言之,您可以执行以下操作

  1. 调用 %SOAP.Security.Timestamp set ts=##class(%SOAP.Security.Timestamp).Create()的 Create() class 方法
  2. 调用 web 客户端或 web 服务的 SecurityOut 属性的 AddSecurityElement() 方法do client.SecurityOut.AddSecurityElement(ts)e
  3. 发送 SOAP 消息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM