关于自定义过滤器获取不到session问题
作者:MrBlackWhite 发布时间:2022-05-16 11:30:21
标签:自定义,过滤器,session
自定义过滤器获取不到session
根本原因,多个自定义过滤器执行顺序问题
问题
action请求中request对象为ShiroHttpServletRequest, 可以取到session内容
而在第一个自定义过滤器中request对象为requestfacade,取不到session内容
原因
session由shiro管理,凡是在shiro过滤器顺序之前的自定义过滤器都取不到session内容
解决办法
将shiro过滤器放在第一个位置
登录 * 取到的session为空
写了一个 *
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
/**
* 注册 *
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**.html").excludePathPatterns("/Ylogin.html","/Yindex.html","/YRegister.html");
}
}
判断有没有登录
然后那时候我这边session.getAttribute(“user”)一直为空
public class MyInterceptor implements HandlerInterceptor {
//在请求处理之前进行调用(Controller方法调用之前
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
System.out.println("开始请求地址拦截");
//获取session
HttpSession session = httpServletRequest.getSession();
if (session.getAttribute("user") != null)
return true;
httpServletResponse.sendRedirect("/Ylogin.html");
return false;
}
//请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后)
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
System.out.println("postHandle被调用");
}
//在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行(主要是用于进行资源清理工作)
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
System.out.println("afterCompletion被调用");
}
}
在另外页面能得到session的值
但是在 * 那里就session为null,烦了很久,以为是自己写错了 * ,搞了很久最后才知道,是login.js写错了。就是ajax的url写错了
$.ajax({
type: "POST",
url: "/user/doLogin",
dataType: "json",
data:user,
async:false,
success: function(res) {}
})
因为我以前地址写的是url:“http://127.0.0.1:8080/user/doLogin”,把前面的ip地址省略就行了,ip地址和localhost的区别
来源:https://blog.csdn.net/u011665991/article/details/80775508


猜你喜欢
- 系统需要用到一个导入excel文件的功能,使用poi组件常规方式读取excel时,内存耗尽,OutOfMemoryError,或者读取非常慢
- 简介设计模式是软件设计中的一种常见方法,通过定义一系列通用的解决方案,来解决常见的软件设计问题。其中,抽象工厂模式是一种非常常见的设计模式,
- 大家好哇,又是我,梦辛工作室的灵,今天来给大家讲解下如何实现 安卓的侧边弹窗,先大概讲下基本原理吧,其实很简单,就是一个进出动效,用 位移
- 什么是“异步调用”?“异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行
- 不知不觉这个春节也已经过完了,遗憾家里没网,没能及时给大家送上祝福,今天回到深圳,明天就要上班了,小伙伴们是不是和我一样呢?今天讲的是一个大
- 目录一、设置通知内容二、创建渠道三、设置通知栏的点击操作四、显示通知一、设置通知内容//CHANNEL_ID,渠道ID,Android 8.
- 1 前言为什么我们在使用SpringBoot框架开发Java Web应用需要引入大量的starter?例如,我们引入Redis就在Maven
- 目录前言hibernate-validator基本使用引入依赖编写需要验证对象验证对象属性是否符合要求验证规则空/非空验证bool时间数学字
- SpringBoot遇到的坑@Qualifier报红今天写项目的时候@Qualifier一直报红,排查半天后面才知道原来是idea生成项目的
- 此类的功能包括发送邮件,邮箱格式是否正确,和在不发送邮件的情况下判断邮箱用户名和密码是否正确,鉴于POP检查邮箱用户名和密码出现错误情况返回
- 最近项目中用到了service进行计时,在连接USB的情况下一切正常,但是拔掉USB后发现,手机进入休眠后service停止了工作。最后通过
- 预览效果图:需要权限:<uses-permission android:name="com.android.launcher
- mybatis-plus作为mybatis的增强工具,简化了开发中的数据库操作。一旦遇到left join或right join的左右连接,
- 背景公司的开发框架集成了附件本地存储,阿里云,华为云等,现项目有要求附件存储与应用部署环境不能是同一台服务器,也不能使用云存储,经过技术选型
- 在项目中用到了MapStruct,对其可以转换JavaBean特别好奇,因为之前都是使用Vo的方式手动set转换,但是接触到MapStruc
- 我们都知道在一些特殊的场景,我们需采用特殊的编码格式,如:UTF-8,但是系统默认的编码为ISO-8859-1那么我们就需要将编码转换为我们
- 本文实例为大家分享了shiro整合springboot前后端分离的具体代码,供大家参考,具体内容如下1、shiro整合springboot的
- 背景现行的文本编辑器大多都具备文本查询的能力,但是并不能直观的告诉用户两段文字的细微差异,所以对比工具在某种情况下,就起到了很便捷的效率。关
- 前言:Android 操作系统给每个进程都会分配指定额度的内存空间,App 使用内存来进行快速的文件访问交互。例如展示网络图片时,就是通过把
- 本文实例讲述了Java基于Swing实现的打猎射击游戏代码。分享给大家供大家参考。具体实现代码如下:package Game;import