2015-02-10 109 views
1

對於我的應用程序,我有一個REST服務組合;和一個網站。這兩者都在同一個Web應用程序中。對Infinispan緩存的瀏覽器訪問安全緩存的使用期限未到期

爲了保護我的安全,我將這個安全域添加到了我的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測試工具時,我看到我存儲的主體已經過了10秒。但是,當我訪問該網站並瀏覽並擊中相同的REST端點時,我看不到任何超時。

我對這種配置工作相當陌生,所以我覺得我只是缺少一些東西,或者我的瀏覽器做了一些棘手的事情,我不知道。

有沒有人見過這種行爲,並知道在使用infinispan和基本身份驗證擴展時在瀏覽器中強制執行超時的解決方案?

回答

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>