2012-02-24 1 views
1

Java 웹 응용 프로그램에 HDIV 웹 응용 프로그램 보안 프레임 워크를 사용하고 있습니다. 모든 새로운 웹 페이지 요청은 캐시되고 보안 검사에 사용되는 hdiv 내부 보안 정보를 생성합니다.hdiv에서 캐시 제거 전략을 변경하는 방법

나는 다음과 같은 szenario 있습니다

내가 뭔가에 추가 또는 장바구니에서 삭제 될 때 2 초 확인 페이지를 팝업 한 주문 페이지가 있습니다.

팝업이 50 개 발생하면 언더 레이 주문 페이지가 캐시에서 제거되어 앱에 오류가 발생합니다.

누구나 기본 페이지를 유지하기 위해 hdiv 캐시 제거 전략에 영향을주는 방법을 알고 있습니까? 주위

한 가지 방법은 500

50에서 org.hdiv.session.StateCache.maxSize을 증가시키는 것이다 그러나 이것은뿐만 아니라 근본 원인 증상을 치료한다.

업데이트 :

나는 20에이 maxSize을 변경하고 검증하기 위해 원래 org.hdiv.session.StateCache를 사용하는 succeded 솔루션을 @rbelasko 사용하여 cachentries 20 개 항목 이후에 해고되는 디버그 로그.

난 내 자신의 구현을 사용하도록 변경이 didn를-t 작업

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); 
     } 
    } 
} 

어떤 항목에서이 없었다

<bean id="cache" class="com.mycompany.session.StateCacheTest" singleton="false" 
    init-method="init"> 
    <property name="maxSize"> 
     <value>20</value> 
    </property> 
</bean> 

StateCacheTest

아이디어가 있으십니까?

업데이트 2 :

은 내가 덜

<hdiv:config ... maxPagesPerSession="200" ... /> 

에게 콩을 설정 정의

를 사용하여 난이 오류를 만들 수 있었다 스프링을 통해 다른 IStateCache 구현을로드 할 수없는 동안
<property name="maxSize"> 
    <value>20</value> 
</property> 

은 내 시스템의 캐시 크기에 영향을 미치지 않았습니다.

답변

1

사용자 정의 IStateCache 인터페이스 구현을 만들 수 있습니다.

<bean id="cache" class="org.hdiv.session.StateCache" singleton="false" 
    init-method="init"> 
    <property name="maxSize"> 
     <value>200</value> 
    </property> 
</bean> 

당신은 당신 자신의 구현을 작성하고 사용자의 요구 사항에 맞는 전략을 구현할 수있는 다음 HDIV를 명시 적으로 구성 (HDIV의 새로운 사용자 정의 스키마를 사용하지 않는)이 "캐시"콩의 기본 구성 사용

.

감사합니다,

로베르토

+0

당신은 나에게 내 자신의 구현'com.mycompany.session.StateCacheTest'와'org.hdiv.session.StateCache'을 교체하는 방법을 예를 들어 줄 수 있습니까? 내 업데이트 된 질문보기 – k3b

+0

HDIV 사용자 정의 스키마 (hdiv :)를 사용하고 있습니까? 명시 적 구성 (구식)을 사용하는 경우 하나의 "캐시"bean 만 정의하면 작동해야합니다. 즉, defaulta 캐시 빈을 삭제하고 빈을 추가하십시오. – rbelasko

+0

매개 변수가없는 hdiv 2.1.0.RC2를 사용하고있었습니다. 최신 버전으로 업그레이드 한 후 정상적으로 작동했습니다. 고마워. – k3b

관련 문제