首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何配置在Rampart中创建/过期的时间戳

如何配置在Rampart中创建/过期的时间戳
EN

Stack Overflow用户
提问于 2013-12-24 12:59:30
回答 2查看 2.8K关注 0票数 0

我使用Rampart作为我在Axis2上的WS-安全模块。

我的策略XML文件如下:

代码语言:javascript
复制
<wsp:Policy wsu:Id="UsernameToken"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">

<wsp:ExactlyOne>
    <wsp:All>
        <sp:TransportBinding
            xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
            <wsp:Policy>>
                <sp:IncludeTimestamp />
            </wsp:Policy>
        </sp:TransportBinding>
        <sp:SupportingTokens
            xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
            <wsp:Policy>
                <sp:UsernameToken
                    sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient" />
            </wsp:Policy>
        </sp:SupportingTokens>
    </wsp:All>
</wsp:ExactlyOne>

<ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
    <ramp:passwordType>PasswordText</ramp:passwordType>
</ramp:RampartConfig>

它工作正常,如下面的SOAP调用所示:

代码语言:javascript
复制
  <soapenv:Header>
     <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
        <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-1">
           <wsu:Created>2013-12-24T12:55:39.089Z</wsu:Created>
           <wsu:Expires>2013-12-24T13:00:39.089Z</wsu:Expires>
        </wsu:Timestamp>
        <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-2">
           <wsse:Username>username</wsse:Username>
           <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password>
        </wsse:UsernameToken>
     </wsse:Security>
  </soapenv:Header>

我想要做的是配置所创建的值,使其不一定绑定到服务器时间,并配置在创建和过期之间的持续时间。

我怎么能这么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-25 17:32:44

好的,我在回答我自己的问题。

似乎没有必要设置不同的时间戳,因为根据标准,时间戳应该以UTC格式发送。

对于TTL,可以从policy.xml文件中配置:

代码语言:javascript
复制
<ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
  <ramp:timestampTTL>600</ramp:timestampTTL>
  <ramp:timestampMaxSkew>600</ramp:timestampMaxSkew>
<ramp:RampartConfig>

我会把这条线打开一两天,看看是否还有人愿意提出不同的意见。

票数 1
EN

Stack Overflow用户

发布于 2014-06-17 22:09:24

现在,我们有一个关于创建和到期日期之间的持续时间的问题。消息似乎在过期后在服务器上接收,这是因为服务器和客户端时钟之间有很大的差异(我指的是超过2秒或5秒)。一个解决办法是增加

代码语言:javascript
复制
<ramp:timestampTTL>600</ramp:timestampTTL>
<ramp:timestampMaxSkew>600</ramp:timestampMaxSkew>

这可以通过在客户端使用rampartConfig.setTimestampTTLrampartConfig.setTimestampmaxSkew方法来完成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20761415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档