用户的访问权限过滤器,防止用户直接输入URL直接访问资源。

使用过滤器完成URL访问权限以及防止过滤掉CSS样式 过滤器URL权限全局过滤器过滤掉CSS与JS文件 URL权限 通过相对地址url判断是否项目名 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // place your code here //类型转换 HttpServletRequest req = (HttpServletRequ 阅读详情

刚写完用户的访问权限过滤器,基本实现了防止用户直接输入URL访问资源。如有不足请指正!

Java 代码:

Java代码  收藏代码
  1. package com.viano.filter;     
  2.     
  3. import java.io.IOException;     
  4.     
  5. import javax.servlet.Filter;     
  6. import javax.servlet.FilterChain;     
  7. import javax.servlet.FilterConfig;     
  8. import javax.servlet.ServletException;     
  9. import javax.servlet.ServletRequest;     
  10. import javax.servlet.ServletResponse;     
  11. import javax.servlet.http.HttpServletRequest;     
  12. import javax.servlet.http.HttpServletResponse;     
  13. import javax.servlet.http.HttpSession;     
  14. /**   
  15.  * 用户访问权限的过滤器   
  16.  * @author viano   
  17.  */    
  18. public class UsersFilter implements Filter {     
  19.     
  20.     public void destroy() {     
  21.         // TODO Auto-generated method stub     
  22.              
  23.     }     
  24.     
  25.     public void doFilter(ServletRequest request, ServletResponse response,     
  26.             FilterChain chain) throws IOException, ServletException {     
  27.         // 设置请求的字符编码     
  28.         request.setCharacterEncoding("UTF-8");     
  29.         // 设置返回请求的字符编码     
  30.         response.setCharacterEncoding("UTF-8");     
  31.         // 转换ServletRequest为 HttpServletRequest     
  32.         HttpServletRequest req = (HttpServletRequest) request;     
  33.         // 转换ServletResponse为HttpServletRequest     
  34.         HttpServletResponse res = (HttpServletResponse) response;     
  35.         // 获取Session     
  36.         HttpSession session = req.getSession();     
  37.         // 获取Session中存储的对象     
  38.         Object o = session.getAttribute("user");     
  39.         // 获取当前请求的URI     
  40.         String url = req.getRequestURI();     
  41.         // 判断Session中的对象是否为空;判断请求的URI是否为不允许过滤的URI     
  42.         if (o == null      
  43.             && !url.endsWith("login.jsp")     // 对URL地址为此结尾的文件不过滤     
  44.             && url.indexOf("login.do") < 0    // 对URL地址中包含此字符串的文件不过滤     
  45.             && url.indexOf("/images/") < 0) {     
  46.             res.sendRedirect(req.getContextPath() + "/login.jsp");     
  47.         } else {     
  48.             chain.doFilter(request, response);     
  49.             res.setHeader("Cache-Control","no-store");           
  50.             res.setDateHeader("Expires",0);        
  51.             res.setHeader("Pragma","no-cache");      
  52.             res.flushBuffer();     
  53.         }     
  54.              
  55.     }     
  56.     
  57.     public void init(FilterConfig filterConfig) throws ServletException {     
  58.         // TODO Auto-generated method stub     
  59.              
  60.     }     
  61.     
  62. }    

 

WEB.XML 代码:

Xml代码  收藏代码
  1. <!-- Filter 登陆过滤开始-->      
  2.  <filter>    
  3.   <filter-name>UsersFilter</filter-name>    
  4.   <filter-class>com.viano.filter.UsersFilter</filter-class>    
  5.  </filter>    
  6.  <filter-mapping>    
  7.   <filter-name>UsersFilter</filter-name>    
  8.   <url-pattern>/*</url-pattern>    
  9.  </filter-mapping>    
  10. <!-- Filter 登陆过滤结束-->    
Filter控制页面的访问权限 Filter控制页面的访问权限Filter控制页面的访问权限Filter控制页面的访问权限 立即下载

相关推荐

Python读取三菱PLC数据

3、支持自定义的数据读写操作。直接调用Read方法,可以读取到原生的byte数组,然后进行组合数据。1、每次的数据交互您都可以判断是否成功,如果您不判断,如果网络断开或是异常,会影响程序的执行。Qna3E协议的ascii类 MelsecMcAsciiNet。A兼容1E协议的二进制类 MelsecA1ENet。Qna3E协议的二进制类 MelsecMcNet。2、读写操作支持单个数和数组。

weixin_46744807的博客 1998

通过URL请求tomcat服务器直接下载文件

从一个服务器上下载文件,是很常见的情况。通常我们想通过URL来访问直接下载一个文件,对于Tomcat服务器而言,是非常简单的,Tomcat本身就是作为一个web服务器的,通过简单的配置就可以实现。 配置如下: 1、在tomcat服务器上的server.xml(tomcat\conf\)的文件中添加下面一行(如已存在,只需修改下内容): <Host name="localh...

xcbeyond|疯狂源自梦想,技术成就辉煌 7928

【OCCT】第3讲 OpenCasCade&VTK实现三维建模Demo

本文分享OpenCasCade&VTK共同实现三维建模Demo,希望对各位小伙伴有所帮助!1. 新建Visual Studio工程新建空项目添加main.cpp添加main函数2. 配置OpenCasCade & VTK 库配置包含路径:配置库文件:添加链接库:添加运行环境:注意:VTK库的版本要与编译OpenCasCade库时选择的版本一致,否则会出错!

qq_40041064的博客 779

Springmvc开发中使用filter过滤器来防止未登录的情况下通过url直接访问请求页面

在实际开发中,我们的程序都是需要用户登录之后才能进入程序进行相关操作,为了避免用户在未登录的情况下直接通过输入url进入我们的主功能页面,那么我们就要对用户的所有请求进行有一个过滤操作,下面是我在springmvc开发中使用的过滤请求方式的代码以及详细注释: (整理不易,参考使用,记得点赞) 1.首先配置web.xml,里面的地址是我们要用来过滤的LoginFilter.java文件的访问地址,中...

大房子爱生活的博客 3748

ur3手眼标定+realsenseL515

知乎 csdn

AI_future的博客 978

AI辅助专利撰写实战:用Codex 30分钟生成发明专利初稿

这次我们来看一个用 Codex 从零开始撰写发明专利的实战项目。对于技术研发人员、产品经理或初创团队来说,专利申请是保护创新成果、构建技术壁垒的关键一步。然而,撰写一份高质量的专利申请书,尤其是权利要求书和说明书,往往需要专业的法律和技术语言,耗时耗力。这个项目演示了如何利用 AI 工具 Codex,在短时间内生成一份结构完整、逻辑清晰、具备授权潜力的专利申请文件初稿。 整个过程的核心不是让 AI 完全替代专利代理人,而是将其作为强大的“技术翻译”和“内容生成”助手。它能将你的技术构思、流程图、核心算法或产

weixin_32181267的博客 413

tomcat 下的虚拟目录 禁止通过url访问到文件列表

tomcat配置了虚拟目录,发现通过url能够直接访问目录下的文件列表,而同事的却不能直接访问。解决方法: 将web.xml下的: 红色包括的“true”改成“false”即可

puzzel110的专栏 3357

Sigrity System Explorer Transient Analysis模式进行瞬态仿真分析操作指导-差分信号

Sigrity System Explorer Transient Analysis模式可以用于瞬态仿真分析,通过搭建简易拓扑用于前仿真分析通道的时域性能,下面搭建一个简易的差分拓扑进行说明,以下图为例,准备好发送接收端的IBIS模型, (ibis_se.ibs,本例发送接收端都使用相同的IBIS模型),以及传输线的S参数模型(welement_se.sp)最上方的图形界面是传输线的模型,本例是一个上下都有参考平面的带状线,右侧的梯形是蚀刻角度,根据W1和W2以及铜厚来确定。

weixin_54787054的博客 440

浏览器输入URL地址后前端页面的生命周期

浏览器输入URL地址后前端页面的生命周期

随风浅入画 575

EXCEL VBA从入门到精通 第一章:VBA入门

在VBA中,需要使用关键字Dim来定义一个变量,后面跟上变量名和变量的数据类型。例如,下面的代码定义了一个整型变量x和一个字符串变量name在VBA中,使用关键字Const来定义常量,后面跟上常量名和常量的值。例如,下面的代码定义了一个整型常量MAX_NUM和一个字符串常量MESSAGE需要注意的是,常量一旦被定义,其值就不能被改变。

1万+

SAP CPI 如何代理第三方接口?

代理接口是指在系统 A 和系统 B 之间引入一个中间层(如 SAP CPI),由中间层负责接收来自系统 A 的请求,进行必要的处理或转换,然后将请求转发给系统 B。由于 OData 服务通常使用 JSON 格式的数据,而某些内部系统可能需要 XML 格式,因此我们添加一个 JSON 到 XML 的转换器,以确保数据格式的兼容性。为了确保返回的数据格式符合内部系统的要求,添加一个 XML 到 JSON 的转换器,将 OData 服务的响应从 XML 转换为 JSON。在集成包中,添加一个新的集成流,命名为。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1748

过滤器实现URL拦截,跳转URL

过滤器实现URL拦截,跳转URL 一,背景 业务存在pc和pad两个客户端,pc已经上线。并且pc和pad大部分的接口都可以复用,为了避免重复的代码写2份(即相同的controller),所以目标是pc和pad共用controller,至于pad新的接口,则pad专属。 二,实现 为了实现pc和pad接口公用,pad会在url上传入特定的前缀,比如/pad。 使用过滤器,在DispatcherServlet#doDispatch方法执行前,将url进行替换。 AbstractHandlerMethodMap

ceshiyuan001的博客 5912

西门子TP900精智系列触摸屏和三菱Q系列PLC以太网通信的组态步骤

西门子TP900精智系列触摸屏和三菱Q系列PLC以太网通信的组态步骤

Robot_PLC_HMI_Automation 6098

通过过滤器Filter来完成url访问权限限制

1.新建过滤器类: package com.xiami.manager.filter;import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.Servl

passport_daizi的博客 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

利用Filter与Session实现登录用户可以访问资源,未登录用户禁止访问

案例目标 情景:系统中的某些页面只有在正常登陆后在可以访问,用户请求这些页面是,需要先检查Session中有无该用户的信息,但是在               所有必要的页面上加上对session的判断相当麻烦,因此利用filter实现对资源权限的统一管理 方案:编写一个检测使用户是否登录的过滤器,若未登录,则重定向到登录界面 要求:1.session中的键保存在配置文件中        ...

qq_23937341的博客 4836

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

javaweb 过滤器(Filter)感悟

过滤器的主要功能:在浏览器访问指定网站前进行筛选,经过过滤器之后传入指定网站。 过滤器的应用范围:1:统一处理Servlet的中文乱码。 2:屏蔽敏感词 3:控制浏览器的访问权限。 过滤器的基本配置: 在src下新建包名,在包名建立class类。然后实现Filter接口(此Filter接口为javax.servlet包下的接口),并且实现dofilt方法。此过滤器是为了将这项目的所有servlet都进行设置成UTF-8格式 过滤器在web.xml的配置: 配置filter和配置ser...

qq233423534的博客 455

Tomcat项目使用过滤器拦截所有页面后,无法显示图片

使用过滤器拦截所有页面时遗留下来的问题:   Tomcat项目使用过滤器将所有页面(除了登录页面)都设置访问权限,防止用户通过URL绕过登录步骤,非法访问那些受限的页面资源。这个将所有页面都通过过滤器拦截的目的是实现了,但是新的问题伴随而来。   当我调试时,出现了如下现象:   可以看到,我的登录页面的图片没有加载进来,使用谷歌浏览器的调试工具,可以看到不仅仅是我的图片没有加载进来,连js和c...

Nebula_DIX的博客 1850

Spring Security 用户授权与动态权限管理

本文介绍了如何使用 Spring Security 配置用户授权,并实现动态权限管理。通过结合静态权限控制和动态权限决策机制,我们能够灵活地管理和控制用户对系统资源的访问权限。动态权限管理为复杂的权限需求提供了更高的灵活性,而 Spring Security 提供的强大功能使得我们能够构建安全、可靠的授权系统。

2301_79555009的博客 1531

LDAP禁止匿名访问

LDAP默认是允许用户匿名访问的,如下图:在使用工具连接时,勾选匿名绑定后,不需要输入UserDN和密码就可能连接到LDAP服务器,但是只能进行read及search操作。不能做任何的修改及删除操作。 禁止匿名访问的方法: 1、删除匿名访问控制指令 2、修改匿名访问控制指令(修改anyone为all) ======================================...

weixin_34121282的博客 3521

Nginx+ LUA实现对Ngin下html文件夹内资源的动态访问认证

现有情况是公司以Nginx做文件服务器,随着用户越来越多,项目越来越多,出现任意用户都可以访问所有文件的问题。想要对Nginx下的文件进行访问的控制,基于用户名和密码的访问控制太单一,无法满足需求。因此设计了每次都有后端动态生成url的方式,让用户访问,类似于阿里云OSS的访问方式。采集Nginx+Lua模块的办法。验证方法使用的md5和时间双重验证 准备 Centos 7.5 LuaJIT...

做GIS梦的人 1428

003-基于URL的权限管理[不使用shiro]

一、基于url权限管理流程【实现步骤】   基于url拦截是企业中常用的权限管理方法,实现思路是:将系统操作的每个url配置在权限表中,将权限对应到角色,将角色分配给用户,用户访问系统功能通过Filter进行过虑,过虑器获取到用户访问的url,只要访问的url是用户分配角色中的url则放行继续访问。 二、环境搭建以及核心代码 https://github.com/bjlh...

dilv4062的博客 184

企业级管理平台横向越权问题及防护

横向越权是一种常见的安全漏洞,可能导致严重的数据泄露和篡改问题。通过采用统一的 URL 标准格式、保证userId的可靠性、实现全局防护过滤器以及按需进行资源防护,可以有效防止横向越权的发生。在实际开发过程中,开发者应始终将安全性放在首位,确保系统能够抵御各种安全威胁。至此,本次分享到此结束啦!!!

asdurt的博客 1236

javaWeb-Filter过滤器的应用

Filter简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 Filter应用案例 在本案例中,过滤器重要是为了防止用户在未登录的状态下直接访问主页。 需要用到的类: LoginServlet(实现登录功能) 在这里插入代码片pu

一名编程小白的Java学习日志 322
上一篇: redis使用watch秒杀抢购思路
下一篇: 电商秒杀系统设计分析
大树叶
博客等级 码龄12年 1171粉丝 664原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值