这里我们通过配置Shiro的方式实现用户的登出操作!

1.继承Shiro包中的LogoutFilter类,并且重写preHandle方法

package com.shitong.service.impl;import org.apache.shiro.subject.Subject;
import org.apache.shiro.web.filter.authc.LogoutFilter;
import org.springframework.stereotype.Service;import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;@Service
public class SystemLogoutFilter extends LogoutFilter {@Overrideprotected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception {Subject subject = getSubject(request, response);String redirectUrl = getRedirectUrl(request, response, subject);try {subject.logout();} catch (Exception ise) {ise.printStackTrace();}issueRedirect(request, response, redirectUrl);return false;}
}

注:我这里用的是注解的方式,如果你用的是配置bean的方式,你还得再spring中配置该类的bean

2.application-shiro.xml的配置

<bean name="shiroFilterChainDefinitions" class="java.lang.String"><constructor-arg><value>/login = anon/logout = logout/admin = authc,roles[admin]/user = authc/user/**=authc/assert/** =anon</value></constructor-arg><!-- anon 任何用户发送的请求都能够访问authc经过认证的请求可访问 否则重定向到   authc.loginUrllogout结束会话--></bean>

shiroFilter的配置:

<!--shiro filter 过滤器的配置 这里的id名称必须要和web.xml中的名称一致  --><bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"><!-- Shiro的核心安全接口,这个属性是必须的 --><property name="securityManager" ref="securityManager" /><property name="loginUrl"  value="/login.jsp" />   <property name="unauthorizedUrl" value="/user/unauthorized"/><!-- <property name="successUrl" value="/welcome.jsp" /> --><property name="filters"><map><!--退出过滤器--><entry key="logout" value-ref="systemLogoutFilter" /></map></property><property name="filterChainDefinitions"><ref bean="shiroFilterChainDefinitions"/></property></bean>

这样就实现了用户的logout,如果你还需要自定义一些东西,比如在登出的controller里边清空cookie或者是session,把return的返回值改成true就好了。

Shiro实现logout操作相关推荐

  1. Spring和shiro整合 logout 配置方式

    2019独角兽企业重金招聘Python工程师标准>>> 1. 普通的action中 实现自己的logout方法,取到Subject,然后logout这种需要在ShiroFilterF ...

  2. shiro 自定义logout路径

    ${adminPath}/logout = logout shiro 登出走 LogoutFilter 过滤器,登出默认重定向到redirecUrl这个地址(/) public class Logou ...

  3. Shiro logout 302重定向,shiro 302解决方案

    ================================ ©Copyright 蕃薯耀 2022-04-09 蕃薯耀的博客_CSDN博客 一.问题描述 当登录退出为Ajax请求时,使用Shir ...

  4. shiro学习总结(一)----初识shiro

    本系列内容大多总结自官网和张开涛的<跟我学Shiro> 一.shiro简介 1.1.shiro有什么用? shiro是一个功能强大使用简单的java安全框架,主要提供了五大功能: 1.认证 ...

  5. shiro教程(4)-shiro与项目集成开发

    1 shiro与项目集成开发 这里我们主要以用户登录的例子来演示,先给出一个时序图: 点击打开链接(点击查看) 1.1 shiro与spring web项目整合 shiro与springweb项目整合 ...

  6. shiro与springMVC整合

    注:该文基于springMVC已经配置好. 1. 架构预览 项目结构: shiro所需jar包: 2. 整合shiro 2.1 配置web.xml 注意,由于shiro的主要作用就是拦截判断,所以我们 ...

  7. Shiro框架:缓存、session会话、自定义FormAuthenticationFilter、RemenberMe

    上篇的地址:https://blog.csdn.net/a745233700/article/details/81350191 一.Shiro缓存--cacheManager: 针对上一篇授权的时候频 ...

  8. 大数据WEB阶段 shiro安全控制框架

    shiro安全框架 零.目录 问题引申 shiro介绍 shiro工作流程 使用shiro 进行登录操作 使用shiro进行权限管理 一. 问题引申 需要实现的功能: 用户没有登录的情况下 , 处理登 ...

  9. log中文乱码 springboot_springboot + shiro 权限注解、统一异常处理、请求乱码解决

    springboot + shiro 权限注解.统一异常处理.请求乱码解决 前篇 后台权限管理系统 20200808新版本更新 版本升级及内容优化版本,改动内容: 版本更新,springboot从1. ...

最新文章

  1. 海史密斯适应型领导力
  2. jyputer notebook 、jypyter、IPython basics
  3. CentOS7种搭建FTP服务器 1
  4. vue if判断_VUE学习记录2
  5. 云服务器如何链接本地打印机_利用FileZilla搭建云服务器FTP服务端和本地客户端...
  6. 如何在 Mac 上切换语言
  7. EFGrid ---- copy 属性
  8. 配置Hadoop开发环境(Eclipse)
  9. 雅虎“贱卖”启示录:不创新,就只有被淘汰
  10. 大数据智能推荐系统原理介绍
  11. Nature:肠道细菌能够调节果蝇运动行为
  12. 小白建设一个网站需要什么资料?完整网站建设流程今天告诉你!
  13. 【附源码】计算机毕业设计java-志愿者管理系统设计与实现
  14. 宁录哨兵机器人_能团灭X战警的哨兵机器人是漫威最强机器人吗?奥创:我不服!...
  15. 【最大公约数】欧几里得算法
  16. 【创作中心】自定义模板的使用
  17. redis关于hash的常用命令
  18. 关于浏览器兼容性的问题
  19. 第14章-Spring AOP通知(Advice)详解
  20. 不是吧阿sir,你不会还不知道Github可以当做Maven仓库吧

热门文章

  1. 400错误可能的原因
  2. 绿色债券数据集2016.01-2021.11年
  3. RFID-MFRC522射频识别模块,S50卡M1
  4. 第03章 Python的数据结构、函数和文件--Python for Data Analysis 2nd
  5. python求雅可比矩阵_用Python计算雅可比矩阵
  6. 非科班出身这么理解货币乘数
  7. Nginx系列1: 正向代理和反向代理、Nginx工作原理、Nginx常用命令和升级、搭建Nginx负载均衡
  8. onSubmit 使用
  9. Android职业规划
  10. MySQL math函数