关于自定义过滤器获取不到session问题
作者:MrBlackWhite 时间:2022-05-16 11:30:21
自定义过滤器获取不到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
标签:自定义,过滤器,session
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
WPF实现3D翻牌式倒计时特效
2021-11-11 16:08:21
![](https://img.aspxhome.com/file/2023/0/87050_0s.gif)
代码分析Android实现侧滑菜单
2022-04-02 16:38:45
![](https://img.aspxhome.com/file/2023/1/111671_0s.gif)
Android 6.0调用相机图册崩溃的完美解决方案
2022-10-13 02:00:39
unity AudioSource播放完声音后要执行的函数或条件操作
2021-07-04 21:46:37
![](https://img.aspxhome.com/file/2023/0/104330_0s.jpg)
辨析Java中的String与StringBuffer及StringBuilder字符串类
2023-08-21 19:59:50
Android之禁止ViewPager滑动实现实例
2022-03-17 23:55:40
![](https://img.aspxhome.com/file/2023/0/88100_0s.jpg)
C#中常用的正则表达式
2023-10-15 21:10:42
Java编程泛型限定代码分享
2023-11-09 17:46:32
Java编程调用微信接口实现图文信息推送功能
2023-11-25 07:20:47
java网络编程基础知识介绍
2023-01-10 20:37:44
![](https://img.aspxhome.com/file/2023/7/77987_0s.jpg)
C#的String和StringBuilder详解
2022-06-21 09:51:31
![](https://img.aspxhome.com/file/2023/4/98174_0s.gif)
spring mvc利用ajax向controller传递对象的方法示例
2022-10-22 15:06:13
Springboot微服务打包Docker镜像流程解析
2022-02-23 19:39:00
Java并发内存模型详情
2023-06-04 23:50:23
![](https://img.aspxhome.com/file/2023/9/79219_0s.png)
完美实现ExpandableListView二级分栏效果
2021-07-18 20:04:13
![](https://img.aspxhome.com/file/2023/1/92591_0s.jpg)
Android 通过productFlavors实现多渠道打包方法示例
2022-08-27 16:04:35
![](https://img.aspxhome.com/file/2023/5/91715_0s.png)
C#实现控制电脑注销,关机和重启
2021-10-28 14:21:15
![](https://img.aspxhome.com/file/2023/9/76429_0s.png)
Java 散列存储详解及简单示例
2022-06-30 23:19:52
c# socket网络编程接收发送数据示例代码
2021-08-31 06:14:13
![](https://img.aspxhome.com/file/2023/4/102174_0s.jpg)
4种Android屏幕自适应解决方案
2022-09-09 07:28:42