shiro 정시 모니터 가 적용 되 지 않 는 문 제 를 해결 합 니 다.
3795 단어 shiro타임 모니터onExpiration
redis 이상 던 지기:
redis.clients.jedis.ScanResult.getStringCursor()Ljava/lang/String;
Method threw 'java.lang.NoSuchMethodError' exception.
설명 하 다.spring-boot 버 전
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
shiro-redis 버 전
<dependency>
<groupId>org.crazycake</groupId>
<artifactId>shiro-redis</artifactId>
<version>3.2.3</version>
</dependency>
제 디 스 버 전shiro 설정 정시 검색 session 실효
shiro 설정 session 실효 시간,shiro-quartz 참조 없 음,기본 값 사용
ExecutorServiceSessionValidationScheduler
shiro 설정
@Bean
public SessionManager sessionManager(SimpleCookie simpleCookie, SessionDAO sessionDAO) {
logger.debug(" : sessionManager ");
SkySessionManager skySessionManager = new SkySessionManager();
skySessionManager.setSessionDAO(sessionDAO);
skySessionManager.setSessionIdCookie(simpleCookie);
// cookie
skySessionManager.setSessionIdCookieEnabled(true);
// session session
skySessionManager.setDeleteInvalidSessions(true);
// session
skySessionManager.setSessionValidationInterval(10000);
// schedule
skySessionManager.setSessionValidationSchedulerEnabled(true);
skySessionManager.setSessionListeners(Collections.singletonList(new SkySessionListener()));
logger.debug(" : sessionManager ");
return skySessionManager;
}
shiro schedule 생 성 논리문제점
기본 scheduler 를 만 든 후 run 방법 을 실행 합 니 다.
계속 추적 코드
이곳 에 이상 이 있 는 것 을 발 견 했 지만 이상 이 포착 되 지 않 아 스 레 드 가 중단 되 었 습 니 다.
인터넷 바 이 두 의 이상 설 은 제 디 스 버 전이 일치 하지 않 아 생 긴 것 이다.
해결 방안
shiro-redis pom 파일 jedis 의 버 전 번 호 를 봅 니 다.
제 디 스 버 전 번호 가 2.9.0 인 걸 발 견 했 어 요.
jedis 2.9.0 을 프로젝트 에 통합:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
이로써 문 제 는 해결 된다.
@Override
public void onExpiration(Session session)
onExpiration 방법 이 호출 되 지 않 는 문제 입 니 다.이 방법 은 위의 정시 작업 알림 을 통 해 실 행 됩 니 다.redis 와 ehcache 자체 에 만 료 시간 이 설정 되 어 있 기 때문에 만 료 후 session 은 redis 후자 ehcache 에서 삭 제 됩 니 다.따라서 onExpiration 이 만 료 된 후에 이 방법 은 영원히 호출 되 지 않 습 니 다.
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
shiro 권한 부여Shiro 는 세 가지 방식 의 인증 을 지원 합 니 다. 본 교육 프로그램 은 첫 번 째 프로 그래 밍 방식 을 사용 하고 실제 와 웹 시스템 을 통합 하여 사용 한 후 두 가지 방식 을 사용 하도록 권한 을 부여...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.