java拦截ajax请求_java Servlet Filter 拦截Ajax请求

/*** 版权:Copyright 2016-2016 AudaqueTech. Co. Ltd. All Rights Reserved.

* 描述:

* 创建人:赵巍

* 创建时间:2016年11月28日

* 修改人:

* 修改时间:

* 修改内容:*/

packagecom.thinkgem.jeesite.common.filter;importjava.io.IOException;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.ServletException;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importorg.apache.shiro.SecurityUtils;importorg.apache.shiro.subject.Subject;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;public class CustomFilter implementsFilter

{private final Logger logger =LoggerFactory.getLogger(getClass());privateString failureUrl;

@Overridepublic void init(FilterConfig filterConfig) throwsServletException {//empty implement

}

@Overridepublic voiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain)throwsIOException, ServletException {

HttpServletRequest httpRequest=(HttpServletRequest) request;

HttpServletResponse httpResponse=(HttpServletResponse) response;

HttpSession session=httpRequest.getSession();//String userid = (String)session.getAttribute("userid");

Subject subject =SecurityUtils.getSubject();/*if(uri.contains("/user/login") || uri.contains("/user/regPage") ){

chain.doFilter(request, response);

}else{*/

if(subject.getPrincipals() == null){

String contextPath=httpRequest.getContextPath();

String redirect=contextPath ;//ajax session 过期处理//1:判断是否是ajax请求

if (httpRequest.getHeader("x-requested-with") != null

&& "XMLHttpRequest".equalsIgnoreCase(httpRequest.getHeader("x-requested-with"))) {//向http头添加 状态 sessionstatus

httpResponse.setHeader("sessionstatus","timeout");

httpResponse.sendError(518, "session timeout.");/*httpResponse.setStatus(403);*/

//向http头添加登录的url

httpResponse.addHeader("loginPath", failureUrl);

chain.doFilter(request, response);

logger.debug("ajax request");return;

}

httpResponse.sendRedirect(redirect);return;

}else{

chain.doFilter(request, response);

}/*}*/}

@Overridepublic voiddestroy() {//empty implement

}publicString getFailureUrl() {returnfailureUrl;

}public voidsetFailureUrl(String failureUrl) {this.failureUrl =failureUrl;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值