Javaweb用过滤器写防跳墙功能和退出登录
创始人
2024-11-11 13:09:27
0

一、什么是防跳墙功能:

        防跳墙功能通常指的是防止用户在未完成认证的情况下直接访问受保护资源的功能。在 Web 开发中,这种功能通常被称为“登录拦截”或“身份验证拦截”。

        在 Spring MVC 中,实现这种功能通常使用的是“拦截器”(Interceptor)。拦截器可以用来执行预处理或后处理任务,比如身份验证、权限控制等。

二、如何与过滤器结合:

将防跳墙功能写进过滤器中,就相当于所有跳转都要经过过滤器这一层,这样我们就只需要写一次防跳墙就能控制整个项目的跳转。

三、具体操作: 

首先我们要创建一个过滤器,具体的写法在这篇文章:https://blog.csdn.net/daibadetianshi/article/details/140869629?spm=1001.2014.3001.5501icon-default.png?t=N7T8https://blog.csdn.net/daibadetianshi/article/details/140869629?spm=1001.2014.3001.5501

 创建完过滤器就要开始写防跳墙功能:

我们的防跳墙功能建立在session的基础上,先获取用户的session值再根据这个值进行判断;

 //获取已有的session会话,即使没有也不自动创建         HttpSession session = ((HttpServletRequest) servletRequest).getSession(false);         //获取浏览器导航的地址         String requestURI = ((HttpServletRequest) servletRequest).getRequestURI();         //对网址经行判断

上面的代码完成了过滤器获取session的值和浏览器跳转的网址;

 拿到这两个值,我们先对网址进行区分把不需要权限的页面放出来,让用户不会被卡。

先判断是否为不用卡的跳转直接放行:

 不会被卡的跳转一般都是登录跳转,验证码跳转,退出登录跳转,登陆失败跳转,登录界面等等。

 if (requestURI.endsWith("/huanying.jsp")||requestURI.endsWith("/code")||requestURI.endsWith("/usererror")||requestURI.endsWith("/showlist")                 ||requestURI.endsWith("/httpuser")         ){             //放行             filterChain.doFilter(servletRequest,servletResponse);                     }

 再判断session的值是否够访问的权限:

else if (session==null||session.getAttribute("user")==null){             //初始化write             PrintWriter writer = servletResponse.getWriter();             //被拦截时的弹窗,将跳转到登陆界面             writer.write("");         }

如果session为空或不存在,则可以判断用户是非法跳转,没有访问权限。用弹窗告知并跳转到登陆界面。 

当session存在且有值时,就说明有权限,是正常登录,过滤器放行。

else if (session !=null &&session.getAttribute("user")!=null){             //放行             filterChain.doFilter(servletRequest,servletResponse);         }

 四、退出登录:

退出登录就是取消相应的权限,也就是将session变为空。

 //获取session         HttpSession session = req.getSession();         //将session消除         session.invalidate();

这样我们的session会话就被销毁了。 

 PrintWriter writer = resp.getWriter();         writer.write(                 ""         );     }

这样就成功退出了。 

相关内容

热门资讯

这一现象值得深思!微信呢微乐游... 这一现象值得深思!微信呢微乐游戏辅助脚本(辅助)原来是真的有辅助神器(有挂教学)1、微信呢微乐游戏辅...
有玩家发现!四海茶馆游戏辅助(... 有玩家发现!四海茶馆游戏辅助(辅助)其实真的是有辅助工具(真的有挂)1、完成四海茶馆游戏辅助辅助器v...
黑科技辅助挂!青龙辅助器(辅助... 黑科技辅助挂!青龙辅助器(辅助)一贯是有辅助挂(证实有挂)1、让任何用户在无需青龙辅助器安装教程第三...
软件辅助挂!人海大厅脚本(辅助... 软件辅助挂!人海大厅脚本(辅助)切实真的是有辅助技巧(发现有挂)1、在人海大厅脚本插件功能辅助器技巧...
2026版攻略!潮汕汇游戏辅助... 2026版攻略!潮汕汇游戏辅助(辅助)竟然存在有辅助挂(有挂技巧)暗藏猫腻,小编详细说明潮汕汇游戏辅...
这一问题亟待解决!蛮籽麻旺重庆... 这一问题亟待解决!蛮籽麻旺重庆辅助(辅助)真是是真的有辅助工具(有挂方式)1、操作简单,无需蛮籽麻旺...
据了解!吉祥填大坑小程序辅助(... 据了解!吉祥填大坑小程序辅助(辅助)总是是真的有辅助挂(真的有挂)1、不需要AI权限,帮助你快速的进...
2026版复盘!科米台州辅助器... 2026版复盘!科米台州辅助器(辅助)总是存在有辅助神器(有挂辅助)一、科米台州辅助器游戏安装教程牌...
黑科技教程!微乐广西小程序开发... 黑科技教程!微乐广西小程序开发(辅助)好像真的有辅助方法(果真有挂)1、让任何用户在无需微乐广西小程...
2026版教学!微信呢小程序辅... 2026版教学!微信呢小程序辅助器(辅助)竟然是有辅助脚本(有挂教学)1)微信呢小程序辅助器免费钻石...