All Projects → Jiiiiiin → Jiiiiiin Security

Jiiiiiin / Jiiiiiin Security

一个前后端分离的内管基础项目

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Jiiiiiin Security

Mcloud
基于Spring Cloud,实现微服务中常用的基础模块,包括 OAuth2 认证服务,统一注册中心,系统监控中心, 统一配置中心,API网关以及熔断器
Stars: ✭ 185 (+40.15%)
Mutual labels:  microservice, spring-boot, spring-cloud, spring-security
His
HIS英文全称 hospital information system(医院信息系统http://59.110.234.89:9999/swagger-ui.html ),医疗信息就诊系统,系统主要功能按照数据流量、流向及处理过程分为临床诊疗、药品管理、财务管理、患者管理。诊疗活动由各工作站配合完成,并将临床信息进行整理、处理、汇总、统计、分析等。本系统包括以下工作站:门诊医生工作站、药房医生工作站、医技医生工作站、收费员工作站、对帐员工作站、管理员工作站。需求为东软提供的云医院。
Stars: ✭ 359 (+171.97%)
Mutual labels:  redis, spring-boot, spring-cloud, spring-security
Spring Microservice Sample
Spring Boot based Mircoservice sample
Stars: ✭ 199 (+50.76%)
Mutual labels:  microservice, spring-boot, spring-session, spring-security
Springboot Registration Login Theperfectexample
Login & Signup tutorial for every website ,mixes a lot of microservices together with the latest spring framework api in combined with full security
Stars: ✭ 89 (-32.58%)
Mutual labels:  microservice, spring-boot, spring-session, spring-security
Jbone
jbone基于Spring Cloud框架开发,旨在为中小企业提供稳定的微服务解决方案,为开发人员提供基础开发骨架,jbone包含微服务中所有常用组件,例如注册中心、服务管理、服务监控、JVM监控、内存分析、调用链跟踪、API网关等等。业务功能包括系统权限的统一管理、单点登录、CMS、电商平台、工作流平台、支付平台等等。
Stars: ✭ 961 (+628.03%)
Mutual labels:  microservice, spring-boot, spring-cloud, rbac
Moreco
moreco 是一个能够为小、中、大型项目提供最合适架构的一条龙生态系统。满足项目从小型到中型至大型的衍变过程。从编码到监控至运维都满足、且各种功能都插件化,支持插件间的切换。支持Spring Boot、Spring Cloud、Axon 无缝升级
Stars: ✭ 231 (+75%)
Mutual labels:  swagger, spring-boot, spring-cloud, rbac
Mall
mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
Stars: ✭ 54,797 (+41412.88%)
Mutual labels:  redis, spring-boot, spring-cloud, spring-security
Springcloud Shop
基于Spring Boot、Spring Cloud的微服务商城demo
Stars: ✭ 198 (+50%)
Mutual labels:  spring-boot, spring-cloud, spring-session, spring-security
Mica
Spring Cloud 微服务开发核心工具集。工具类、验证码、http、redis、ip2region、xss 等,开箱即用。 🔝 🔝 记得右上角点个star 关注更新!
Stars: ✭ 749 (+467.42%)
Mutual labels:  swagger, redis, spring-boot, spring-cloud
Simplemall
基于SpringCloud的微服务架构实战案例项目,以一个简单的购物流程为示例,融合spring cloud 相关组件,如spring-cloud-netflix、swagger等
Stars: ✭ 687 (+420.45%)
Mutual labels:  swagger, spring-boot, spring-cloud, spring-security
Febs Cloud
基于Spring Cloud Hoxton.RELEASE、Spring Cloud OAuth2 & Spring Cloud Alibaba & Element 微服务权限系统,开箱即用。预览地址:https://cloud.mrbird.cn
Stars: ✭ 1,295 (+881.06%)
Mutual labels:  microservice, spring-boot, spring-cloud, rbac
Web Development Interview With Java
Java 开发相关技术栈(大中厂)高频面试问题收录。
Stars: ✭ 69 (-47.73%)
Mutual labels:  microservice, redis, spring-boot, spring-cloud
Spring Boot Examples
个人学习 SpringBoot2.x 写的一些示例程序,目前正在持续更新中.....
Stars: ✭ 159 (+20.45%)
Mutual labels:  swagger, redis, spring-boot, spring-session
Cloud Book
《Spring Cloud 微服务架构进阶》各章节附录源码
Stars: ✭ 142 (+7.58%)
Mutual labels:  microservice, spring-boot, spring-cloud, spring-security
Mi S
基于SpringBoot+SpringCloud+Mybatis主流框架搭建的分布式敏捷开发系统架构,为中、小型项目打造企业级基础开发多种解决方案。
Stars: ✭ 140 (+6.06%)
Mutual labels:  swagger, spring-boot, spring-cloud, spring-security
Spring Boot Demo
spring boot demo 是一个Spring Boot、Spring Cloud的项目示例,根据市场主流的后端技术,共集成了30+个demo,未来将持续更新。该项目包含helloworld(快速入门)、web(ssh项目快速搭建)、aop(切面编程)、data-redis(redis缓存)、quartz(集群任务实现)、shiro(权限管理)、oauth2(四种认证模式)、shign(接口参数防篡改重放)、encoder(用户密码设计)、actuator(服务监控)、cloud-config(配置中心)、cloud-gateway(服务网关)等模块
Stars: ✭ 323 (+144.7%)
Mutual labels:  redis, spring-boot, spring-cloud, spring-security
Taroco
整合Nacos、Spring Cloud Alibaba,提供了一系列starter组件, 同时提供服务治理、服务监控、OAuth2权限认证,支持服务降级/熔断、服务权重,前端采用vue+elementUI+webpack,可以很好的解决转向Spring Cloud的一系列问题。
Stars: ✭ 545 (+312.88%)
Mutual labels:  redis, spring-boot, spring-cloud, spring-security
Eshop Soa
EShop基于Dubbo实现SOA服务化拆分,并基于RocketMQ解决了分布式事务(新版SpringBootSOASkeleton)
Stars: ✭ 65 (-50.76%)
Mutual labels:  swagger, redis, spring-boot, spring-security
Sample Boot Micro
Spring Cloud + Gradle Multi Project + Java8
Stars: ✭ 72 (-45.45%)
Mutual labels:  microservice, spring-boot, spring-cloud, spring-security
Learning Path Spring Boot Microservices
Curated path for learning Spring Boot & Microservices based on published videos in TechPrimers
Stars: ✭ 116 (-12.12%)
Mutual labels:  spring-boot, spring-cloud, spring-security

jiiiiiin-security

一个前后端分离的内管基础项目

原则

  • 以最少的表结构字段完成一个基础应用,以便在以此完成实际项目时有更多的扩充自由

如果你仅仅需要一个简单的内管系统,请切换到master分支,其仅仅是一个spring-boot前后端分离基础应用,当前分支,是用来学习和实践spring-cloud微服务框架所开

功能截图

以下是部分功能截图

快速开始

  • 视频演示

注意:目前该视频是针对master分支录制,等当前分支对spring-cloud实践有一个基础眉目我会在重新录制响应视频,但是这个视频对于jiiiiiin-service-manager 内管的聚合项目也具有参考价值,目前这块改动不大

Watch the video

下载高清视频

项目结构说明

.
├── pom.xml 公共pom
├── apollo-cache-dir (apollo本地缓存目录,见配置)
├── config 各个边界服务、后端服务的apollo配置目录
├── db 数据库初始化脚本
├── jiiiiiin-lib 自定义库
│   ├── jiiiiiin-data-orm orm层模块(目前主要针对Mybatis-Plus)
│   ├── jiiiiiin-security-app 针对JWT Token的安全模块(lib,目前没有依赖)
│   ├── jiiiiiin-security-authorize 后端RBAC抽象模块(lib)
│   ├── jiiiiiin-security-browser 针对Session的安全层模块(lib)
│   ├── jiiiiiin-security-core 安全层基础模块(lib,处理Spring-Security相关基础配置)
│   ├── jiiiiiin-module-common 应用通用模块(目前内管依赖)
├── jiiiiiin-eureka-server 注册中心服务端(通用服务)
├── jiiiiiin-gateway 网关(通用服务)
├── jiiiiiin-hystrix
│   ├── jiiiiiin-hystrix-dashboard Hystrix熔断监服务(通用服务)
│   ├── jiiiiiin-hystrix-tuibine Hystrix Turbine聚合服务(通用服务)
├── jiiiiiin-edge-service 边界服务(微服务中聚合子服务的聚合项目)
│   ├── jiiiiiin-service-manager 内管的聚合项目
│   │   ├── jiiiiiin-client-manager 内管前端应用(Vue项目,依赖d2-admin模块(1.6.9最新))
│   │   ├── jiiiiiin-module-mngauth 管理模块(目前内管依赖)
│   │   ├── jiiiiiin-server-manager 内管后端应用
├── jiiiiiin-service 后端服务(微服务的聚合项目)
│   ├── jiiiiiin-order 订单的聚合项目
│   │   ├── jiiiiiin-order-server 后端应用
│   ├── jiiiiiin-product 商品的聚合项目
│   │   ├── jiiiiiin-product-client 商品Feign客户端(提供给调用方使用,如在创建订单时候)
│   │   ├── jiiiiiin-product-server 后端应用

微服务代码划分

  • jiiiiiin-service为【原子服务】

    • 一个原子服务,有划分为:
      • xxx-业务标识-client Feign客户端(提供给调用方使用)
      • xxx-业务标识-server 服务本身
      • xxx-业务标识-common 当前原子服务中client和server共同依赖的代码,如实体等
  • jiiiiiin-edge-service为【边界服务服务】

    • 边界服务即提供给外部客户端(如:App)来调用,组织比较自由,但有一个原则及其只会依赖【原子服务】,一般不作为内部服务提供者

即下图中的Edge ServiceMiddle Tier Service

  • 提示步骤:

    • 修改本地hosts

      • win配置方法 | mac配置方法 | 建议使用 switchhost,开源群下载,对自己的网络环境自信的朋友,也可以直接官网下载

        # 本地测试环境
        127.0.0.1   jiiiiiin-redis
        127.0.0.1   jiiiiiin-mysql
        127.0.0.1   jiiiiiin-eureka
        127.0.0.1   jiiiiiin-gateway
        127.0.0.1   jiiiiiin-hystrix-dashboard
        127.0.0.1   jiiiiiin-hystrix-tuibine
        127.0.0.1   jiiiiiin-springboot-admin
        127.0.0.1   jiiiiiin-server-manager
        
    • 导入数据脚本

    • 启动jiiiiiin-mysql & jiiiiiin-redis

    • 启动apollo

    注意这里可以自行控制apollo的连接环境,可以使用apollo-Quick-Start快速上手实践

    • 启动jiiiiiin-eureka::DiscoveryServerApplication

    • 启动监控服务

      • jiiiiiin-hystrix-dashboard::HystrixDashboardApplication
      • jiiiiiin-hystrix-tuibine::HystrixTuibineApplication
      • jiiiiiin-springboot-admin::SpringBootAdminApplication
      • jiiiiiin-zipkin::集成方式参考,建议使用docker直接部署服务端
    • 启动后端内管应用

    • 启动前端内管应用:jiiiiiin-client-manager::j jiiiiiin-client-manager && npm run serve

    一切ok,就可以直接访问jiiiiiin-server-manager:9000 查看管理控制台了 :)

计划

  • SpringCloud

近期维护:新增feature/springcloud分支,将会在该分支尝试spring-cloud探索,目前基于第一代spring-cloud基础组件,核心为Netfix套件,进行一个初探

预期实践架构(来自微服务架构实战160讲)

功能 完成状态 简介
实践Eureka 服务注册发现 90% 集成Service Discovery (Eureka)服务注册中心
实践Zuul 服务网关 90% 集成Intelligent Routing (Zuul)服务网关
实践Feign/RestTemplate 服务间通讯和负载均衡 90% 实践服务间的调用
实践HYSTRIX/Turbine 服务的容错 90% 实现通过Turbine聚合各个服务的Hystrix监控信息,通过jiiiiiin-hystrix-dashboard项目完成统一聚合监控,需要在dashboard中键入jiiiiiin-hystrix-tuibine的集群监控url,如http://localhost:8962/turbine.stream
实践Zipkin 服务链路追踪 90% 集成方式参考,建议使用docker直接部署服务端
集成Spring Boot Admin 90% 集成方式参考
实践apollo 服务配置管理 90% 实践Apollo(阿波罗)
实践OAuth2授权认证中心 服务安全 0%
服务实时日志 0%
代码自动生成 0% 服务端3层代码自动生成,待适配目前的目录结构
docker化部署实践 0%
  • 业务

将会通过一个电商模块来实践服务划分

模块名称 完成状态 简介
用户管理 100% 用来管理系统存在的用户
角色管理 100% 用来管理系统定义的角色
资源管理 100% 用来管理系统定义的资源
接口管理 100% 用来管理后台对应的接口集合
商品管理 10% 商家用来管理自己的商品
订单管理 10% 商家用来管理自己的订单
  • 已经实践的基础功能
功能 完成状态 简介
RBAC后端权限控制 100% 基于Spring Security的后端RBAC权限控制
RBAC前端权限控制 100% 1.基于vue-viewplus,实现了一个自定义模块
2.实现前端页面可访问性控制,通过路由拦截,判断用户待访问页面是否已经授权
3.实现可见页面的局部UI组件的可使用性或可见性控制,基于自定义v-access指令,对比声明的接口或资源别是否已经授权
集成vue-viewplus 100% vue-viewplus一个简化Vue应用开发的工具库
会话并发控制 100% 使用SpringSecurity#concurrency-control实现应用中同一用户在同时只能有一个是终端(渠道)成功登录应用,后登录终端会导致前一个会话失效
会话集群共享 100% 使用Spring Session与Redis实现会话的共享存储和集群部署
记住我控制 50% 使用spring-security实现remember-me功能
d2-mng-page 100% 自定义管理页面组件(统一管理:分页、检索、table、编辑),为了统一审美
Swagger集成 100% 用来构建服务端的RESTFull Api接口
spring-mobile 100% 用来进行渠道判断,使得应用能根据请求的设备响应不同的数据格式
Gif验证码 100% EasyCaptchakaptcha两种验证码库的支持
集成druid监控 100% druid

表结构和权限说明

表名称 简介
mng_admin 【用户表】,使用channel字段可以区分不同业务系统的用户,如这里0标识内管
mng_role 【角色表】,使用channel字段可以区分不同业务系统的角色,如这里0标识内管
mng_role_admin 【角色用户关联表】,这套系统中,角色和用户是可以多对多配置的
mng_resource 【权限资源表】,使用channel字段可以区分不同业务系统的资源,如这里0标识内管,另外type用来标识资源的类型,在这里只有类型: 1:菜单(默认) 0:按钮两种类型,并且没有直接定义一个类url字段取标识资源记录对应的后端某一个接口,是因为如一个菜单点击之后到达的页面可能要发多个后台交易,故一个字段来标识这多个交易容易导致混乱,所以在传统的RBAC表结构之下新增了mng_interface【系统接口表】来定义,而资源则是给业务人员配置角色或菜单时使用;这张表还有一个特点是将前端Vue Router的页面路径以path字段标识,以方便前后端的权限管理
mng_role_resource 【角色资源关联表】,用户、角色、资源都可以由业务人员进行关联操作
mng_interface 【系统接口表】,使用channel字段可以区分不同业务系统的接口,如这里0标识内管,使用url+method来区分后台的某一个接口
mng_resource_interface 【资源接口关联表】,mng_resourcemng_interface是多对多关系,因为某一个接口,比如查询资源树接口在角色管理列表和资源管理列表两个页面都会被调用,且存在一个资源记录会调用多个接口,故我觉得这样来设计表机构,多加这一张表,才能更清晰的将意思表达到位,且方便维护
persistent_logins spring security 记住用户所涉及表
springsocial_UserConnection spring social 第三方授权信息关联表

所用技术栈

后台

前端

参考

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].