Code Monkey home page Code Monkey logo

ny-cloud's Introduction

简介

基于Spring Cloud微服务框架开发的权限管理系统,可用作于微服务权限系统搭建,目前实现了服务统一授权,资源分配,接口权限,页面元素是否可用,权限资源脚本初始化等功能

  • 在线访问

  • 参考架构图
    enter image description here
  • 1. 工程和以及运行环境截图
    开发工具idea:
    enter image description here
    运行环境Docker:(太穷了,所有的软件以及服务全都部署在阿里云一台机器上),服务器上只开放了80端口,服务调用和其他都是走内网,目前没有做服务集群,机器配置跑不起
    enter image description here
  • 2. 具体服务介绍
    eureka-server: 服务注册发现中心
    api-gateway: 服务Zuul网关
    auth-server: 授权服务
    admin: 权限管理服务
  • 3. 版本功能规划
  • v1.0 开发完成
    目前划分了如上面四个服务,整理的大致实现思路参考 微服务架构中整合网关、权限服务这里只是提供实现思路,在实际中消化了该思路,并引用了部分代码,以及自己的一些方式去实现,由于1.0版本主要是开发权限服务的业务代码,所以并没有对Spring OAuth2.0 /oauth/token /oauth/check_token 这两个接口进行重写,只是自定义了部分鉴权部分的UserDetailsService 和 ClientDetailsService
    auth-server 使用了Jwt 生成token, 主要负责token的鉴权与token的分发
    api-gateway 网关路由分发,授权服务鉴权调用
    admin 权限系统(用户管理,用户组管理,角色管理,权限管理,菜单管理,资源管理), 接口权限,页面元素权限,权限资源脚本初始化,权限拦截,权限校验等功能
  • v2.0 开发中
    auth-server
    重写Spring Security OAuth 中 oauth/token oauth/check_token 这两个接口,目前设计诸多不合理,需要修改token生成以及token的校验,token黑名单,白名单,token 加密(采用RSA)以及token自定义缓存等功能
    api-gateway
    在网关中加入token的缓存校验机制,以及黑名单过滤功能,在缓存可用的情况下可以不需要调用auth-server进行token校验,直接由网关加入校验功能验证后转发到具体的服务即可,这样减轻了auth的压力,优化网关代码
    admin
    代码优化,需要加入多数据源,读写分离,支持多个分布式系统权限的校验处理,支持远程权限校验调用,用户缓存,权限缓存,缓存更新,完善日志管理,异常处理,服务管理等功能
    goods 暂定
    商品服务,简单的商品基本信息维护,用于权限Admin校验测试等功能
    分离模块
    分离 admin 项目中的common 模块和 security 模块,common 模块为公用的代码部分,security 业务权限处理部分
  • v3.0 功能规划中
    多租户实现,数据权限等,定制微服务权限开发脚手架 功能后续规划中.........
  • 4. 项目启动顺序
    注:由于授权服务使用的redis缓存,所以电脑必须要装redis,不然会导致授权服务无法正常使用
    4.1 初始化数据脚本,mysql 账号密码 root 123456 如果不一致请自行修改项目中的配置文件,在mysql中创建nycloud-admin-v2数据库并设置为utf-8字符集,创建好后将admin/src/db/nycloud-admin-v2.sql脚本导入到该数据库执行,初始化数据库工作完成,
    4.2 先启动eureka-server 再启动其他三个服务,最后再启动前端ny-vue工程,即可访问 localhost

效果截图:

具体前端项目介绍请移步:点击移步
登录页面 首页 用户管理 菜单管理 菜单树操作 角色管理 角色关联权限 用户组管理 资源管理 权限管理 权限关联资源

ny-cloud's People

Contributors

neveryielding avatar

Watchers

James Cloos avatar admin avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.