欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java shiro實(shí)現(xiàn)退出登陸清空緩存

 更新時(shí)間:2017年02月20日 11:33:43   作者:瘋狂的貓  
本篇文章主要介紹了java shiro實(shí)現(xiàn)退出登陸清空緩存,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

上一篇介紹了使用springmvc集成shiro登陸過程,通過FormAuthenticationFilter過濾器獲取到用戶輸入的賬號(hào)密碼。

shiro是一個(gè)被廣泛使用的安全層框架,通過xml配置方式與spring無縫對(duì)接,用戶的登陸/退出/權(quán)限控制/Cookie等管理系統(tǒng)基礎(chǔ)功能交給shiro來管理。

一般,在JavaWEB管理平臺(tái)系統(tǒng)時(shí),用戶退出系統(tǒng)之前沒需要清除用戶數(shù)據(jù)和關(guān)閉連接,防止垃圾數(shù)據(jù)堆積,shiro提供了LogoutFilter過濾器,我們可以繼承LogoutFilter,重寫preHandle方法,實(shí)現(xiàn)清除緩存功能。

spring-shiro.xml:

 <!-- 安全認(rèn)證過濾器 -->
 <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>

當(dāng)調(diào)用的路徑匹配到/b/logout,會(huì)進(jìn)入到SystemLogoutFilter過濾器,SystemLogoutFilter繼承了LogoutFilter,并重寫了preHandle方法,在preHandle方法執(zhí)行需要清空的數(shù)據(jù)。

@Service
public class SystemLogoutFilter extends LogoutFilter {
 @Override
 protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception {
  //在這里執(zhí)行退出系統(tǒng)前需要清空的數(shù)據(jù)


     Subject subject = getSubject(request, response);

  String redirectUrl = getRedirectUrl(request, response, subject);

  try {

   subject.logout();

  } catch (SessionException ise) {

   ise.printStackTrace();

  }

  issueRedirect(request, response, redirectUrl);

     //返回false表示不執(zhí)行后續(xù)的過濾器,直接返回跳轉(zhuǎn)到登錄頁面

  return false;
 }
}

注意,需要通過@Service注解,使用spring容器來管理,在spring-shiro.xml中配置shiro過濾器直接使用

<entry key="logout" value-ref="systemLogoutFilter" />

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談java反射和自定義注解的綜合應(yīng)用實(shí)例

    淺談java反射和自定義注解的綜合應(yīng)用實(shí)例

    本篇文章主要介紹了java反射和自定義注解的綜合應(yīng)用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • cookie+mybatis+servlet實(shí)現(xiàn)免登錄時(shí)長兩天半的整體流程

    cookie+mybatis+servlet實(shí)現(xiàn)免登錄時(shí)長兩天半的整體流程

    這篇文章主要介紹了cookie+mybatis+servlet實(shí)現(xiàn)免登錄時(shí)長兩天半,主要用到的技術(shù)有session、cookie、轉(zhuǎn)發(fā)、重定向、filter、和servlet,最重要的還是具體的來運(yùn)用它們?cè)谇岸隧撁嬲嬲拇罱ǔ鲆粋€(gè)應(yīng)用,通過這個(gè)練習(xí),對(duì)我們所學(xué)的web知識(shí)做一個(gè)整合,需要的朋友可以參考下
    2022-10-10
  • Mybatis增強(qiáng)版MyBatis-Flex的具體使用

    Mybatis增強(qiáng)版MyBatis-Flex的具體使用

    Mybatis-Flex一個(gè)用于增強(qiáng)MyBatis的框架,本文主要介紹了Mybatis增強(qiáng)版MyBatis-Flex的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • Java?Synchronize底層原理總結(jié)

    Java?Synchronize底層原理總結(jié)

    這篇文章主要給大家總結(jié)了Java?Synchronize底層原理,文中的圖文講解介紹的非常詳細(xì),對(duì)我們學(xué)習(xí)Java?Synchronize有一定的幫助,需要的朋友可以參考下
    2023-06-06
  • Java線程間共享實(shí)現(xiàn)方法詳解

    Java線程間共享實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了Java線程間共享實(shí)現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • java中的異步加載new Thread()方式

    java中的異步加載new Thread()方式

    這篇文章主要介紹了java中的異步加載new Thread()方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 簡(jiǎn)單了解Thymeleaf語法 數(shù)據(jù)延遲加載使用實(shí)例

    簡(jiǎn)單了解Thymeleaf語法 數(shù)據(jù)延遲加載使用實(shí)例

    這篇文章主要介紹了簡(jiǎn)單了解Thymeleaf語法 數(shù)據(jù)延遲加載使用實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2010-05-05
  • 超細(xì)講解Java調(diào)用python文件的幾種方式

    超細(xì)講解Java調(diào)用python文件的幾種方式

    有時(shí)候我們?cè)趯慾ava的時(shí)候需要調(diào)用python文件,下面這篇文章主要給大家介紹了關(guān)于Java調(diào)用python文件的幾種方式,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Java實(shí)現(xiàn)獲取客戶端真實(shí)IP方法小結(jié)

    Java實(shí)現(xiàn)獲取客戶端真實(shí)IP方法小結(jié)

    本文給大家匯總介紹了2種使用java實(shí)現(xiàn)獲取客戶端真實(shí)IP的方法,主要用于獲取使用了代理訪問的來訪者的IP,有需要的小伙伴可以參考下。
    2016-03-03
  • SpringBoot整合thymeleaf 報(bào)錯(cuò)的解決方案

    SpringBoot整合thymeleaf 報(bào)錯(cuò)的解決方案

    這篇文章主要介紹了SpringBoot整合thymeleaf 報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評(píng)論