使用shiro框架,注销问题的解决

在使用shiro框架的时候,有时候会因为登录问题找不到注销的controller。所以会报404的错误,下面是解决办法:

1.首先写一个类SystemLogoutFilter继承LogoutFilter类,具体代码如下,注意要贴@Service标签:

import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import org.apache.shiro.session.SessionException;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.web.filter.authc.LogoutFilter;
import org.springframework.stereotype.Service;

/**
* @author Abby
*
*/
@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);
String redirectUrl="/login.jsp";
System.out.println(redirectUrl);

try {

subject.logout();

} catch (SessionException ise) {

ise.printStackTrace();

}

issueRedirect(request, response, redirectUrl);
//返回false表示不执行后续的过滤器,直接返回跳转到登录页面
return false;
}

}

2.需要在shiro配置文件里面添加一些新的配置,具体配置如下:

<property name="filters">
<map>
<entry key="logout" value-ref="systemLogoutFilter" />
</map>
</property>

<property name="filterChainDefinitions">
<value>
/logout=logout
</value>
</property>

 

转载于:https://www.cnblogs.com/yinghuanan/p/9441432.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

介绍“又一个” Cloud Foundry Gradle插件

在与两个同事&#xff08;感谢Mark Alston &#xff0c; Dave Malone &#xff01;&#xff09;一起使用自动Jenkins管道部署Cloud Foundry应用程序的过程中&#xff0c;我决定尝试编写Gradle插件来执行一些通常需要完成的任务使用命令行Cloud Foundry Client完成 。 介绍带有…

卓金武——从数学建模到MATLAB

卓金武——从数学建模到MATLAB 2013-9-4 09:48| 发布者: ilovematlab| 查看: 9647| 评论: 40 摘要: 人物简介——卓金武&#xff08;Steven&#xff09;&#xff0c;MathWorks公司中国区应用工程师。在科学计算、定量优化、数学建模和数据挖掘领域拥有8年经验。曾3次获全国大学…

[Java开发]打印当前路径到控制台

开发时候&#xff0c;遇到了系统找不到配置文件的情况&#xff0c;定位到文件路径的问题之后&#xff0c;选择将当前路径打印到控制台。 File directory new File("");//设定为当前文件夹 try{ System.out.println(directory.getCanonicalPath());//获取标准的路径 …

latex中report目录_LaTeX目录格式控制

章节结构控制章节层次一个文档的最高层章节可以是part&#xff0c;也可以没有part直接是chapter/section。除了part以外&#xff0c;只有在上一层章节存在时&#xff0c;才可以使用下一层章节。章节层次示意图如下&#xff0c;方框代表文档类型&#xff0c;圆圈代表章节层次。对…

诸葛亮给子书

夫君子之行&#xff0c;静以修身&#xff0c;俭以养德&#xff1b;非澹泊无以明志&#xff0c;非宁静无以致远。   夫学须静也&#xff0c;才须学也&#xff1b;非学无以广才&#xff0c;非志无以成学。   怠慢则不能励精&#xff0c;险躁则不能冶性。   年与时驰&…

conda 安装mysql_centos7安装mysql

一、安装YUM Repo1、由于CentOS 的yum源中没有mysql&#xff0c;需要到mysql的官网下载yum repo配置文件。官方网址&#xff1a;https://dev.mysql.com/downloads/repo/yum/下载命令&#xff1a;wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm2、…

智能批处理

我们都有多少次听说“分批处理”会增加延迟&#xff1f; 作为对低延迟系统充满热情的人&#xff0c;这让我感到惊讶。 以我的经验&#xff0c;正确完成批处理不仅可以提高吞吐量&#xff0c;还可以减少平均延迟并保持一致。 那么&#xff0c;批处理如何神奇地减少延迟呢&#x…

cogs 76. [NOIP2007] 统计数字

【问题描述】 某次科研调查时得到了n个自然数&#xff0c;每个数均不超过1500000000(1.5*10^9)。已知不相同的数不超过10000个&#xff0c;现在需要统计这些自然数各自出现的次数&#xff0c;并按照自然数从小到大的顺序输出统计结果。 【输入格式】 输入文件pcount.in包…

javaweb之Filter详解

一、概念&#xff1a;Filter也称之为过滤器&#xff0c;它是Servlet技术中比较激动人心的技术&#xff0c;WEB开发人员通过Filter技术&#xff0c;对web服务器管理的所有web资源&#xff1a;例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截&#xff0c;从而实现一些…

pause容器作用_Kubernetes学习之pause容器

根据代码看到,pause容器运行着一个非常简单的进程,它不执行任何功能,一启动就永远把自己阻塞住了,它的作用就是扮演PID1的角色,并在子进程称为"孤儿进程"的时候,通过调用wait()收割这个子进程,这样就不用担心我们的Pod的PID namespace里会堆满僵尸进程了,这也是为什么…

Spring Integration –轮询文件的创建和修改

1引言 文件支持是Spring Integration与外部系统通信的另一个端点。 在这种情况下&#xff0c;它提供了几个组件来读取&#xff0c;写入和转换文件。 在这篇文章中&#xff0c;我们将编写一个监视目录的应用程序&#xff0c;以便读取其中的所有文件。 具体而言&#xff0c;它执行…

为什么需要消息队列MQ

主要原因&#xff1a;是在高并发情况下&#xff0c;由于来不及同步处理&#xff0c;请求往往会发生堵塞&#xff0c;比如诸多的insert、update之类的请求同时到达mysql&#xff0c;直接导致无数的行锁表锁&#xff0c;甚至最后请求会堆积很多&#xff0c;从而触发大量的too man…

数据库连接池的使用

关于数据库连接池的使用&#xff0c;首先我们要明白我们为什么要用它&#xff0c;对应普通的数据库连接操作&#xff0c;通常会涉及到以下一些操作是比较耗时的&#xff1a; 网络通讯&#xff0c;涉及到网络延时及协议通讯身份验证&#xff0c;涉及安全性检查连接合法性检查&a…

mysql基础知识整理_MYSQL基础知识整理

目录1、客户端命令2、服务器端命令3、常用数据类型3.1、数值型3.2、字符型3.3、日期时间型3.4、布尔型4、mysql的执行方式5、用户管理1、客户端命令客户端命令不需要以分号结尾 &#xff0c;如果想获取客户端命令的帮助信息则&#xff1a;mysql> helpmysql常用客户端命令如下…

python 学习DAY11

动态传参 形参* # 聚合所有位置参数的实参 实参* #打散一个位置参数成多个 形参** #聚合所有关键词参数 实参** #打散实参的关键词参数 命名空间 第一种 内置名称空间 第二种 全局名称空间 第三中 局部名臣空间 作用域 全局作用域(是内置的,全局也可以调用) 局部作用域(局部可调…

【网络技术设备安全】BGP 基础与概述-2-中转 AS 中的 IBGP 路由传递

0x01 中转 AS 中的 IBGP 路由传递 参考该图&#xff1a; 上图&#xff0c;我们模拟一个 1.0 的路由通过 AS 65101 来传递 1&#xff1a;通过图可知&#xff0c;A 与 B 之间的 Peer 为 EBGP&#xff0c;B 与 E 之间为 Peer IBGP&#xff0c;E 与 F 之间为 Peer EBGP 邻接 2&a…

python函数变量的作用域_学不会的Python函数——变量作用域

1. LEGB函数Python中&#xff0c;程序的变量并不是在哪个位置都可以访问的&#xff0c;访问权限决定于这个变量是在哪里赋值的。我们先来看一段代码。上述代码有两个变量a&#xff0c;当在test函数中输出变量a的值是&#xff0c;为什么输出的是20&#xff0c;而不是10呢&#x…

浅谈JSP表单中的form传值

不同JSP页面之间、不同action之间,以及JSP中form与其对应的action之间,JSP中form与其不对应的action之间如何传值。本文将介绍JSP表单中的form传值。 JSP表单中的form传值 页面间链接和数据传递的三种方式 &#xff08;1&#xff09;通过JSP表单form将数据提交到下一个页面&…

react.js从入门到精通(一)

web端三大框架react、vue和angular&#xff0c;下面是对react.js的一些总结。 一、环境搭建 1、npm搭建项目 推荐使用npm搭建项目环境&#xff0c;如果网速过慢&#xff0c;可是使用cnpm进行项目的搭建&#xff08;cnpm是淘宝的npm镜像&#xff0c;与npm有些差异&#xff0c;有…

java 代码冲突检测_Java中常见的代码冲突

java 代码冲突检测在工作中&#xff0c;最近我对现有Java项目进行了代码清理。 完成该练习后&#xff0c;我可以看到在代码中一次又一次地发生了一组常见的代码冲突。 因此&#xff0c;我想出了此类常见违规的清单&#xff0c;并与同行共享&#xff0c;以提高安全意识&#xff…