`
zhutuncun0
  • 浏览: 22803 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

权限设计漫谈一

阅读更多
    现在的项目中很多都是需要和权限相关在一起的,权限的本质就是拿用户的所具有的那些标志和要访问的那个页面所需要的标志进行比较而已,权限设计一般分为粗粒度和细粒度两方面。
   粗粒度主要是限制用户可以访问那些页面,通常使用Filter技术,例如:某些页面只有用户登录之后才能访问的,此时只要将该些页面放在一个规则的访问路径,然后对该路劲进行拦截即可,这是一种比较简单的用法;
  另一种就是细粒度的权限控制,细粒度的实现方式有很多,但是在系统初始时,所有的权限必须初始化到数据库,如表设计可以如下:
class       method       module     privileges
------------------------------------------------------
HelloWorld  hello         user      view
这种方式设计设计权限有一点缺陷,就是在Java类中修改方法时,数据库中类的方法也必须修改。
   在使用ssj(ssh)框架的项目中,可以采用的spring的Aop技术进行,因为权限验证属于一种系统级别的功能。但是这种方法时还是有一个局限的就是spring的Aop不能对应用在代理技术且其只能对类本身中的方法进行加强,因为使用struts很多时候是使用DispatchAction,其原因本质就是,target.execute()---->exexcute.invoke(this,args)其中的this是代表没有经过spring AOP加强过的对象,只是一个普通的对象而已,因此不能权限检查不能应用上。可以自己实现Aop技术来进行权限验证。
  其表也是按照模块进行设计
module   privilege   name
--------------------------------
user     view      用户查看
在设计中使用Anotation,将相关权限注解到相应的方法上,如:
@persion(module="user",privilege="view")
public forward view(……){}
同时重写ss整合类中方法processActionPerform,在该方法中进行验证权限即可,只要符有相应权限的就放行,否则不放行,最后自定义相应的权限标签,让用某些按钮在有相应的权限时才显示,over
分享到:
评论

相关推荐

    数据库设计漫谈 元数据设计

    为了更好地理解数据库设计的关键环节之一——元数据设计,本文将详细介绍数据库设计的基本概念、流程以及元数据设计的重要性和方法。 #### 二、数据库设计的基础知识 ##### 2.1 数据模型发展历程 - **网状与层次...

    Java安全漫谈 - 01.反射篇(1)1

    Java 反射机制安全漫谈 Java 反射机制是 Java 语言中的一种强大功能,允许程序在运行时访问和修改类的信息。然而,这种功能也引入了安全隐患。本文将讨论 Java 反射机制的安全问题,重点介绍反射机制的基本概念、...

    漫谈兼容内核.rar

    综上所述,《漫谈兼容内核》这一系列文章深入浅出地探讨了Windows内核的关键特性,对于理解操作系统内核设计、跨平台兼容性以及底层编程有着极大的帮助。通过学习这些内容,读者可以提升对操作系统原理的理解,...

    漫谈兼容内核 电子版

    《漫谈兼容内核》是一本深入探讨操作系统内核,特别是Linux与Windows内核之间差异与共性的电子书籍。此书对于理解这两种广泛使用的操作系统核心的运作机制具有极高的价值。通过对内核的剖析,我们可以了解到操作系统...

    漫谈兼容内核

    在“漫谈兼容内核”这一主题中,我们将深入探讨Linux和Windows两大操作系统底层的工作机制,并着重讨论如何实现它们之间的兼容性。 首先,让我们关注Linux内核。Linux是一种开源的操作系统内核,由林纳斯·托瓦兹于...

    通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计.docx

    树形菜单是权限系统中的一个重要组件,需要对树形菜单的设计和实现进行讨论。在本文中,我们将讨论基于Oracle数据库的树形菜单设计和实现,包括递归结构的设计和dtree.js插件的应用。 (1)递归结构的设计 递归...

    通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计

    在通向架构师的道路中,设计基于数据库的权限系统是一个重要的环节。权限系统设计旨在确保系统的安全性和用户访问控制的灵活性。在这个话题中,我们将探讨如何满足特定的需求,并通过数据库表设计实现一个基础的权限...

    Windows之漫谈兼容内核 完整重编辑清晰电子pdf版

    1. **内核架构**:解释Windows内核的基本结构,包括微内核和混合内核的概念,以及Windows如何在其内核设计中融合这两种模式。 2. **进程与线程管理**:介绍Windows如何创建、调度和销毁进程与线程,以及它们之间的...

    界面设计规范漫谈

    #### 一、为什么需要设计规范? 设计规范对于任何设计项目来说都是非常关键的一部分。它不仅能够确保设计的一致性和高效性,还能够促进团队间的协作,提升整个项目的质量。 **1. 明确项目规则,减少错误:** - ...

    Linux wine技术详解

    Linux Wine技术详解主要关注的是如何在Linux操作系统上运行原本为Windows设计的应用程序。Wine(“Wine Is Not an Emulator”的首字母缩写)是一个开源软件,它提供了一个兼容层,使得Windows API调用可以在Linux...

    03.漫谈兼容内核之三:关于kernel-win32的文件操作

    这种设计使得即使多个进程同时打开同一个文件,也能正确地管理和协调它们之间的交互,避免冲突。WineFileControl结构体通过其成员wfc_acc(假设此处应为wfc_access_list)维护了一个链表,链接所有访问相同文件的...

    漏洞之王:漫谈高阶漏洞攻防演进和现实威胁.pdf

    同时,安全方案与集成在面对高阶漏洞时显得尤为重要,安全团队需要根据具体的业务环境设计合适的安全方案,集成各种安全措施,如入侵检测系统(IDS)、入侵防御系统(IPS)、数据泄露防护(DLP)等,来构建多层次的...

    通往架构师的道路

    本资源整理自CSDN网站,发表者lifetragedy, ...6、漫谈基于数据库的权限系统设计 7、漫谈使用ThreadLocal改进你的层次划分 个人认为内容非常好,所以整理上传,希望能给更多的人带来帮助。 向lifetragedy致谢。

    通往架构师之路(全27)

    6 漫谈基于数据库的权限系统设计 7 漫谈使用ThreadLocal改进你的层次划分 8 weblogic与apache的整合与调优 9 weblogic的集群与配置 10 Axis2 Web Service 一 11 Axis2 Web Service 二 12 Axis2 Web Service 三 ...

    通往架构师之路

    6、漫谈基于数据库的权限系统设计 7、漫谈使用ThreadLocal改进你的层次划分 8、weblogic与apache的整合与调优 9、weblogic的集群与配置 10、Axis2 Web Service(一) 11、Axis2 Web Service(二) 12、Axis2 Web ...

    通向架构师的道路(第1-20天)

    (第六天)之漫谈基于数据库的权限系统的设计 (第七天)之漫谈使用ThreadLocal改进你的层次的划分 (第八天)之weblogic与apache的整合与调优 (第九天)之weblogic的集群与配置 (第十天)之Axis2 Web Service(一)...

    通向架构师的道路

    【系统架构设计师】论软件架构师的角色和培养.doc 通向架构师的道路(第一天)之Apache整合Tomcat.docx ...通向架构师的道路(第三天)之apache性能调优....通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计.docx

    软件架构万字漫谈:业务架构、应用架构与云基础架构

    架构风格则是描述一类系统的一般性设计原则,如分层架构、六边形架构、洋葱架构、RESTful架构和领域驱动设计(DDD)。通过使用架构模式和风格,可以提高软件设计的复用性和可理解性。 【系统复杂性管理】随着系统的...

    SQL Server

    5. **安全性**:SQL Server提供了用户权限管理,通过登录账户、用户、角色和权限分配,实现对数据库资源的访问控制。了解GRANT、DENY和REVOKE语句对于确保数据安全至关重要。 6. **备份与恢复**:SQL Server支持...

    windows 进程创建

    1. **初始化进程结构**:在Windows中,进程由一个称为EPROCESS的数据结构表示。当调用CreateProcess函数时,系统会创建一个新的EPROCESS结构,用于存储进程的属性和状态。 2. **创建地址空间**:每个进程都有自己...

Global site tag (gtag.js) - Google Analytics