shiro自定义拦截器判断是否是ajax请求

    科技2024-05-18  90

    @Log4j2 public class AuthFilter extends UserFilter { /** * 判断用户没有登录的时候发出需要权限的请求会跳转到这个方法 * * @param request * @param response * @throws IOException */ @Override protected void redirectToLogin(ServletRequest request, ServletResponse response) throws IOException { HttpServletRequest servletRequest = (HttpServletRequest) request; //判断是否是ajax请求 String header = servletRequest.getHeader("X-Requested-With"); if (header != null && "XMLHttpRequest".equals(header)) { log.info("-------------------这是一个ajax请求-----------------"); //判断是否登录 boolean authenticated = SecurityUtils.getSubject().isAuthenticated(); if (!authenticated) { //这个方法设置发送到客户端的响应的内容类型,此时响应还没有提交,给出的内容类型可以包括字符编码说明。 response.setContentType("application/json;charset=UTF-8"); response.getWriter().print(JSONUtil.toJsonStr(Result.fail("请先登录!"))); } } else { //web请求重定向到登录页面 super.redirectToLogin(request,response); } } }
    Processed: 0.020, SQL: 8