我已经设置了用户名代币Web服务安全性,并将此应用程序部署在WebSphere 7.0 App Server上。我将以下属性设置为false:
com.ibm.wsspi.wssecurity.token.username.verifynonce falsecom.ibm.wsspi.wssecurity.token.username.verifytimestamp false
即使在属性上方设置上面之后,客户端也以下错误消息:
security.wssecurity.wsscontextimpl.s02:com.ibm.websphere.security.wssecurityexception:exception org.apache.axis.axis2.axisfault:cwwss5208e:cwwss5208e:时间邮票值太远了未来。在运行动作时进行了操作:
有人可以帮我摆脱这个错误吗?
是否可以为允许的允许时间差设置任何属性?还是可以在Web服务绑定中设置任何属性以摆脱此错误?
谢谢girish
由于您已经验证了terifyTimestamp并验证了验证,因此可能来自时间戳元素的错误。您的安全标头中有时间戳吗?我认为,如果该错误是用于用户纳特语中创建的错误,则会收到此错误:
cwwss5209e:nonce的时间邮票值是一个随机生成的值,发生在未来。
默认时钟距离为3分钟。如果需要更长的时间,则可以在WS安全绑定中使用此自定义属性设置它:
com.ibm.wsspi.wssecurity.core.timestampclockskew
值在几秒钟内。您将其设置在这里:
(打开您的绑定)> ws-security>自定义属性
由于它是一个入站自定义属性,您可以将其放在"入站自定义属性"或"入站和出站自定义属性"
下创建的USERNAMETOKEN的时钟属性是com.ibm.ws.wssecurity.config.token.basicauth.nonce.clockskew,并在上述的一般自定义属性中进行了配置。
如前所述,最好的办法是同步您的时钟。我理解增加时钟的动机。我们的一台服务器的时钟有"流浪汉"。我们最终通过添加CRON作业来解决该问题,以每天将时钟与我们的注册表同步(有时间服务)。