我正在使用針對java web應用程序的HDIV Web應用程序安全框架。每個新的Web頁面請求都會生成緩存的並用於安全檢查的hdiv內部安全信息。如何在hdiv中更改緩存清除策略
我有以下SZENARIO:
我有東西時加入,或從購物車中移除彈出2秒鐘確認頁的一個訂購頁面。
50個彈出窗口之後,將下層訂單頁面從高速緩存中刪除,並因此在應用程序中發生錯誤。
是否有人知道如何影響hdiv緩存清除策略,以保持基頁活着?各地
的方法之一是增加org.hdiv.session.StateCache.maxSize從50到500
但這只是治標而不是根本原因。
更新:
使用@rbelasko解決方案 我succeded使用原來org.hdiv.session.StateCache
至maxSize更改爲20,並在驗證調試日誌,該cachentries在經過20項駁回。
當我改成了用我自己的實現它沒-T工作
bean定義
<bean id="cache" class="com.mycompany.session.StateCacheTest" singleton="false"
init-method="init">
<property name="maxSize">
<value>20</value>
</property>
</bean>
我自己的類
public class StateCacheTest extends StateCache
{
private static final Log log = LogFactory.getLog(StateCacheTest.class);
public StateCacheTest()
{
log.debug("StateCache()");
}
@Override
public void setMaxSize(final int maxSize)
{
super.setMaxSize(maxSize);
if (log.isDebugEnabled())
{
log.debug("setMaxSize to " + maxSize);
}
}
}
在調試日誌沒有從條目StateCacheTest
任何想法?
更新2:
,而我是無法通過春天,我能作出這個錯誤加載不同的IStateCache實現不太可能使用
<hdiv:config ... maxPagesPerSession="200" ... />
豆設置定義
<property name="maxSize">
<value>20</value>
</property>
對我係統中的cachesize沒有影響。
你能不能給我一個例子,如何用我自己的實現'com.mycompany.session.StateCacheTest'取代'org.hdiv.session.StateCache'?看到我更新的問題。 – k3b 2012-02-27 13:38:42
你使用HDIV自定義模式(hdiv :)嗎?如果您使用顯式配置(舊樣式),則必須僅定義一個「緩存」bean,並且它應該可以工作。換句話說,刪除defaulta緩存bean並添加你的bean。 – rbelasko 2012-02-28 17:03:23
我使用的hdiv 2.1.0.RC2沒有 參數。升級到更高版本後,這工作得很好。非常感謝 –
k3b
2012-03-05 15:09:50