RBAC(基于角色的权限控制)模型的核心是在用户和权限之间引入了角色的概念。取消了用户和权限的直接关联,改为通过用户关联角色、角色关联权限的方法来间接地赋予用户权限,从而达到用户和权限解耦的目的,RBAC介绍原文链接。 RABC的好处 职能划分更谨慎。对于角色的权限调整不仅仅只影响单个用户,而是会影响关联此角色的所有用户,管理员下发/回收权限会更为谨慎; 便于权限管理。对于批量的用户权限调整,只需调整用户关联的角色权限即可,无需对每一个用户都进行权限调整,既大幅提升权限调整的效率,又降低漏调权限的概率; 在不断的发展过程中,RBAC也因不同的需求而演化出了不同的版本,目前主要有以下几个...

  AjzKod8N0zyC   2023年11月02日   36   0   0 ciDynamic主键ci主键Dynamic

多租户技术的基本概念:  多租户技术(英语:multi-tenancytechnology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。  在云计算的加持之下,多租户技术被广为运用于开发云各式服务,不论是IaaS,PaaS还是SaaS,都可以看到多租户技术的影子。  前面介绍过GitEgg框架与数据库交互使用了Mybatis增强工具Mybatis-Plus,Mybatis-Plus提供了TenantLineInnerInterceptor租户处理器来实现多租户功能,其原理就是Mybatis-Plus实现了...

  AjzKod8N0zyC   2023年11月02日   40   0   0 多租户多租户gitspringspringgit

  OAuth2是一个关于授权的开放标准,核心思路是通过各类认证手段(具体什么手段OAuth2不关心)认证用户身份,并颁发token(令牌),使得第三方应用可以使用该token(令牌)在限定时间、限定范围访问指定资源。  OAuth2中使用token验证用户登录合法性,但token最大的问题是不携带用户信息,资源服务器无法在本地进行验证,每次对于资源的访问,资源服务器都需要向认证服务器发起请求,一是验证token的有效性,二是获取token对应的用户信息。如果有大量的此类请求,无疑处理效率是很低,且认证服务器会变成一个中心节点,这在分布式架构下很影响性能。如果认证服务器颁发的是jwt格式的to...

  AjzKod8N0zyC   2023年11月02日   49   0   0 gitJavaJavaspringspringgit

  随着近几年技术的发展,人们对于系统安全性和用户体验的要求越来越高,大多数网站系统都逐渐采用行为验证码来代替图片验证码。行为验证码指的是通过用户行为来验证用户身份的验证码,如滑动拼图、识别图片中的特定物品等。   行为验证码的重要性在于可以有效地防止机器人和恶意程序对网站或应用程序进行恶意攻击、刷流量、撞库等行为,从而保障了用户和网站的安全。相较于传统的图形验证码等方式,行为验证码更难被破解,同时也更加方便用户操作。   另外,行为验证码还可以提高用户的使用体验,减少用户的操作负担,提高网站或应用程序的可用性和用户留存率。因此,采用行为验证码是保护用户和网站安全的重要手段,也是提高用户体验的...

  AjzKod8N0zyC   2023年11月02日   36   0   0 redis验证码git验证码Redisgit

  目前系统集成短信似乎是必不可少的部分,由于各种云平台都提供了不同的短信通道,这里我们增加多租户多通道的短信验证码,并增加配置项,使系统可以支持多家云平台提供的短信服务。这里以阿里云和腾讯云为例,集成短信通知服务。 SpringBoot常用的集成短信方式有: 短信服务提供商API  可以使用各大短信服务商提供的API接口,通过HTTP/HTTPS协议进行调用。例如阿里云的SMS服务、腾讯云的短信服务等,都提供了JavaSDK和API文档,可以与SpringBoot集成使用。 第三方短信平台SDK  可以使用第三方短信平台提供的SDK,进行短信发送。例如Jiguang提供的SMSSDK,可以...

  我们系统集成了短信通知服务,这里我们进行OAuth2的扩展,使系统支持短信验证码登录。OAuth2的登录方式有以下几种: 授权码模式(authorizationcode) 隐式授权模式(implicitgrant) 密码模式(resourceownerpasswordcredentials) 客户端模式(clientcredentials) 扩展模式(granttypesextensions) 1、在gitegg-oauth中新增SmsCaptchaTokenGranter自定义短信验证码令牌授权处理类 / 短信验证码模式 / publicclassSmsCaptchaTokenGra...

  一套完整的系统权限需要支持功能权限和数据权限,前面介绍了系统通过RBAC的权限模型来实现功能的权限控制,这里我们来介绍,通过扩展Mybatis-Plus的插件DataPermissionInterceptor实现数据权限控制。   简单介绍一下,所谓功能权限,顾名思义是指用户在系统中拥有对哪些功能操作的权限控制,而数据权限是指用户在系统中能够访问哪些数据的权限控制,数据权限又分为行级数据权限和列级数据权限。 数据权限基本概念: 行级数据权限:以表结构为描述对象,一个用户拥有对哪些数据的权限,表示为对数据库某个表整行的数据拥有权限,例如按部门区分,某一行数据属于某个部门,某个用户只对此部门...

  AjzKod8N0zyC   2023年11月02日   48   0   0 ci权限控制数据权限控制ci数据

  微服务应用中图片、文件等存储区别于单体应用,单体应用可以放到本地读写磁盘文件,微服务应用必需用到分布式存储,将图片、文件等存储到服务稳定的分布式存储服务器。目前,很多云服务商提供了存储的云服务,比如阿里云OSS、腾讯云COS、七牛云对象存储Kodo、百度云对象存储BOS等等、还有开源对象存储服务器,比如FastDFS、MinIO等。  如果我们的框架只支持一种存储服务,那么在后期扩展或者修改时会有局限性,所以,这里希望能够定义一个抽象接口,想使用哪种服务就实现哪种服务,在配置多个服务时,调用的存储时可以进行选择。在这里云服务选择七牛云,开源服务选择MinIO进行集成,如果需要其他服务可以自...

  批量上传数据导入、数据统计分析导出,已经基本是系统必不可缺的一项功能,这里从性能和易用性方面考虑,集成EasyExcel。EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目,在尽可能节约内存的情况下支持读写百M的Excel:  Java解析、生成Excel比较有名的框架有Apachepoi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,...

  AjzKod8N0zyC   2023年11月02日   40   0   0 DatagitJavaJavagitData

前面我们介绍了K8S+Docker+Maven插件打包部署SpringCloud微服务项目,在实际应用过程中,很多项目没有用到K8S和微服务,但是用到了Docker和SpringBoot,所以,我们这边介绍,如果使用Jenkins+jib-maven-plugin插件打包部署SpringBoot项目的Docker镜像。 网上有多种Docker打包插件使用说明,讲解最多的是Spotify开源的,Spotify官方已不再推荐使用docker-maven-plugin插件进行打包,而是推荐其最新的docker打包插件dockerfile-maven-plugin,但是dockerfile-maven...

  AjzKod8N0zyC   2023年11月02日   53   0   0 mavendockermavendocker

  本文介绍使用Jenkins一键将NodeJS(Vue)前端项目打包并上传到生产环境服务器,这里使用的是直接打包静态页面,发送到远程服务器Nginx配置目录的方式,首先确保服务器环境配置好,安装Nginx,运行目录,日志存放目录等。 一、服务器环境配置   Nginx安装也有多种方式,源码安装、yum安装、Docker安装等,安装并不复杂,我们这里采用Docker安装的方式,由于习惯于标准化及存档,方便在不同服务器部署相同的环境,我们这里使用了DockerCompose来定义Nginx容器配置信息。 1.Nginx的docker-compose-nginx.yml定义文件编写   Docke...

  AjzKod8N0zyC   2023年11月02日   38   0   0 nginxHTMLnginxhtml

  NodeJS(Vue)项目也可以通过打包成Docker镜像的方式进行部署,原理是先将项目打包成静态页面,然后再将静态页面直接copy到Nginx镜像中运行。 一、服务器环境配置   前面说明了服务器Nginx的安装和配置,这里稍微有些不同,但是因为此文是用Nginx镜像和前端镜像页面同时部署的方式来打包发布的,所以这里不再需要建立/data/container/nginx/html目录,因为要发布的静态页面已经在Nginx镜像中的/nginx/html目录了。这里也减少了手动部署安装Nginx的步骤,而是在Jenkins任务中调用shell命令自动执行安装。 1.新建Dockerfile文...

  AjzKod8N0zyC   2023年11月02日   25   0   0 nginxdockernginxdocker

  SonarQube是一款静态代码分析、代码质量度量和漏洞检测的开源代码质量管理平台,它提供了许多功能,包括静态代码分析、代码覆盖率、复杂度分析、漏洞检测等。SonarQube可以集成到许多流行的编程语言和集成开发环境中,帮助开发人员创建高质量的软件项目。SonarQube以及依赖环境软件的安装已经在此系列文章的第一篇写过,这里只介绍如何配置和使用Jenkins+SonarQube进行代码质量检查。 1.登录http://ip:19000,默认用户名密码:admin/admin,第一次登录会提示更改密码,设置一个自定义密码即可。 2.配置>应用市场,安装中文插件,这里选择Chinese...

  SSL(SecureSocketLayer,安全套接字层)证书是一种数字证书,用于加密网站与访问者之间的数据传输。SSL证书是网站安全和可靠性的重要保证,是建立信任和保护用户隐私的重要手段。其作用可以总结为以下几点: 数据安全:SSL证书能够加密网站和客户端之间的通信,保护敏感数据不被窃取或篡改。 身份验证:SSL证书能够验证网站的身份,确保用户访问的是真实的、受信任的网站,而不是恶意网站。 提高信任度:拥有SSL证书的网站将获得浏览器的安全标志,如绿色锁头,增加用户对网站的信任度和满意度。 SEO优化:谷歌将SSL证书视为网站安全性的重要指标,并将其作为SEO排名的一个因素,拥有SSL...

  AjzKod8N0zyC   2023年11月02日   37   0   0 nginxSSLdockersslnginxdocker

  HAProxy是一种免费、快速、可靠的反向代理,为基于TCP和HTTP的应用程序提供高可用性、负载平衡和代理,它非常适合应用在高并发大流量的网站上。这些年来,HAProxy已成为事实上的标准开源负载均衡,目前HAProxy已与大多数主流Linux发行版一起提供,很多云平台也默认集成了HAProxy。  LVS、Nginx、HAProxy是常用的三款负载均衡,网上有很多三种负载均衡详细的对比文章,下面一句话总结LVS、Nginx、HAProxy的优缺点: LVS:工作在OSI七层协议模型的第四层传输层上,简单、稳定、性能最强,但可配置性逊于其他两种,不支持正则处理,不能做动静分离,不支持U...

  AjzKod8N0zyC   2023年11月02日   52   0   0 luaIP服务器LuaIP服务器

  通常,一般业务我们使用云服务器提供的数据库,无论是MySQL数据库还是其他数据库,云服务厂商都提供了主备功能,我们不需要自己配置处理。而如果需要我们自己搭建数据库,那么考虑到数据的高可用性、故障恢复和扩展性,必须做数据备份配置。 一、MySQL的多种数据备份机制 mysqldump:这是MySQL自带的备份工具,通过导出SQL语句来备份数据库。它可以备份整个数据库、特定表或特定数据。使用命令行执行mysqldump命令可以生成SQL文件,然后可以使用该文件还原备份数据。备份命令: 单个数据库 mysqldump-hhostname-uusername-pdbname>backup...

  AjzKod8N0zyC   2023年11月02日   33   0   0 MySQLmysql服务器服务器

  现如今,业务系统对于缓存Redis的依赖似乎是必不可少的,我们可以在各种各样的系统中看到Redis的身影。考虑到系统运行的稳定性,Redis的应用和MySQL数据库一样需要做到高可用部署。 一、Redis的多种高可用方案 常见的Redis的高可用方案有以下几种: RedisReplication(主从复制):Redis的主从复制可以实现数据的备份和读写分离。通过配置主节点和从节点,主节点将数据异步复制到从节点上。当主节点发生故障时,一个从节点可以被提升为新的主节点,实现故障转移。主从复制适用于对读操作较多、对可用性要求较高的场景。 RedisSentinel(哨兵模式):哨兵模式是Red...

  AjzKod8N0zyC   2023年11月02日   27   0   0 配置文件redis配置文件Redis

SpringCloud分布式应用微服务系统架构图: SpringCloud分布式应用微服务系统组件列表: 微服务框架组件:SpringBoot2+SpringCloudHoxton.SR8+SpringCloudAlibaba SpringBootAdmin:管理和监控SpringBoot应用程序的微服务健康状态 数据持久化组件:MySql+Druid+MyBatis+MyBatis-Plus Mycat:中间件实现数据库读写分离 Seata:分布式事务管理,跨服务的业务操作保持数据一致性 高性能的key-value缓存数据库:Redis+RedissonClient+RedisTempla...

    这里简单说明一下在Windows系统下开发SpringCloud项目所需要的的基本环境,这里只说明开发过程中基础必须的软件,其他扩展功能(Docker,k8s,MinIO,XXL-JOB,EKL,Keepalived,Nginx,RabbitMQ,Kafka等)用到的软件会在具体使用时详细说明,本地开发的环境软件以Windows版本的安装配置为例,数据库等中间件以Linux(CentOS7)的安装配置为例,其他系统Mac/Linux可自行配置。     后端开发需要准备的环境及软件有:JDK1.8+,Maven3.6.3+,Mysql5.7.11+,Redis5.0+,Nacos1.4...

  AjzKod8N0zyC   2023年11月02日   46   0   0 MySQLmysqlJavaf5Javaf5

  在新建工程前,先了解一下什么是敏捷开发“松结对编程”及“L型代码结构”这里有详细的介绍和说明:敏捷开发“松结对编程”系列之十一:L型代码结构(团队篇之一)     使用Maven创建项目之前,我们要对工程有一个大概的规划,为了保持类库统一管理,引入的jar包版本不冲突,我们需要用到Maven的BOM功能以及SpringIOplatform推出的BOM功能: MavenBOM定义一整套相互兼容的jar包版本集合,使用时只需要依赖该BOM文件,即可放心地使用需要的依赖jar包,且无需再指定版本号。 SpringIOPlatform只是一个pom文件,记录了spring与其他开源项目对应的版本...

  AjzKod8N0zyC   2023年11月02日   95   0   0 gitCloudf5Cloudf5git
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~