国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

B/S系統權限控制的一種簡單方法

2019-11-17 06:10:49
字體:
來源:轉載
供稿:網友
   看了網上一些關于權限控制的帖子,越看越迷糊,什么用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;


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金阳县| 张掖市| 南雄市| 治县。| 拉孜县| 军事| 西林县| 封丘县| 昆明市| 大名县| 平利县| 阿图什市| 高青县| 恩平市| 基隆市| 秦安县| 湄潭县| 长沙市| 读书| 无极县| 延川县| 长岛县| 仲巴县| 忻州市| 泸溪县| 宿迁市| 西贡区| 陈巴尔虎旗| 青阳县| 茌平县| 定陶县| 中宁县| 司法| 略阳县| 长丰县| 托克逊县| 台南市| 托里县| 综艺| 北辰区| 新巴尔虎右旗|