基于SSM框架的通用权限框架设计李慕白520

权限设计主要有一下几大部分组成:PassPort:针对现在系统的分析,系统之间有部分信息是共享的,这部分信息将由中心话的Passport来统一维护

1.2权限设计的原则

2.资源权限解决方案

2.1概览

资源权限绑定概览

项目开发和测试阶段:

在项目上线之后和运维阶段:

2.2管理类型和普通类型

分组和角色分别都有两种类型,一种是管理类型,一种是普通类型,以下做详细说明:

分组表设计(Group)

类型

说明

Id

Number(10)

Notnull

PK

Name

Varchar2(128)

组名称

Admin

Boolean

是否为管理类型

以上三点其实都可以归结为第三点,即:任何页面可见的元素均可纳入功能级权限管理。实现方法:采用自写JSP标签完成,执行该标签时需要从后台或缓存中查找当前用户是否有使用当前资源的权限,如果有则正常显示,如果没有则将标签内所有内容从服务端剔除后再响应客户端。如下图:

资源权限流程

3.1标签实现的代码

4.安全性设计

页面元素的可见性并不能控制URL的可访问性,在系统设计中,使用Struts2的拦截器机制来过滤URL,防止用户不通过页面直接通过URL访问系统。系统资源的抽取设计。系统资源包含了以上提到的两个部分页面元素和URL,两种资源在某些时候是可组合的,比如按钮点击后提交URL,则该按钮与该URL可组成一个资源。页面元素可独立成为一个资源,而URL不能脱离页面元素独立成为资源。每个资源都有唯一的标标识。资源与资源之间也存在层级关系,比如下图:

4.1资源表设计

列名类型(长度)可否空

Keyvarchar2(256)notnull

标识资源的唯一的代码

Namevarchar2(256)notnull

资源名称

Urlvarchar2(256)null

对应的URL

Parent_keyvarchar2(256)null

父资源代码

Descvarchar2(256)null

描述或备注信息

Key值的设定建议采用会意的字符串,比如新增按钮资源属于第三级资源则它的代码应该为"sysres_duty_add".

对资源进行管理的树状插件

4.3插件使用方式:

如何在struts中使用资源权限tag:

5.数据权限方案

5.1业务关键字定义:

数据权限业务关键字定义

5.2设计思路和原则

5.3什么是岗码

岗码大体结构

5.4岗码定义和阅读规则

岗码的格式规则

岗码格式如下:

岗位ID_岗位类型(管理/业务)_岗位职位_工贸ID_渠道ID_经营体ID_产品线code_BUCode_品牌_型号经营体.注意:根据业务需要,岗码会不断的扩充,以存储更多用于分析查询的信息.

5.5岗码生成和岗码从数据库刷新至业务服务器

岗码生成和岗码从数据库刷新至业务服务器

定时更新策略每天定时执行岗码更新SQL脚本,更新数据库中的岗码,并且定时重置内存中的数据缓存。这里建议采用增量式更新,否则对数据库压力过大。这里所使用的SQL脚本可参考下面第2点实时更新策略所使用的脚本。实时更新策略对于更新相对较频繁的表(如人员表、岗位表),首先在该表上设立触发器,基于表做的所有修改将记录到历史表中,系统定时扫描历史表,发现改动则执行SQL脚本更新岗码,并更新缓存。这里的更新指单条记录的更新,非批量更新。

当蓝色部分使用应用服务的时候可以直接更新缓存,从而略过橙色部分活动图。历史表ecc_oms.sys.his

IdNumber(12)notnullPK

Table_namevarchar2(128)notnull

表名

PK_Valuevarchar(512)notnull

主键值如:123,张三

PK_namevarchar(128)notnull

主键字段如:empId,empName

Oper_typenumber(2)notnull

操作类型:增:1、删:2、改:3

Create_timeDatenotnull

flagvarchar2(1)notnull

完成标记位:0:未完成,1完成

5.6如何存储岗码:

(1)新增用户-岗位关系表和岗位-用户岗码关系表:ecc_oms.sys_emp_codeEmp_id:用户IDCode_id:岗码ID-对应ecc_oms.ecc_oms.sys_code表主键(2)岗位-客户岗码关系表:ecc_oms.ecc_oms.sys_cust_codeCust_code:客户codeCode_id:岗码ID

5.7如何从数据库刷新岗码到应用服务器

主要类列表和简单描述:

类/接口名

简介

核心接口描述

CacheServiceFacade

暴露给客户端远程调用的接口

1.根据用户id和岗位查询该用户的客户列表,返回结果集自动关联客户对应的产品线信息publicSetfindCustomerByEmpId(longempId,Stringstation);

DefaultCacheServiceFacade

CacheServiceFacade的默认实现类,根据请求的岗位类型自动判断查找客户信息

CacheService

从缓存中读取数据的顶层接口,定义内存中数据的读取接口

1.根据用户id查找用户信息publicSetfindCustomerByEmpId(longid,Stringstation);

AbstractCacheService

CacheService的抽象实现,读取客户数据的公共方法抽取在里面

CacheServiceA

AbstractCacheService的子类实现,为MD_XSJL下单门店销售经理查找客户逻辑

CacheServiceB

AbstractCacheService的子类实现,BU代表下单

AbstractCacheService的子类实现,查询权限信息实现

CacheLoader

缓存加载器

1.将指定表的数据加载到内存中publicvoidinitCache(Class<>clazz,RowMapper<>mapper,String[]properties);2.缓存加载完毕后获取缓存后的所有对象publicTableCachegetTableCache();

DefaultCacheLoader

CacheLoader接口的实现类

TableOperation

对单表进行的操作接口,用户往操作历史里插入记录时单条更新/删除缓存操作

1.根据操作记录对缓存进行操作publicvoidexecute(OperationContextoperationContext);

AbstractTableOperation

TableOperation的抽象实现,定义公共操作方法

BasGCustomerInfoTableOperationStationConfigTableOperationStationCustomerRelationTableOperationStationCustomerRelationTableOperationStationEmployeeRelationTableOperation

AbstractTableOperation类的子类,表示对指定的表进行增/删/改动作时的响应操作

ReloadTableCacheJob

定时任务,重新载入主数据表到缓存,每小时执行一次

UpdateCacheJob

根据操作历史记录,对缓存中的数据进行单条更新,每15分钟执行一次

UpdateCodeJob

定时任务,定期扫描岗码历史表ecc_oms.sys_his,调用存储过程,触发更新岗码操作,每10分钟执行一次

5.8如何使用数据权限接口,调用简单示例

在客户端调用的应用中定义一个springbean,如下:

Java代码调用:

5.9如何添加新数据权限接口

将需要客户端调用的接口方法添加在CacheServiceFacade类中,并编写实现类。

THE END
1.财务英语英汉对照表(az).pdf?ssmeliablty承债,承债务 audii担务付 ?assumption承担,假定,假设 ?assurance保险,保证,信息安全...?cashbasisaccounting现金收付制,收付实现制会计 hbfredeliy货 ?caseover交前付款 ?cashbonus现金...?designcost设计成本 ?designedcapacity设计能力 ?desiredinvestment预定投资 ?desiredprofit预期...https://max.book118.com/html/2023/1210/8104027113006014.shtm
2.?立即加入,抢占优惠先机:手机版入口手机版捕鱼...上半场,活塞后卫艾维高效发挥,频频冲击篮筐拿分,出场15分钟7投5中,罚球2中1拿到11分1篮板4助攻1盖帽,正负值+18最高。 频繁冲击篮筐!艾维半场7中5贡献11分外加4助 正负值+18最高-直播吧 首页 软件 游戏 应用集 专栏 攻略 「活动」注册即送28元新人礼包 ...http://yulin.grosirauto.com/blog/11110235305233.html
3.与LRP5蛋白结合的抗体及使用方法与流程在一种实施方案中,所述cdr的氨基酸序列包含选自如以下列出的序列的序列或由选自如以下列出的序列的序列组成:cdr-h1选自由以下组成的组:lsyyym、isysyi、lsyssm、issysi、isysyi、iysysi、lsyyym、fssssi、lyyyyi、lsyssi、iysyyi、llyyssm和fssssi;cdr-h2选自由以下组成的组:siypyygyty、sssyygyty、sisssy...https://www.xjishu.com/zhuanli/27/202080072086.html/
4.智能图像分析智能文档版面检测与识别艾科瑞特(iCREDIT)智能图像分析-智能文档版面检测与识别-艾科瑞特(iCREDIT),凭借领先的人工智能与知识图谱技术,帮助企业获得敏锐的洞察力及卓越的运营能力,智能图像分析-智能文档版面检测与识别,让企业实现数字化升级;智能图像分析-智能文档版面检测与识别,支持远距离、近距离多种图https://market.aliyun.com/products/57000002/cmapi00043784.html
1.基于java中的SSM框架实现购物商城系统项目附项目源码+论文说明购物商城系统是在MySQL中建立数据表保存信息,运用SSM框架和Java语言编写。并按照软件设计开发流程进行设计实现。系统具备友好性且功能完善。管理员登录进入本人后台之后,管理商品和用户,查看和回复用户对商品的评价,管理不同状态的订单。用户管理收货地址,管理不同状态的订单,收藏商品,评价商品。 https://blog.csdn.net/BigestBear/article/details/143322989
2.以支付宝为案例讲解沙箱的基本应用51CTO博客课程设计时会开发一些相应的商城系统,都有在线支付的相关需求,而做为个人,想在实现在线支付在很多平台是不具备相关条件的,很多平台要求具备独立法人资格的企业或个人商业户才可以申请在线支付,而支付宝提供的沙箱环境,对于个人实现在线支付测试环境来讲,是一个不错的选择,本文主要讲解基于支付宝的沙箱环境来实现在线支付...https://blog.51cto.com/u_8238263/6703326
3.H3CS12504XS12500系列交换机支持数据中心Puppet、Chef、Ansible特性,可以实现数据中心的自动化运维管理。 开放应用架构 S12500系列产品基于OAA(Open Application Architecture)理念设计,创新性的推出了对外开放的业务平台。 支持网络安全多业务插卡模块,可以集成防火墙模块、IPS模块、ACG应用控制网关模块、LB负载均衡模块等。通过产品的融...http://www.itbuy365.com/?product-2272.html
4.安徽工业经济职业技术学院2022年学院介绍:计算机与艺术学院学院依据企业需求和就业为导向,整合华为、华云、科大讯飞、思科、华三、微软、谷歌、Vmware、RedHat、Oracle、Adobe、AutoDesk、北京伟景行、阿里巴巴等知名企业资源,围绕区域产业集群和人才需求进行新一代信息技术、人工智能和数字创意专业群建设和产业人才培养。学院在黄山西递设有写生实习基地,与国家动漫基地设有NACG设计...https://www.027art.com/anhuizhuanke/HTML/15764722.html
5.GitHubshawnzhsh/CSBookdownloadList:1st数字图像处理:第三版 英文版 链接:https://pan.baidu.com/s/1s4sDs5kOCb0p8mfwCRW9BQ 提取码:3pez R Cookbook 链接:https://pan.baidu.com/s/1kQbqPOpReF-DFxUxYSpKOA 提取码:n6qk 深入理解TensorFlow:架构设计与实现原理 链接:https://pan.baidu.com/s/1kVouxAR 图解密码技术(第3版) 链接:https:/...https://github.com/shawnzhsh/CS-Book-download-List
6.天柱县第二中学省级示范性普通高中复评验收硬件建设项目(网络...PIM-SSM;支持 MSDP,MSDP for IPv6;支持 MBGP,MBGP for Ipv6; 13.9) ★为简化设备配置,实现网络管理可视化,避免投资浪 费,要求设备内置智能网络管理模块...屏幕两侧具有双磁吸设计,可以同时固定至少两支触控笔; 5.内置摄像头分辨率≥4K,最大视角水平≥120°,4 倍数字变 焦; 6.采用全贴合工艺,钢化玻璃与液...https://ggzy.guizhou.gov.cn/hallweb/hall/attach/nosession/download?attachId=8a8bb745882e7a5001886bc1c21b584f
7.ACGBoxCRM码农集市专业分享IT编程学习资源基于ssm贝立立城市货运服务系统.zip 2024-11-03 09:00:16 积分:1 基于ssm+vue智慧养老中心管理系统.zip 2024-11-03 08:44:47 积分:1 基于ssm的健身房管理系统.zip 2024-11-03 08:35:32 积分:1 基于ssm小驴西藏旅游网站的设计与实现.zip 2024-11-03 08:25:30 ...https://www.coder100.com/index/index/content/id/3569086
8.廉江市中医院廉江市中医院迁建项目信息化智能化工程建设数据中心...廉江市中医院迁建项目信息化智能化工程建设—数据中心建设招标项目的潜在投标人应获取招标文件,并于2020年12月21日09点30分(北京时间)前递交投标文件。 一、项目基本情况 项目编号:440881-202011-436001-0015 项目名称:廉江市中医院迁建项目信息化智能化工程建设—数据中心建设 ...https://www.zbytb.com/s-zb-11817403.html