Shiro实现logout操作
这里我们通过配置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操作相关推荐
- Spring和shiro整合 logout 配置方式
2019独角兽企业重金招聘Python工程师标准>>> 1. 普通的action中 实现自己的logout方法,取到Subject,然后logout这种需要在ShiroFilterF ...
- shiro 自定义logout路径
${adminPath}/logout = logout shiro 登出走 LogoutFilter 过滤器,登出默认重定向到redirecUrl这个地址(/) public class Logou ...
- Shiro logout 302重定向,shiro 302解决方案
================================ ©Copyright 蕃薯耀 2022-04-09 蕃薯耀的博客_CSDN博客 一.问题描述 当登录退出为Ajax请求时,使用Shir ...
- shiro学习总结(一)----初识shiro
本系列内容大多总结自官网和张开涛的<跟我学Shiro> 一.shiro简介 1.1.shiro有什么用? shiro是一个功能强大使用简单的java安全框架,主要提供了五大功能: 1.认证 ...
- shiro教程(4)-shiro与项目集成开发
1 shiro与项目集成开发 这里我们主要以用户登录的例子来演示,先给出一个时序图: 点击打开链接(点击查看) 1.1 shiro与spring web项目整合 shiro与springweb项目整合 ...
- shiro与springMVC整合
注:该文基于springMVC已经配置好. 1. 架构预览 项目结构: shiro所需jar包: 2. 整合shiro 2.1 配置web.xml 注意,由于shiro的主要作用就是拦截判断,所以我们 ...
- Shiro框架:缓存、session会话、自定义FormAuthenticationFilter、RemenberMe
上篇的地址:https://blog.csdn.net/a745233700/article/details/81350191 一.Shiro缓存--cacheManager: 针对上一篇授权的时候频 ...
- 大数据WEB阶段 shiro安全控制框架
shiro安全框架 零.目录 问题引申 shiro介绍 shiro工作流程 使用shiro 进行登录操作 使用shiro进行权限管理 一. 问题引申 需要实现的功能: 用户没有登录的情况下 , 处理登 ...
- log中文乱码 springboot_springboot + shiro 权限注解、统一异常处理、请求乱码解决
springboot + shiro 权限注解.统一异常处理.请求乱码解决 前篇 后台权限管理系统 20200808新版本更新 版本升级及内容优化版本,改动内容: 版本更新,springboot从1. ...
最新文章
- 海史密斯适应型领导力
- jyputer notebook 、jypyter、IPython basics
- CentOS7种搭建FTP服务器 1
- vue if判断_VUE学习记录2
- 云服务器如何链接本地打印机_利用FileZilla搭建云服务器FTP服务端和本地客户端...
- 如何在 Mac 上切换语言
- EFGrid ---- copy 属性
- 配置Hadoop开发环境(Eclipse)
- 雅虎“贱卖”启示录:不创新,就只有被淘汰
- 大数据智能推荐系统原理介绍
- Nature:肠道细菌能够调节果蝇运动行为
- 小白建设一个网站需要什么资料?完整网站建设流程今天告诉你!
- 【附源码】计算机毕业设计java-志愿者管理系统设计与实现
- 宁录哨兵机器人_能团灭X战警的哨兵机器人是漫威最强机器人吗?奥创:我不服!...
- 【最大公约数】欧几里得算法
- 【创作中心】自定义模板的使用
- redis关于hash的常用命令
- 关于浏览器兼容性的问题
- 第14章-Spring AOP通知(Advice)详解
- 不是吧阿sir,你不会还不知道Github可以当做Maven仓库吧