内R工科技2020年•第[期Java Web中过滤器实现系统权限控制的研究◊云南大学旅游文化学院 吕 迪闫青霞JavaWeb传统的权限控制流程繁琐,
可维护性低。过滤器也可以实现权限控
制,栩较传统方式具有快捷和高效的特 点。本文阐述权限控制的原理和流程,
交由服务器进行处理。响应数据返回用户 之前也需要融过滤擬行数据的分析和
处理,完成之后再交给客户端置过滤器 的执行过程如图1所示。2过滤器的使用场景
具体方法是接收数据时所有的数据是加密
的,请求响应之后在过滤器中进行拦截和
解密;响应数据时所有的数据向客户端或
者Web响应,先葩删中进行拦勵口密
尝试一种通过滤器实现权限控制的方
法,经过实践验证其通用性。之后再响应。2.4词汇过滤现在的社交网站免不了对敏感词汇内
过滤器可以在很多运用场景中使用, 例如用户认证和授权管理、统计web应用
在访问网页过程中,系统对访问用户
进行权限控制赶f不可避免的问题。早
的访问量和访问命中率、生成访问报告、
实现web应用的日志处理功能、实现数据 压缩功能、对传输的数据进行加密、实现 xml文件的XSLT的转换等。下面仅对几种
容进行过滤,以维护健康的网络环境。使
用过滤器设置需过滤的词汇,当用户发送
数据的时融行数据删,如果发虾恰 当的词汇就进行相应的过滤和处理,从源
期的技术通过Servlet对权限进行控制,程
序员需要把控制权限的相关代码写到 Jsp文件里面,另外还需通过特殊的链接
场景的釘进行徳。2.1用户认证和授权管理
头去除敏感词汇。3创建过滤器的方法添加JavaScript代码对权限进行判断和控
制。随着技术的发展,近些年开发者可以 通过开源框架直接实现访问权限控制,一
为了保证信息的安全使用,降低维护
成本,有效保证用户身份信息的安全性和
舷一他滤器方法就是创建一个类 去实现javax.servletFilter接口即可,这个
定@«±提升了开卿率。然而,这些框
最好的办法是虹用户信息管理
的体系。用户信息资源在所有的场景中能 够得到统一的认证和授权。网页中用户角
接口中定义了三种方法:init(FnterCoufig filterConfig)、destroy()^ doFilter(Servlet Request request, ServletResponseresponse, FUterChain chain) o 其中init()方法用于初
架并不能直接使用,往往需要添加相关的 系统权限配置,这样使得系统后期的维护
变麻烦叫经过Java官方更新之后,为用
色繁多,每个页面都设置访问权限的代码 过于繁琐,这种场景中我们就可以使用过
滤器进行控制管理。用户发出的请求都会 竝截下癥行分析和处理,具体思倾 是比较用户请求的链接是否在规定的访问
户提供了过滤器(Filter),通过研究发
始化过滤器,执行过滤的具体内容写在方
法doFilter()中,destroy。方法用于销毁过
现过滤器能够在Java Web开发过程中很好 的处理系统权限控制的问题。1过滤器原理滤。3.1
范围之内,如果超出那么就给出信息提示
或者回主页,轆放行氷2.2实现web应用的日志处理功能方法介绍InitO方法在过滤器类对象产生之后
自动执行,该方法没有返回值,而且生命
周期里只会执行—次。该方法的作用是获 取配置文件中过滤器设置的初始化细
访问H志是用户访问网站之后进行统
图1过滤器工作流程过滤器是Java Servlet提供的一个功 能,它的功能用于完成一些通用的操作,
比如编码过滤、判断用户的使用状态等。 过滤器工作的过程是对Servle喀器调用的
计和分析的结果,这个功能可以记录所有 访问网站的用户信息,通过用户的IP地 址、用户的归属地、用户的访问日期等属
获取的 ^^^^^servlet.FilterConfig 国。3.2 doFilterO方法介绍用户请求数据首先经过过滤器进行规
性在过滤器中进行相关设置即可实现对日
则的判断,如果满足规则就会调用
doFilterO方过滤器经过分析之后
志的管理,针对性的筛选出设计人员需要
的用户信息。2.3实现数据的加宓过融行拦截,从而在响前后蜩
先执行chain.doFilter()之前的内容,检测 用户是否有权访问资源,所需执行的内容
可以写在chain.doFilterO前面。反之,当
一些特殊功能。实现系统权限控制的原理
是:接收用户发送的请求之后,读取请求 中的信息并进行分析和处理,娅结束再
根据项目龄,有时我们需要对竝
数据和服回的姻进行加密伽。
没有访问的权限时,应该给出相应的提示
技术创新 33信息或者将用户请求跳转到其他可用资 源,执行chain.doFilter()之后就进入下一
02、03、04四个操作,表示管理员有数据
}else{的添加、删除、修改、査询操作权限;再
个过滤器的分析过程。直到所有的
chain.doFilterO执行完毕才进入之后的代
设计ft通用户的角色它对应的权限可
提示信息}}}权限处理流程如图2所示。6结语访问控制权限广泛使用于JavaWeb、
以设计为01,该用户只有添加数据的操作
权限。设计过程中要注意合理分配角色的
码执行,当前的过滤器执行完毕之后进入
最后器
时完毕。3.3 destroy。方法介绍destroy。方法在整个过滤器执行完毕
权限以免出现安全隐患。5.3权限控制过程安卓运用等系统中。以往的权限控制需要
在类或者的页面中添加对应的访问控制代
码,流程繁琐,开发效率低等问题。使用
过滤器实现系统权限控制的过程是将 用户请求的链接和用户的角色放到系统菜
过滤器无需额外添加处理逻辑的代码,实 现方便快捷的权限控制。系统开发过程中
时才执行,调用之后就会释放所有过滤器 单中进行对比分析得到的,如果请求的链
占用的系统资源。可以在方法中添加过滤
接和角色是匹配的就可以继续访问,否则
器执行完毕的收尾工作,此方法在生命周
无权访问。用户如果是授权合法登录的,
期中也是执行一次。系统会把用户角色分配到的操作权限转变
4过滤器文件的配置
为对应的URI然后放入session中,过滤器 前文介绍过init(m 需要读器
再通过session获取对应的操作权限进行检 文件里面的信息,这个配置文件就是 测。当然对于公共区域的内容不需要访问
web.xmlo该文件中用于添加过滤器工作
权限即可访问,例如网站首页头部的内
的规则以及链接的映射关系。配置方法简
容、登录页面、广告区域等,因此我们可
单,值得注意的是映射路径的配置。文件
以将这些资源的访问权限排除在操作权限
中<url -pattern域学用于设定过滤器的映 之外。射路径,例如属性值写为叨”表示过滤
所有的访问,\".ext”表示对含有.ext的 数据进行过滤等,当然在之后更新的
ServletS.0设计人员可以进行注解配置。5权限管理系统的设计与分析一般来说我们设计〜权限管理系统
需要考虑四个对象,系统资源、访问资源
的权限、权限所属的角色和用户信息。重
点设计内容为系统菜单操作、角色、权限
控制。5.1系统菜单的相关设计过滤器工作解中会获嘶有请求的
相关链接,所以軀设计系统菜单用于控
图2权限处理流程图制用户访问权限,这些访问操作的具体内
权限处理的具体流程可以描述为:过
容有軽的添加、修改、査询和删除。控 滤器首先分析判断用户访问的资源是否为
制豳获取请求的
自由访问资源,如果是就检测成功;如果
息进行的,系统菜单和对应解
不是就提示用户要进行登录才可以继续访
权限如表1所示。问并做出相应的跳转;判断用户如果登录
web-ID操作类型URL成功,下一^判断用户是否有访问请求资
01增加数据操作User/add源的权限,如果检测成功就继续访问,如 02删除数据操作User/delete果不是则提示用户没有访问权限。用户权
03修改数据操作User/modify限测试样例代码如下:04查询数据操作User/selectpublic void doF订ter(ServletRequest 表1操作权限request, ServletResponse response, FilterChain 5.2角色分配chain)角色可以设计为多个,每个角色可以
throws IOException, ServletException {
设置多个权限,可以根据设计者的意图自 辻(判断请求URL是否是免费资源){
行分配。表沖web_ID项中的一条对应一 Chain.doFilter(request, response);} else购果没有登录){个页面,其他的数据为该页面里的Y操
蘇信息作按钮或者链接,链接对应用户对数据的
}else{操作。例如,我们设计了一个网站管理员 If(有权限){的角色,那么它对应的权限可以分配01、
chain.doFilter(request, response);
遇到多角色、多权限的情况,我们可以设 置多个过滤器形成Y链条式的过滤器即
可满足设计需求。通过过滤器的使用极大
的提高项目开发效率,同时提高系统的可 维护性能葺【参考文献】[1]向大芳.Java Web应用中基于 Filter的访问权限控制实现[J].软件导刊,
2017,01⑵ 熊传玉.过滤器在Java_Web开发中
的应用研究[J].信息技术,2015,08⑶ 许生模.Filter与Listenei机制 在 Java_Web编程中的应用QJ.计算机与现代
化,2006,04[4] 姚添译.Java卫中Filter技术的研
究与应用DJ.电脑知识与技术,2018,06[5] 郑志娴.浅谈基于过滤器与拦截器 的用户访问控制[J].信息安全与技术,2014, 12基金项目:1、2018年云南大学旅游 文化学院教学改革项目“程序设计类课程 工程教育认证教学模式研究”(项目编
罟:XYJG201812); 2、2018年云南大学 旅游文化学院教学改革项目“以项目驱动 的软件能力培养模式研究”(项目编号: XYJG201811 ) o
因篇幅问题不能全部显示,请点此查看更多更全内容