javashiro 로그아웃 캐시 비우기
shiro는 광범위하게 사용되는 안전층 프레임워크로 xml 설정 방식을 통해spring과 틈새 없이 연결되고 사용자의 로그인/종료/권한 제어/쿠키 등 관리 시스템의 기초 기능을shiro에 맡겨 관리한다.
일반적으로 자바 WEB 관리 플랫폼 시스템에서 사용자가 시스템을 종료하기 전에 사용자 데이터를 지우고 연결을 닫지 않아도 쓰레기 데이터가 쌓이는 것을 방지할 수 있다.shiro는 LogoutFilter 필터를 제공한다. 우리는 LogoutFilter를 계승하고preHandle 방법을 다시 써서 캐시 제거 기능을 실현할 수 있다.
spring-shiro.xml:
<!-- -->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager" />
<property name="loginUrl" value="/b/login" />
<property name="successUrl" value="/b" />
<property name="filters">
<map>
<!-- -->
<entry key="logout" value-ref="systemLogoutFilter" />
</map>
</property>
<property name="filterChainDefinitions">
<value>
/b/login = authc
/b/logout = logout
/b/** = user
</value>
</property>
</bean>
호출된 경로가/b/logout에 일치하면 SystemLogoutFilter 필터에 들어갑니다. SystemLogoutFilter는 LogoutFilter를 계승하고preHandle 방법을 다시 썼습니다.preHandle 방법에서 비워야 할 데이터를 실행합니다.
@Service
public class SystemLogoutFilter extends LogoutFilter {
@Override
protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception {
//
Subject subject = getSubject(request, response);
String redirectUrl = getRedirectUrl(request, response, subject);
try {
subject.logout();
} catch (SessionException ise) {
ise.printStackTrace();
}
issueRedirect(request, response, redirectUrl);
// false ,
return false;
}
}
@Service 메모를 통해spring 용기를 사용하여 관리해야 합니다.spring-shiro에서.xml에서shiro 필터 직접 사용 설정
<entry key="logout" value-ref="systemLogoutFilter" />
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
shiro 권한 부여Shiro 는 세 가지 방식 의 인증 을 지원 합 니 다. 본 교육 프로그램 은 첫 번 째 프로 그래 밍 방식 을 사용 하고 실제 와 웹 시스템 을 통합 하여 사용 한 후 두 가지 방식 을 사용 하도록 권한 을 부여...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.