spring security 处理session 超时跳转到登录页面
2016-03-30 21:55
666 查看
Ajax请求,seesion超时
分析:当session超时的时候spring-security会跳转到登录页面。所以只要在登录的controller里面对请求作出判断,如果是异步请求则在response header中添加标识,在前台通过js跳转到登录页面。
后台判断代码:
if(request.getHeader("x-requested-with") != null && request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){
response.setHeader("sessionstatus", "timeout");
}
前台js代码:
$("#saveBtn").click(function(){
var _url = getRootPath() + "/userController/save";
$.ajax({
url : _url,
async : false,
type : "POST",
dataType : "json",
data : $("form:first").serialize(),
complete : function(XMLHttpRequest, textStatus){
var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); //通过XMLHttpRequest取得响应头,sessionstatus,
if(sessionstatus=="timeout"){
alert("登录超时,请重新登录!");
//如果超时就处理 ,指定要跳转的页面
window.location.replace(getRootPath() + "/loginController/login");
}
},
success : function(data){
if(data && data.success){
easyShow(data.msg);
}
}
});
});
Ajax请求,seesion超时
分析:当session超时的时候spring-security会跳转到登录页面。所以只要在登录的controller里面对请求作出判断,如果是异步请求则在response header中添加标识,在前台通过js跳转到登录页面。
后台判断代码:
if(request.getHeader("x-requested-with") != null && request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){
response.setHeader("sessionstatus", "timeout");
}
前台js代码:
$("#saveBtn").click(function(){
var _url = getRootPath() + "/userController/save";
$.ajax({
url : _url,
async : false,
type : "POST",
dataType : "json",
data : $("form:first").serialize(),
complete : function(XMLHttpRequest, textStatus){
var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); //通过XMLHttpRequest取得响应头,sessionstatus,
if(sessionstatus=="timeout"){
alert("登录超时,请重新登录!");
//如果超时就处理 ,指定要跳转的页面
window.location.replace(getRootPath() + "/loginController/login");
}
},
success : function(data){
if(data && data.success){
easyShow(data.msg);
}
}
});
});
相关文章推荐
- Java集合框架
- 针对一个文件夹压缩成zip文件
- 【java】final和final static的区别
- 成为顶级Java程序猿必看的5本书
- 不使用comm.jar的java串口通讯工具类,使用自己编写的dll类
- TreeMap
- Struts2和Spring3.2 整合时。Struts2 Action 无法通过get,set方式获取前台form传的值
- springMVC的简单配置
- Spring Ioc set注入
- Spring学习——(五)Spring中数据源的配置
- 《深入理解java虚拟机》读书笔记:对象的内存布局
- JPA hibernate spring repository pgsql java 工程(三):数据表分区与自动创建:策略
- Java中的“流”的flush方法
- mysql编码和Java编码相应一览表
- java 中易混淆的知识点1
- Java ActiveMQ 讲解(一)理解JMS 和 ActiveMQ基本使用
- idea破解方案之搭建本地破解
- Java数据库连接池的几种配置方法(以MySQL数据库为例)
- SPRING JMS 整合ACTIVEMQ
- java设置classpath,path和java_home的作用