agileconfig轻量级配置中心1.3.0发布,支持多用户权限控制(代码片段)

菜鸟耕地 菜鸟耕地     2022-11-29     354

关键词:

AgileConfig 当初是设计给我自己用的一个工具,所以只设置了一道管理员密码,没有用户的概念。但是很多同学在使用过后都提出了需要多用户支持的建议。整个团队或者整个公司都使用同一个密码来管理非常的不方便。
今天 AgileConfig 1.3.0 版本终于支持了多用户,以及简单的权限管理。用户跟权限的设计,在我们开发管理系统的时候经常涉及,最常用的就是RBAC基于角色的权限控制。但是基于 AgileConfig 简单的理念,我稍微简化了一点权限控制的功能设计,尽量的降低学习成本。

权限设计

AgileConfig 的权限设计分为3个固定的角色:

  1. 超级管理员
    超级管理员具有一切的控制权限,可以随意添加修改删除用户、应用、配置等等任何信息
  2. 管理员
    普通管理员可以新建应用,可以删除修改属于他的应用(应用的管理员属性为当前用户),以及该应用的配置项。管理员可以给任何用户授权所属应用配置项的管理权限。管理员可以添加修改删除角色为操作员的用户。
  3. 操作员
    操作员对应用没有任何控制权限,只能编辑或者发布下线经过管理员授权的应用的配置项。

用户管理

1.3.0 版本新增了多用户支持,那么用户管理是必须的功能。

使用管理员级别的用户登录系统后,点击“用户”=>“添加”按钮弹出用户新增界面。

添加“用户名”、“密码”、团队等基本信息后,选择用户的角色。点击“确定”新建用户。提示成功后就可以使用该用户登录系统了。

应用授权

1.3.0 版本支持对用户进行简单的授权管理。

管理员在新建/编辑应用的时候可以维护一个管理员角色的用户。该账号对该应用具有完全的控制权限。

如果想要其它用户来编辑配置项,可以在授权界面进行授权。点击“授权”按钮弹出授权界面。

权限分为两部分:

  1. 配置修改权:配置项的改删查权限
  2. 配置上下线权:配置项的上线,下线权限。

升级需要更新的数据库结构

由于1.3加入了多用户的支持,新增了几张表跟字段,导致1.2升级1.3后程序运行报错的问题,需要手工调整表结构。
以下以mysql为例:

  1. agc_app表新增字段 app_admin varchar(36)
  2. 新建agc_user表
CREATE TABLE `agc_user` (
  `id` varchar(36) NOT NULL,
  `user_name` varchar(50) DEFAULT NULL,
  `password` varchar(50) DEFAULT NULL,
  `salt` varchar(36) DEFAULT NULL,
  `team` varchar(50) DEFAULT NULL,
  `create_time` datetime(3) NOT NULL,
  `update_time` datetime(3) DEFAULT NULL,
  `status` enum(\'Normal\',\'Deleted\') NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  1. 新建agc_user_app_auth表
CREATE TABLE `agc_user_app_auth` (
  `id` varchar(36) NOT NULL,
  `app_id` varchar(36) DEFAULT NULL,
  `user_id` varchar(36) DEFAULT NULL,
  `permission` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  1. 新建agc_user_role表
CREATE TABLE `agc_user_role` (
  `id` varchar(36) NOT NULL,
  `user_id` varchar(50) DEFAULT NULL,
  `role` enum(\'SuperAdmin\',\'Admin\',\'NormalUser\') NOT NULL,
  `create_time` datetime(3) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

新建完成表跟字段后重新运行程序,会提示重置超级管理员密码,之后就可以正常使用了。

最后

✨✨✨Github地址:https://github.com/kklldog/AgileConfig 开源不易,欢迎star✨✨✨

演示地址:AgileConfig Server Demo 超级管理员账号:admin 密码:123456

关注我的公众号一起玩转技术

agileconfig1.6.0发布-支持服务注册与发现(代码片段)

...因为比较忙,另外一个原因是最近主要的精力是在给AgileConfig添加一个新的功能:服务注册与发现。先说说为什么会添加这个功能。我自己的项目是用Consul来做为服务注册发现组件的。自从我上线了AgileConfig做为配置中心... 查看详情

agileconfig1.5发布-支持多环境配置

AgileConfig从发布到现在,收到不少同学的issue说需要多环境的支持。也就是一个应用在不同的环境下可以配置不同的配置项。这是一个非常有用的功能,就跟我们开发的时候会设置多个appsettings.json文件一样,比如appsett... 查看详情

agileconfig-1.5.5发布-支持json编辑模式

...settings.json直接复制过来,点击保存就可以原样导入到AgileConfig里了。也可以继续使用对象嵌套对象,数组等高级模式。JSON视图编辑模式点击右上角“编辑JSON”按钮会弹出JSON编辑视图。该编辑框集成了一个json代码编辑器-... 查看详情

配置中心|.net集成nacos配置中心

...SDK便于快速接入,当然.NET阵营也有一个配置中心新秀:AgileConfig。但相较而言,Nacos架构更加简洁且部署方便,并且已有对应商业版本在阿里云上稳定运行,因此接下来本文将重点介绍.NET如何集成Nacos配置中心。Nacos简介Nacos/nɑ:k... 查看详情

centos8快速部署轻量级自动化运维平台spug(代码片段)

Spug面向中小型企业设计的轻量级无Agent的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、文件在线上传下载、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能。Spug的特性批量执行:主... 查看详情

配置中心|集成nacos配置中心(视频)

...快速接入,当然.NET阵营也有一个配置中心新秀:AgileConfig。但相较而言,Nacos架构更加简洁且部署方便,并且已有对应商业版本在阿里云上稳定运行,因此接下来本文将重点介绍.NET如何集成Nacos配置中心。Nacos... 查看详情

推荐一个.nercore开发的配置中心开源项目

...个配置中心。项目简介这是一个基于.NetCore开发的,轻量级配置中心、部署使用简单方便。该项目只具备必要的功能,主要用于轻量级的项目。项目特性1、部署简单方便,支持docker、跨平台;2、支持分布式部署&#x... 查看详情

yarp+agileconfig5分钟实现一个支持配置热更新的代理网关

YARP是微软开源的一个反向代理项目,英文名叫YetAnotherReverseProxy。所谓反向代理最有名的那就是nginx了,没错YARP也可以用来完成nginx的大部分功能,比如根据不一样的域名代理到不一样的后端服务上。既然它可以做反... 查看详情

xxl-job整体架构设计

...任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。 整体架构设计:XXL-JOB是一个轻量级分布式任务调度框架,它的核心设计理念是把任务调度分为两个核心部分:调度中心(xxl-admin),和执行器。隔... 查看详情

为 Play 框架 1.3.0 Web 应用程序配置 MySQL 服务器时遇到问题

】为Play框架1.3.0Web应用程序配置MySQL服务器时遇到问题【英文标题】:TroubleconfiguringMySQLserverforPlayframework1.3.0webapp【发布时间】:2018-07-1717:54:44【问题描述】:我在尝试连接到我的MySQL服务器后尝试在localhost:9000打开我的Web应用程... 查看详情

springcloud:配置中心和消息总线(配置中心终结版)

...理连接各个分布的节点。这会用在广播状态的变化(例如配置变化)或者其他的消息指令。Springbus的一个核心思想是通过分布式的启动器对springboot应用进行扩展,也可以用来建立一个多个应用之间的通信频道。目前唯一实现的... 查看详情

springcloud:配置中心和消息总线(配置中心终结版)

...理连接各个分布的节点。这会用在广播状态的变化(例如配置变化)或者其他的消息指令。Springbus的一个核心思想是通过分布式的启动器对springboot应用进行扩展,也可以用来建立一个多个应用之间的通信频道。目前唯一实现的... 查看详情

config配置中心之自动刷新

...布式的节点用轻量的消息代理连接起来。它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控。本文要讲述的是用SpringCloudBus实现通知微服务架构的配置文件的更改,即实现配置中心的自动刷新和批量更新。这... 查看详情

轻量级rpc设计与实现第五版(最终版)(代码片段)

...时间里,通过搜集有关资料加上自己的理解,设计了一款轻量级RPC,起了一个名字lightWeightRPC。它拥有一个RPC常见的基本功能。主要功能和特点如下:利用Spring实现依赖注入与参数配置利用Netty来实现客户端与服务端的远程通信利... 查看详情

springcloud基于消息总线的配置中心

...理连接各个分布的节点。这会用在广播状态的变化(例如配置变化)或者其他的消息指令。Springbus的一个核心思想是通过分布式的启动器对springboot应用进行扩展,也可以用来建立一个多个应用之间的通信频道。目前唯一实现的... 查看详情

ciscoios防火墙配置问题

...题,如何根据那些ACL来判定是为信任接口还是非信任接口配置的呢?10.1.2.0|内部10.1.3.0|外部64.1.1.4|access-list102remarkautogeneratedbySDMfirewallconfigurationaccess-list102remarkSDM_ACLCategory=1access-list102denyip10.1.3.00.0.0.255anyaccess-list102denyip10.1.2.00.0.0.255an... 查看详情

如何使用spring-boot1.3.0.rc1为oauth2提供自定义安全性配置

随着Spring-CloudAngel.SR3的发布,我在https://github.com/spring-cloud-samples/sso上跟随了一些例子,使用spring-boot1.2.6.RELEASE可以正常工作。但是对于spring-boot1.3.0.RC1,oauth2的东西已经转移到spring-boot本身,下面的代码无法编译,因为类OAuth2SsoC... 查看详情

hcip-路由策略实验(代码片段)

...由策略满足路由无环且避免选路不佳 实验思路:一、配置IP地址[r1]intg0/0/0[r1-GigabitEthernet0/0/0]ipa192.168.12.124[r1]intg0/0/1[r1-GigabitEthernet0/0/1]ipa192.168.13.124[r1-GigabitEthernet0/0/1]intl0[r1-LoopBack0]ipa1.1.1.124[r2]intg0/0/0[r2-GigabitEthernet0/0/0]ipa192.... 查看详情