CN110889126A - 一种优化的Web应用的权限控制方法 - Google Patents

一种优化的Web应用的权限控制方法 Download PDF

Info

Publication number
CN110889126A
CN110889126A CN201911162209.7A CN201911162209A CN110889126A CN 110889126 A CN110889126 A CN 110889126A CN 201911162209 A CN201911162209 A CN 201911162209A CN 110889126 A CN110889126 A CN 110889126A
Authority
CN
China
Prior art keywords
menu
user
role
file
authority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911162209.7A
Other languages
English (en)
Inventor
徐思奥
范渊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dbappsecurity Technology Co Ltd
Original Assignee
Hangzhou Dbappsecurity Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Dbappsecurity Technology Co Ltd filed Critical Hangzhou Dbappsecurity Technology Co Ltd
Priority to CN201911162209.7A priority Critical patent/CN110889126A/zh
Publication of CN110889126A publication Critical patent/CN110889126A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种优化的Web应用的权限控制方法,编辑菜单配置文件、菜单和权限的配置文件,并在Web应用程序启动时添加角色、角色对应的菜单,当用户对于Web资源发起访问,过滤器判断用户是否具有访问Web资源文件的权限,若有则过滤器对用户请求的Web资源放行,否则阻断访问。本发明使开发人员不用重新编写代码,只需要添加或修改菜单和权限的配置文件或菜单配置文件配置就可以实现权限控制的目的;增加了Web应用程序和Spring Security框架的灵活性,使业务更容易拓展,角色、权限管理更便捷高效;用户可以在界面上添加一个角色,在菜单和权限的配置文件中添加权限,进而在界面上的角色通过和菜单绑定、控制菜单。

Description

一种优化的Web应用的权限控制方法
技术领域
本发明涉及数字信息的传输,例如电报通信的技术领域,特别涉及一种优化的Web应用的权限控制方法。
背景技术
Web应用程序是一种可以通过Web访问的应用程序,其最大好处是用户可以通过浏览器很容易的访问应用程序,不需要再安装其他软件。
目前,主流的Web应用程序的开发框架一般为Spring框架。Spring是最受欢迎的企业级Java应用程序开发框架,数以百万的来自世界各地的开发人员使用Spring框架来创建性能好、易于测试、可重用的代码,其被广泛应用于市面上的主流软件中。
Spring Security作为一个灵活和强大的身份验证、访问控制框架,用于确保基于Spring的Java Web应用程序的安全;在我们进行用户认证以及授予权限的时候,SpringSecurity通过各种各样的拦截器来控制权限的访问,从而实现安全。
现有技术中,Spring Security实现身份认证和访问控制是通过拦截器解决的。主流的Spring Security框架仅支持代码层面权限和角色的绑定,用户若要添加一个角色或权限,则需要通过开发人员添加代码来完成;另外,Spring Security框架中需要开发人员在认证配置中添加角色和权限关系,随后由认证管理器和决策管理器根据开发人员代码中编写认证配置、进而决定用户请求的Web资源是否合法。这种实现方式下,若客户要求添加某一角色或某一权限,开发人员要改认证配置才可以实现,而又因为在开发Web应用程序过程中,添加角色或菜单是一种常见的需求,这表示现有的运作表示将给开发人员带来大量的重复编程工作,工作效率低,处理时间长,且错误率上升。
发明内容
本发明解决了现有技术中,在实现身份认证和访问控制的过程中,存在大量重复编程工作的问题,提供了一种优化的Web应用的权限控制方法。
本发明所采用的技术方案是,一种优化的Web应用的权限控制方法,所述方法包括以下步骤:
步骤1:编辑菜单配置文件、菜单和权限的配置文件;
步骤2:Web应用程序启动,用户在Web应用程序界面添加角色、角色对应的菜单;
步骤3:当用户对于任一Web资源发起访问,则进行下一步;
步骤4:过滤器判断用户是否具有访问Web资源文件的权限,若有,则进行下一步,否则,阻断访问,返回步骤3;
步骤5:过滤器对用户请求的Web资源放行。
优选地,所述菜单配置文件用于修改文件记录Web应用程序的菜单和菜单的层级关系。
优选地,所述菜单和权限的配置文件用于修改文件记录菜单和URI的管理关系。
优选地,所述步骤2中,通过菜单配置文件添加菜单时,当Web应用程序检测到所述菜单配置文件的md5变更,则会将文件内容更新到数据库的菜单表中。
优选地,所述步骤4中,过滤器判断用户是否具有访问Web资源文件的权限包括以下步骤:
步骤4.1:过滤器根据用户信息,从数据库中确认对应的角色以及角色下对应的菜单A;
步骤4.2:过滤器从内存中的菜单和权限的配置文件的内容中获取菜单A对应的所有权限的列表B;
步骤4.3:过滤器判断用户请求的Web资源是否在用户被允许访问的列表B中,若是,则用户具有访问Web资源文件的权限,进行步骤5,否则,阻断访问,返回步骤3。
优选地,所述步骤4.2中,所有权限还包括免登权限。
优选地,所述免登权限包括以.js、.html、.css结尾的URL。
本发明提供了一种优化的Web应用的权限控制方法,通过编辑菜单配置文件、菜单和权限的配置文件,并在Web应用程序启动时,在Web应用程序界面添加角色、角色对应的菜单,当用户对于任一Web资源发起访问,过滤器判断用户是否具有访问Web资源文件的权限,若有,则过滤器对用户请求的Web资源放行,否则阻断访问。
本发明是对原有Spring Security框架进行的改进,将Spring Security框架中的认证管理器和决策管理器闲置,认证配置对用户访问的所有Web资源放行;客户需要添加菜单时,开发人员修改对应的菜单配置文件、菜单和权限的配置文件,客户需要添加角色时,则可以直接在Web应用程序界面添加角色及角色对应的菜单,并将数据变更具体落实在数据库中;当用户访问Web应用程序时,过滤器从数据库中获得用户对应的角色、菜单,并从内存中读取菜单和权限的配置文件中菜单和URI的对应关系,以此判断用户是否有访问某Web资源的权限。
本发明的有益效果在于:
(1)开发人员不用重新编写代码,只需要添加或修改菜单和权限的配置文件或菜单配置文件配置就可以实现权限控制的目的;
(2)增加了Web应用程序和Spring Security框架的灵活性,使业务更容易拓展,角色、权限管理更便捷高效;
(3)用户可以在界面上添加一个角色,在菜单和权限的配置文件中添加权限,进而在界面上的角色通过和菜单绑定、控制菜单。
附图说明
图1为本发明的流程图。
具体实施方式
下面结合实施例对本发明做进一步的详细描述,但本发明的保护范围并不限于此。
本发明涉及一种优化的Web应用的权限控制方法,经菜单、权限配置和过滤器实现灵活的权限控制,用户可以通过界面或配置文件灵活处理用户认证和权限控制,而不需要程序员修改代码逻辑。
本发明中,菜单为用户在Web应用程序界面可见的所有可操作模块。
本发明中,权限配置为开发人员维护的菜单和URI的对应关系。
本发明中,过滤器为拦截器,用于验证用户请求的URI是否合法。
所述方法包括以下步骤。
步骤1:编辑菜单配置文件、菜单和权限的配置文件。
所述菜单配置文件用于修改文件记录Web应用程序的菜单和菜单的层级关系。
所述菜单和权限的配置文件用于修改文件记录菜单和URI的管理关系。
本发明中,菜单配置文件为Permission.xml文件,对其的修改和编辑为本领域技术人员容易理解的内容,如:
<object>
<id>Store</id>
<name>存储管理</name>
<url></url>
<type>2</type>
<code>TEMPLATE_QUERY</code>
<icon></icon>
<href>/system/store</href>
</object>
本领域技术人员可以依据需求自行设置。
本发明中,菜单和权限的配置文件为role.conf文件,通过role.conf编辑菜单和URI的对应关系,对其的修改和编辑为本领域技术人员容易理解的内容,如:Store=/api/cluster/disk,本领域技术人员可以依据需求自行设置。
步骤2:Web应用程序启动,用户在Web应用程序界面添加角色、角色对应的菜单。
所述步骤2中,通过菜单配置文件添加菜单时,当Web应用程序检测到所述菜单配置文件的md5变更,则会将文件内容更新到数据库的菜单表中。
本发明中,步骤2的“角色”事实上是一类用户的总称,例如用户“张三”和用户“李四”都是“运维管理员”的角色。
本发明中,角色对应的“菜单”事实上是指功能模块,如常用的word中存在“开始”、“插入”、“绘图”等功能模块,此处角色对应的菜单可以依据本领域技术人员的需求自行设置。
步骤3:当用户对于任一Web资源发起访问,则进行下一步。
步骤4:过滤器判断用户是否具有访问Web资源文件的权限,若有,则进行下一步,否则,阻断访问,返回步骤3。
所述步骤4中,过滤器判断用户是否具有访问Web资源文件的权限包括以下步骤:
步骤4.1:过滤器根据用户信息,从数据库中确认对应的角色以及角色下对应的菜单A;
步骤4.2:过滤器从内存中的菜单和权限的配置文件的内容中获取菜单A对应的所有权限的列表B;
所述步骤4.2中,所有权限还包括免登权限。
所述免登权限包括以.js、.html、.css结尾的URL。
步骤4.3:过滤器判断用户请求的Web资源是否在用户被允许访问的列表B中,若是,则用户具有访问Web资源文件的权限,进行步骤5,否则,阻断访问,返回步骤3。
本发明中,步骤4.1中的用户信息一般是指作为用户唯一标识的用户ID。
步骤5:过滤器对用户请求的Web资源放行。
本发明通过编辑菜单配置文件、菜单和权限的配置文件,并在Web应用程序启动时,在Web应用程序界面添加角色、角色对应的菜单,当用户对于任一Web资源发起访问,过滤器判断用户是否具有访问Web资源文件的权限,若有,则过滤器对用户请求的Web资源放行,否则阻断访问。
本发明是对原有Spring Security框架进行的改进,将Spring Security框架中的认证管理器和决策管理器闲置,认证配置对用户访问的所有Web资源放行;客户需要添加菜单时,开发人员修改对应的菜单配置文件、菜单和权限的配置文件,客户需要添加角色时,则可以直接在Web应用程序界面添加角色及角色对应的菜单,并将数据变更具体落实在数据库中;当用户访问Web应用程序时,过滤器从数据库中获得用户对应的角色、菜单,并从内存中读取菜单和权限的配置文件中菜单和URI的对应关系,以此判断用户是否有访问某Web资源的权限。
本发明中,开发人员不用重新编写代码,只需要添加或修改菜单和权限的配置文件或菜单配置文件配置就可以实现权限控制的目的;增加了Web应用程序和SpringSecurity框架的灵活性,使业务更容易拓展,角色、权限管理更便捷高效;用户可以在界面上添加一个角色,在菜单和权限的配置文件中添加权限,进而在界面上的角色通过和菜单绑定、控制菜单。

Claims (7)

1.一种优化的Web应用的权限控制方法,其特征在于:所述方法包括以下步骤:
步骤1:编辑菜单配置文件、菜单和权限的配置文件;
步骤2:Web应用程序启动,用户在Web应用程序界面添加角色、角色对应的菜单;
步骤3:当用户对于任一Web资源发起访问,则进行下一步;
步骤4:过滤器判断用户是否具有访问Web资源文件的权限,若有,则进行下一步,否则,阻断访问,返回步骤3;
步骤5:过滤器对用户请求的Web资源放行。
2.根据权利要求1所述的一种优化的Web应用的权限控制方法,其特征在于:所述菜单配置文件用于修改文件记录Web应用程序的菜单和菜单的层级关系。
3.根据权利要求1所述的一种优化的Web应用的权限控制方法,其特征在于:所述菜单和权限的配置文件用于修改文件记录菜单和URI的管理关系。
4.根据权利要求1所述的一种优化的Web应用的权限控制方法,其特征在于:所述步骤2中,通过菜单配置文件添加菜单时,当Web应用程序检测到所述菜单配置文件的md5变更,则会将文件内容更新到数据库的菜单表中。
5.根据权利要求1所述的一种优化的Web应用的权限控制方法,其特征在于:所述步骤4中,过滤器判断用户是否具有访问Web资源文件的权限包括以下步骤:
步骤4.1:过滤器根据用户信息,从数据库中确认对应的角色以及角色下对应的菜单A;
步骤4.2:过滤器从内存中的菜单和权限的配置文件的内容中获取菜单A对应的所有权限的列表B;
步骤4.3:过滤器判断用户请求的Web资源是否在用户被允许访问的列表B中,若是,则用户具有访问Web资源文件的权限,进行步骤5,否则,阻断访问,返回步骤3。
6.根据权利要求5所述的一种优化的Web应用的权限控制方法,其特征在于:所述步骤4.2中,所有权限还包括免登权限。
7.根据权利要求6所述的一种优化的Web应用的权限控制方法,其特征在于:所述免登权限包括以.js、.html、.css结尾的URL。
CN201911162209.7A 2019-11-25 2019-11-25 一种优化的Web应用的权限控制方法 Pending CN110889126A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911162209.7A CN110889126A (zh) 2019-11-25 2019-11-25 一种优化的Web应用的权限控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911162209.7A CN110889126A (zh) 2019-11-25 2019-11-25 一种优化的Web应用的权限控制方法

Publications (1)

Publication Number Publication Date
CN110889126A true CN110889126A (zh) 2020-03-17

Family

ID=69748606

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911162209.7A Pending CN110889126A (zh) 2019-11-25 2019-11-25 一种优化的Web应用的权限控制方法

Country Status (1)

Country Link
CN (1) CN110889126A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035867A (zh) * 2020-11-06 2020-12-04 成都掌控者网络科技有限公司 一种Web应用权限管理方法、系统、设备及存储介质
CN112115034A (zh) * 2020-08-20 2020-12-22 胜宏科技(惠州)股份有限公司 一种自动清理、分配InCAM License系统及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102682240A (zh) * 2012-05-16 2012-09-19 河南辉煌科技股份有限公司 大型bs结构系统中对资源的控制方法
CN103632082A (zh) * 2013-12-10 2014-03-12 惠州华阳通用电子有限公司 一种通用权限管理系统及方法
CN105653910A (zh) * 2015-12-28 2016-06-08 芜湖美智空调设备有限公司 用户访问系统的控制方法和装置
CN106657046A (zh) * 2016-12-13 2017-05-10 飞狐信息技术(天津)有限公司 可配置的细粒度权限控制方法及装置
CN108600177A (zh) * 2018-03-27 2018-09-28 北京明朝万达科技股份有限公司 一种权限控制方法和装置
CN110457629A (zh) * 2019-07-19 2019-11-15 口碑(上海)信息技术有限公司 权限处理、权限控制方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102682240A (zh) * 2012-05-16 2012-09-19 河南辉煌科技股份有限公司 大型bs结构系统中对资源的控制方法
CN103632082A (zh) * 2013-12-10 2014-03-12 惠州华阳通用电子有限公司 一种通用权限管理系统及方法
CN105653910A (zh) * 2015-12-28 2016-06-08 芜湖美智空调设备有限公司 用户访问系统的控制方法和装置
CN106657046A (zh) * 2016-12-13 2017-05-10 飞狐信息技术(天津)有限公司 可配置的细粒度权限控制方法及装置
CN108600177A (zh) * 2018-03-27 2018-09-28 北京明朝万达科技股份有限公司 一种权限控制方法和装置
CN110457629A (zh) * 2019-07-19 2019-11-15 口碑(上海)信息技术有限公司 权限处理、权限控制方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHAOJIATAO: "《springboot学习笔记:11.springboot+shiro+mysql+mybatis(通用mapper)+freemarker+ztree+layui实现通用的java后台管理系统(权限管理+用户管理+菜单管理)》", 《HTTPS://WWW.CNBLOGS.COM/ZHAOJIATAO/P/8482998.HTML》 *
小石榴: "《Spring Security(六):前端菜单,角色权限页面的搭建》", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/55823589》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112115034A (zh) * 2020-08-20 2020-12-22 胜宏科技(惠州)股份有限公司 一种自动清理、分配InCAM License系统及方法
CN112035867A (zh) * 2020-11-06 2020-12-04 成都掌控者网络科技有限公司 一种Web应用权限管理方法、系统、设备及存储介质

Similar Documents

Publication Publication Date Title
EP4034998B1 (en) User-specific data manipulation system for object storage service based on user-submitted code
US8620879B2 (en) Cloud based file storage service
EP3278535B1 (en) Nested namespaces for selective content sharing
US6263442B1 (en) System and method for securing a program&#39;s execution in a network environment
US7249379B2 (en) Method and apparatus for implementing process-based security in a computer system
CN106471466B (zh) 短暂应用
US11023416B2 (en) Data access control system for object storage service based on owner-defined code
US9195840B2 (en) Application-specific file type generation and use
CN114586010B (zh) 对象存储服务的输出路径中对象过滤代码的按需执行
CN103036871B (zh) 浏览器应用插件支持装置和方法
US20210097193A1 (en) Code execution environment customization system for object storage service
CN100419620C (zh) 一种usb海量存储设备上应用程序与usb海量存储设备进行命令交互和双向数据传输的方法
US8370957B2 (en) Method and apparatus for transmitting contents with limited system permissions
US20210097189A1 (en) User-specific data manipulation system for object storage service based on user-submitted code
WO2007126701A1 (en) Isolated access to named resources
JP4848430B2 (ja) 仮想役割
CN101369302B (zh) 一种控制信息安全设备访问权限的方法和系统
KR20140041499A (ko) 격리된 애플리케이션을 위한 중개된 아이템 액세스 기법
CN110889126A (zh) 一种优化的Web应用的权限控制方法
CN104639599A (zh) 一种实现文件批量下载的系统及方法
US8595805B2 (en) Method and system for policy driven data disclosure
CN102930231A (zh) 管理策略
Wobber et al. Authorizing applications in singularity
EP1124183A1 (en) Method for managing globally distributed software components
EP2045756A2 (en) Method and apparatus for transmitting contents with limited system permissions

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200317