服务器端security增加一个配置如下:

@Override
protected void configure(HttpSecurity http) throws Exception {
String loginPage = "/login";
http
.exceptionHandling()
.authenticationEntryPoint(new AjaxAuthenticationEntryPoint(loginPage))
.and()
.addFilterBefore(new LocaleFilter(localeResolver), UsernamePasswordAuthenticationFilter.class)
...
}
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint; import com.zhqn.sc.utils.CommonsUtils; public class AjaxAuthenticationEntryPoint extends LoginUrlAuthenticationEntryPoint{ public AjaxAuthenticationEntryPoint(String loginFormUrl) {
super(loginFormUrl);
} @Override
public void commence(HttpServletRequest request, HttpServletResponse response,
AuthenticationException authException) throws IOException, ServletException {
if (CommonsUtils.isAjax(request)) {
String redirectUrl = buildRedirectUrlToLoginPage(request, response, authException);
response.setHeader("redirectUrl", redirectUrl);
response.sendError(HttpServletResponse.SC_FORBIDDEN);
}else {
super.commence(request, response, authException);
}
}
}

客服端js设置:

  

  $(document).ajaxError(function(event,xhr,options,exc){
if(xhr.status == 403 && xhr.getResponseHeader("redirectUrl")) {
window.top.location.href = xhr.getResponseHeader("redirectUrl");
}
});

最新文章

  1. bean生命周期
  2. css3圆角(还有百分比设置椭圆) 阴影 字体
  3. 数据库 基础篇4(mysql语法---表)
  4. nodejs+express使用html和jade
  5. 在 Excel 中使用正则表达式进行查找与替换
  6. Struts—自定义一个简单的mystruct
  7. 【HDOJ】1225 Football Score
  8. FloatingActionButton 完全解析[Design Support Library(2)]
  9. NEU月赛Segment Balls(线段树)
  10. android最近心得整理
  11. css-缩写
  12. 理解WebKit和Chromium(电子书)
  13. Ansible详解(一)
  14. vue2.0笔记《二》组件
  15. 对于单页应用中如何监听 URL 变化的思考
  16. <web-view>中JSSDK
  17. Python- - -练习目录
  18. ASP.NET Core 启动流程图
  19. matplot读取文本文件画图
  20. Git同时使用不同平台代码仓库

热门文章

  1. String——字符串
  2. Flink 源码解析 —— 如何获取 ExecutionGraph ?
  3. python中下标和切片的使用
  4. exe4j打包--exe转安装包
  5. 带你剖析WebGis的世界奥秘----瓦片式加载地图
  6. 域名、主机名、网站名以及 URL 基础概念
  7. 用 Python 分析上网记录,发现了很多不可思议的事
  8. ID转名称到手方案01
  9. Jupter NotebooK学习
  10. Oracle数据库之SQLPLUS