shiro session 은 만 료 시간 이 작용 하지 않 고 유효 하지 않 음 을 설정 합 니 다.
본 고 는 주로 shiro 설정 session 만 료 시간 이 유효 하지 않 은 문 제 를 다 루 지만 shiro 의 session 은 session manager 가 관리 하기 때문에 session manager 를 소개 할 필요 가 있 습 니 다. 이렇게 하면 이해 에 도움 이 됩 니 다.shiro 에서 자주 사용 하 는 session manager 는
ServletContainerSessionManager
, DefaultWebSessionManager
가 있다.ServletContainerSessionManager
로 설정 되 었 을 때 session 의 조작 은 servlet 용기 (tomcat, Jetty) 가 책임 집 니 다. 쉽게 말 하면 shiro 는 브리지 역할 만 합 니 다. 이때 session 이 만 료 되 는 시간 은 웹. xml 의 session timeout 에서 지정 합 니 다.
30
DefaultWebSessionManager
로 설정 되 었 을 때 session 은 native session, 즉 로 컬 session 으로 shiro 관리 session (생 성, 업데이트, 소각) 으로 servlet 용기 와 관계 가 없습니다.이 경우 세 션 의 만 료 시간 은 shiro 프로필 에서 지정 합 니 다.bug 재현
보통 저 희 는 shiro 를 선택 하여 session 을 관리 합 니 다. shiro 설정 은 다음 과 같 습 니 다.
여기 서 만 료 시간 은 1800000 밀리초 = 30 분 * 60 초 * 1000 밀리초, 즉 30 분 으로 지정 된다.
EnterpriseCacheSessionDAO
의 부모 클래스 CachingSessionDAO
는 캐 시 session 의 캐 시 블록 이름 을 정의 합 니 다.public abstract class CachingSessionDAO extends AbstractSessionDAO implements CacheManagerAware {
/**
* The default active sessions cache name, equal to {@code shiro-activeSessionCache}.
*/
public static final String ACTIVE_SESSION_CACHE_NAME = "shiro-activeSessionCache";
}
그래서 ehcache 는 보통
shiro-activeSessionCache
블록 이 있 습 니 다. 설정 은 다음 과 같 습 니 다.
이렇게 설정 하 는 데 두 가지 오류 가 있 습 니 다.
eternal="true"
timeToIdleSeconds="0"
timeToLiveSeconds="0"
overflowToDisk="true"
diskPersistent="true"
/>
사실 shiro - ehcache. jar 에 ehcache. xml (자바 에 대응 하 는 net. sf. ehcache. config. cache Configuration) 이 있 는데 그 안에 있 는 주석 도 이 문 제 를 명확 하 게 설명 했다.
총결산
레 퍼 런 스
shiro session management
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
shiro 권한 부여Shiro 는 세 가지 방식 의 인증 을 지원 합 니 다. 본 교육 프로그램 은 첫 번 째 프로 그래 밍 방식 을 사용 하고 실제 와 웹 시스템 을 통합 하여 사용 한 후 두 가지 방식 을 사용 하도록 권한 을 부여...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.