Snapper Snapper
首页
文档
  • 权限演示 (opens new window)
  • 工作流演示 (opens new window)
问答
更新日志
gitee (opens new window)
首页
文档
  • 权限演示 (opens new window)
  • 工作流演示 (opens new window)
问答
更新日志
gitee (opens new window)
  • 介绍及配置

    • 项目介绍
    • 微服务版项目配置
      • 摘要
      • 微服务说明
      • 集成权限微服务及项目启动
      • 权限微服务snapper-authority
        • 授权目录
        • 属性配置
      • 网关微服务snapper-gateway
        • 过滤器扩展点
        • 网关目录
        • 属性配置
      • 业务微服务
        • 说明
        • 业务目录
        • 属性配置
    • 项目开发
    • 权限使用
    • 权限的默认规则
    • 系统注解及上下文清单
    • 登录模式
    • 高级查询与注入
    • 状态流使用
    • 其他系统工具使用
  • 集成使用
  • 介绍及配置
frog
2025-06-20
目录

微服务版项目配置原创

# 项目集成

提示

Snapper 基于Spring Cloud 和 Spring Boot构建,依赖MyBatis-plus,当前仅支持MySQL数据库

# 摘要

本章主要介绍Snapper 权限框架微服务版 的集成,以实现授权微服务和网关微服务的集成,同时在业务微服务实现权限相关功能。
Snapper权限集成包含三个部分

  • 集成权限微服务 该模块已包含在Snapper项目中,开箱即用,只需要添加依赖包及简单配置即可
  • 集成网关微服务 该模块已包含在Snapper项目中,开箱即用,只需要添加依赖包及简单配置即可
  • 集成业务微服务 是用户的业务模块,可以创建多个业务微服务,集成方式相同(通过SPI方式集成)

# 微服务说明

提示

每个微服务模块需要在pom.xml模块中配置启动类的完整路径,否则打包运行时会失败!

微服务项目集成请参考snapper-boot (opens new window)snapper-boot为例进行项目集成说明

该项目有如下几个模块

  • snapper-authority 为授权模块,包含授权的核心功能,snapper已封装,开箱即用
  • snapper-authority-api 为业务调用权限功能相关的feign(OPEN-FEIGN)依赖,项目采用SPI + FEIGN方式实时调用authority模块获取权限信息
  • snapper-gateway 为网关模块,基于spring gateway,snapper已封装,包含授权拦截,转发等功能
  • snapper-business 为业务微服务示例模块,主要用来说明如何集成权限功能

具体请求调用参考如下: 请求调用

# 集成权限微服务及项目启动

注意

项目请使用 maven 3.6.x版本构建!

  • 创建数据库snapper,导入SQL 脚本snapper-x.y.z.sql(x.y.z为版本号)
  • 下载依赖项目snapper-dependence (opens new window),执行 mvn clean install
  • 下载snapper-boot (opens new window)
  • 修改authority和gateway模块下的envs/env-dev.properties(默认的生效配置文件在总pom.xml中)的数据库信息,缓存信息,nacos地址(本地调试可不需要nacos中间件nacos.discovery.enabled设置为false)
  • 分别启动gateway、authority项目
  • 下载snam (opens new window),配置proxy.js
dev: {
    '/authority/': {
      target: 'http://127.0.0.1:8090/',
      changeOrigin: true,
      pathRewrite: {
         'authority': 'api'
      }
    }
  }
  • 打开浏览器访问 http://localhost:8000, 输入用户名密码 ximen/123456

# 权限微服务snapper-authority

提示

属性配置中redis.username 如果是无用户模式,请填写default,默认用户名为default!

# 授权目录

目录结构

# 属性配置

属性配置

# 网关微服务snapper-gateway

所有请求都需要经过网关模块进行权限验证并路由转发(每次转发都会生成_GATE_WAY_REDIRECT_KEY及判断有效性,无法绕开网关直接调用微服务),是必需的模块,主要有以下几点需要参考:

  • snapper-gateway中的config目录项配置了需要用到的过滤器,具体过滤器信息请参考下面的扩展点
  • 路由配置请参考 resources/bootstrap.yml
  • 若要本地调试,需要将模块中的env配置文件中将nacos.discovery.enabled设置为false,同时将 server.gateway 设置为127.0.0.1:8090
  • 初始化TEST账号(server.env必须是dev时才生效),可以在SnapperGatewayConfiguration中 初始化JwtTokenFilter及AuthorizationFilter时调用withTestUser方法,添加测试账号信息

路由信息参考如下:

  • /api/** 为为jwt认证模式请求路径前缀,所有请求都会经过此过滤器进行权限验证
  • /wapi/** 为HMAC认证模式的路径前缀,会经过Hmac过滤器
  • /fapi/** 为feign调用路径前缀,根据_GATE_WAY_REDIRECT_KEY有效性进行无授权过滤
  • /tapi/** 为自定义第三方接口路径前缀,具体验证方式可自行扩展(参考ThirdPartFilter,默认token在body体中)

# 过滤器扩展点

扩展点 扩展点说明

  • G3和G5为授权所必需得扩展点
  • G1、G12、G13在bootstrap.yml中配置
  • G14已集成到starter包中无需配置
  • G7G8为第三方的权限认证

# 网关目录

同权限微服务目录结构。

# 属性配置

属性配置

# 业务微服务

# 说明

业务模块为用户自定义的模块,项目中一般按照业务拆分创建多个自定义的业务模块,此处以一个为例(snapper-business),项目相关配置需要注意以下几步

  • pom.xml中需要添加相关依赖,尤其是snapper-authority-api的依赖,用于feign调用获取实时业务权限,其他依赖请参考snapper-business中的pom.xml
  • 配置环境配置文件(snapper-boot中pom.xml所制定的当前生效的环境配置),包括端口、数据源等
  • 添加启动类,在java源目录对应的包下创建Spring Boot启动文件,具体参考BusinessServerBootstrap
  • 添加mybatis-plus mapper扫描位置(在启动类中)及model位置(在respouces/bootstrap.yml中)
  • 实现SPI机制,创建spi包,创建服务类,实现BusinessAuthService接口,具体参考spi目录下DefaultSpiBusinessAuthService类

# 业务目录

提示

此处为建议目录,用户可以根据业务需求创建对应的目录!

目录结构

# 属性配置

属性配置

项目介绍
项目开发

← 项目介绍 项目开发→

Theme by Vdoing | Copyright © 2023-2025
Frog

鲁ICP备2023023334号-1

鲁公网安备 37021302001133号

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式