浏览器对Infinispan Cache Lifespan for Security Cache的访问权限尚未到期

时间:2015-02-10 16:43:04

标签: caching jboss basic-authentication wildfly-8 infinispan

对于我的应用程序,我有一个REST服务的组合;和一个网站。两者都在同一个网络应用程序中。

为了确保安全,我将此安全域添加到了standalone.xml。 (MyAuthClass是一个基本的身份验证扩展,可以通过第三方系统进行身份验证)

   <subsystem xmlns="urn:jboss:domain:security:1.2">
        <security-domains>
            <security-domain name="my-authentication" cache-type="infinispan">
                <authentication>
                    <login-module code="com.myAuthClass.Impl" flag="required"/>
                </authentication>
            </security-domain>
            <security-domain name="other" cache-type="default">
...

我正在使用cache-type="default",但后来我适应了infinispan,所以我可以设定一个寿命。据我了解,我设置了一个特殊缓存

<subsystem xmlns="urn:jboss:domain:infinispan:2.0">
        <cache-container name="security" default-cache="auth-cache" module="org.wildfly.clustering.web.infinispan" aliases="standard-security-cache">
            <local-cache name="auth-cache" batching="true">
                <expiration lifespan="10000"/>
            </local-cache>
        </cache-container>

我现在的行为令人沮丧。当我使用REST测试工具(如Poster)时,我看到我存储的主体有10秒到期。但是,当我访问该网站并浏览并点击相同的REST端点时,我看不到任何超时。

我对这个配置工作相当新,所以我想我只是遗漏了一些东西,或者我的浏览器正在做一些棘手的活着,我不知道。

有没有人看过这种行为,并且知道在使用infinispan和基本身份验证扩展时在浏览器中强制执行超时的解决方案?

1 个答案:

答案 0 :(得分:3)

我在写完这个问题后几乎立即解决了这个问题......

同样在Standalone.xml中,有一个网站正在使用的缓存容器。巧妙地命名为web

  <cache-container name="web" default-cache="passivation" module="org.wildfly.clustering.web.infinispan"> ...

我最终做的是设置缓存过期,现在我似乎得到了预期的行为。我也在安全上下文中保留了到期日期,因为当有人使用我们的服务时,这就是推动REST超时的原因。

最终的Web缓存配置:

        <cache-container name="web" default-cache="passivation" module="org.wildfly.clustering.web.infinispan">
            <local-cache name="passivation" batching="true">
                <expiration lifespan="10000"/>
                <file-store passivation="true" purge="false"/>
            </local-cache>
            <local-cache name="persistent" batching="true">
                <expiration lifespan="10000"/>
                <file-store passivation="false" purge="false"/>
            </local-cache>
        </cache-container>