`

B/S系统权限控制的一种简单方法

阅读更多
看了网上一些关于权限控制的帖子,越看越迷糊,什么用AOP(ASPect Oriented Programming,面向方面编程),用容器,RBAC(基于角色的访问控制方法),SSO,Jive的Proxy模式等等等等,且又是role又是group,真是头都大了,先写个简单的实现方法,以后再研究高深的。

 

  此方法不依靠容器 框架,适用于小系统(主要jsp页面要少于100,因为是硬编码到JSP),适用于要精确控制页面field的情况较多的系统。

  (插句话:要分清权限控制与业务逻辑,业务逻辑就是情况由系统运行时的某些条件决定,如学生治理系统中,某一学生进入系统,只能看自己的记录,因为可看的记录是由学号来决定的,所以这是业务逻辑,而又如学生不能看老师的记录,这是有学生的身份来决定的,所以这是权限控制。)

  好了,进入正题!
  建表:

  user(user信息: userID userPassWord 等)
  role(role描述:roleID roleDesc)
  permission(permission描述:permissionID permissionDesc)
  user-role(user role对应关系表:userID roleID)
  role-permission(role permission对应关系表:roleID permissionID)
  user-permission(user permission对应关系表:userID permissionID)


  重要申明:

 

  1 此处role没有继续关系,只是permission的集合

  2 user-permission表只是为了方便,其数据是根据user-role role-permission两表得来,只有在user-role role-permission两表有更新的时候更新此表,并不能单独赋予user某个permission,只能赋予user一个或多个role。

  3 permission的分配,这是一个难点,很多比较复杂的权限控制系统也是因为这个才发展出来,此处把它尽量想简单,不考虑业务逻辑,以页面为视角,分两层,首先是需要控制的jsp页面,然后是需要控制的页面field(包括link,text,textbox,button等等),field这一层还有privilege之分(R和W,即可读和可写)

  基本思路:进入JSP页面时,检查用户信息,查到用户有此permission就包含此代码,假如没有此permission就不包含此代码,此功能由Tag来完成(不会写Tag?不要紧,抄!)。看代码吧!

    1 建表(如上)
    2 建两个class(bean) (UserProfile是用户基本信息   UserPermission是permission )

    UserProfile.Java:
package com.××.××.××;
import java.util.Collection;

public class UserProfile {
  private String userId;
  private String userType;
  private String companyNo;
  private String companyName;
  private String companyType;
  private Collection userPermissions;

 






 


public String getUserId() {
    return userId;
  }
  public void setUserId(String userId) {
    this.userId = userId;
  }
  public String getUserType() {
    return userType;
  }
  public void setUserType(String userType) {
    this.userType = userType;
  }
  public String getCompanyNo() {
    return companyNo;
  }
  public void setCompanyNo(String companyNo) {
    this.companyNo = companyNo;

分享到:
评论

相关推荐

    本科毕业论文 基于B/S的ERP人力资源管理子系统的设计与开发

    本科毕业论文 基于B/S的ERP人力资源管理子系统的设计与开发 目 录 摘要 III 关键词 III Abstract III Key Words III 前言 1 1 相关介绍 1 1.1框架介绍 1 1.2 Struts框架介绍 2 1.3 Hibernate框架介绍 2 1.4 Spring...

    基于J2EE的B/S系统的权限控制设计 (2005年)

    针对传统权限控制设计的问题,提出了一种基于J2EE的B/S系统的权限控制设计。它通过虚拟扩展数据库系统的外模式和虚拟实现数据库的用户授权模式,在数据库连接.IDBC与Web的应用服务之间增加数据过滤层,很好地解决了...

    毕业设计管理系统, 采用B/S模式

    系统的组织架构如图所示,三种用户根据自己不同的权限对课题、文档、成绩、公告、任务五种数据信息进行处理,不同用户角色再根据这些数据信息进行交互通过课题进行交互,并且围绕着文档进行数据的传递和处理等。

    vb.net开发的C/S结构超市管理系统

     市场上的connie’s store系统软件已具有比较完善的技术,但本软件采用了具有创新思维的vb程序设计语言,它将复杂的程序设计语言简单化,直观化,是一种通用的计算机程序设计语言。通过开展此工程,培养我们的团体...

    基于JAVA jspOA办公自动化系统的毕业设计,采用B/S架构,运用JAVA jsp技术实现,使用MySQL作为后台数据库

    一个基于JAVA jsp的办公自动化系统,提供一种高效、可靠、方便的工作方式,以满足现代企业的需求。本系统将集成多种功能,包括但不限于: - 员工管理:实现员工信息的录入、编辑、查询、删除等操作,以及员工考勤、...

    基于角色的权限管理系统视频教程

    本套教程通过c-s和b-s两种模式讲解,如果没有学过winform开发的学员可以通过本套教程补充下winform开发知识,以桌面程序的方式实现数据的CRUD操作,同时还可以学会一些常用控件的使用,特别是树形菜单的使用,以及...

    毕业设计:某中学学生成绩管理系统的设计(源代码)

    B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。这种结构更成为当今应用软件的首选体系结构,Microsoft.net也是在这样一种...

    OA系统权限管理设计方案

    通过角色 赋予权限,是指没办法按职位或项目的分类来赋予权限的另一种方式,如:系统管理员,资 料备份员… b) 实例中:对于本系统中,全体人员应该默认都有的模块,如我的邮件,我的文档,我的 日志,我的考勤...

    数据库权限设计与实现.doc

    传统业务系统中,存在着两种权限管理,其一是功能权 限的管理,而另外一种则是资源权限的管理,在不同系统之间,功能权限是可以重 用的,而资源权限则不能。 关于设计 借助NoahWeb的动作编程理念,在设计阶段,系统...

    java用户角色权限设计.doc

    实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户 的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一 台计算机都已具备的...

    java用户角色权限设计.doc.doc

    传统业务系统中,存在着两种权限管理,其一是功能权限 的管理,而另外一种则是资源权限的管理,在不同系统之间,功能权限是可以重用的, 而资源权限则不能。 关于设计 而这两张表起着映射的作用,分别是"actiongroup...

    全管C5-OA协同办公系统

    在角色权限的基础上,结合组织结构扩展出四类角色:部门、职位、人员组及职员,可分别对这四种角色设置权限,系统自动合并计算出最终权限。与传统单一维度权限机制相比,多维度权限机制功能更强大,管理效率也更高,...

    基于Web的教务系统设计开发.pdf

    本文提出了一种基于Web的教务系统设计开发,该系统基于B/S架构,采用C#编程语言和SQL Server数据库,旨在为高校提供一个快速、方便、稳定的教务管理系统。该系统具有三级用户权限,分别为学生、教师和管理员,每种...

    某中学学生成绩管理系统的设计

    本毕业设计所描述的中学学生成绩管理系统是采用ASP.NET作为网络编程框架,SQL Server 2000作为数据库编写的一个B/S模式的系统。系统主要实现了:用户管理、成绩查询、成绩管理和科目管理等功能。本文详细介绍了中学...

    79.逍遥大药房管理系统java,B/S,mysql可运行源码(含数据库脚本)+开发文档+lw(高分毕设项目)

    系统主要包括首页,个人中心,用户管理,保健品分类管理,药品分类管理,药品信息管理,疫情常识管理,保健品管理,系统管理,订单管理等功能模块,系统用户角色可分为两种权限:管理员和用户。管理员可以执行所有的...

    酒店预订系统毕业设计整套

    该系统具有预定酒店资源、查看订单、留言、查看酒店信息、订单信息管理、资源信息管理、分组管理以及管理员权限管理等重要功能,使得游客无论在哪里都可以及时预定到想要的酒店,而且很快就知道预定结果,这是对当今...

    城市地下管线信息系统方案.docx

    城市地下管线信息系统是一种基于大数据和智慧城市概念的解决方案,旨在帮助城市地下管线的管理和维护。该系统方案包括两个主要子系统:地下管线管理子系统(C/S)和地下管线信息发布子系统(B/S)。 地下管线管理子...

    教学管理系统论文(带源代码)

    目前开发Web应用程序主要有C/S(客户机/服务器)和B/S(浏览器/服务器)两种模式。B/S设计模式为我们提供了系统设计的基本思想和基本方向。相对于C/S模式来讲,B/S 模式让客户端不安装软件通过对服务端的访问就可以...

    Module Framework Design 2008(模块化开发框架)

    Module Framwork Design 2008 是一个集成式的 B/S 免费开发工具,帮助企业快速设计应用系统,集成了日志、联接池、性能优化、权限控制、数据展现,常规模块功能(增加、删除、修改、查询、导出、排序)实现,采用JAVA...

    作家网作品发布与管理系统

    在系统设计中,本文重点介绍了如何采用将作品的浏览权放到作品中,将维护权赋给作家,将审核权赋给栏目管理员的方法解决作品的浏览、维护、审核等三种不同权限的处理问题。这项技术可以确保作品的安全和可靠。 在...

Global site tag (gtag.js) - Google Analytics