Skip to content

llfzzz/RTT

Repository files navigation

RTT Backend Foundation

RTT Backend Foundation 是一套面向后端管理系统的通用基础框架。目标是把常见后端项目里反复编写的登录鉴权、用户权限、缓存、邮件验证码、数据库基础表、安全工具和代码生成能力整理成可复用组件,后续新项目可以直接接入,不需要从零重写。

本仓库基于 Apache-2.0 许可的开源后端项目能力做二次整理和组件化改造,保留必要的开源许可证与源码版权头,README 内容已改写为 RTT 自有说明。

能力范围

  • 登录鉴权:Spring Security、JWT、图形验证码、在线用户、单用户登录控制。
  • 用户管理:用户、角色、菜单、部门、岗位、数据权限。
  • 邮箱验证码:基于邮件服务和 Redis 的验证码发送、校验、过期和成功后删除。
  • 缓存组件:封装 Redis 常见读写、TTL、Hash、List、Set、scan 查询。
  • 安全工具:密码加密、RSA 解密、当前登录用户、匿名接口、统一异常处理。
  • 系统增强:操作日志、接口限流、异步线程池、跨域、Swagger 配置。
  • Boot 3 微服务基础层:ApiError、traceId、HS512 JWT、WebFlux 错误写出、RBAC route policy、固定窗口限流。
  • 数据库基础:后台系统基础表、Quartz 表、安全增强 SQL。
  • 代码生成:后端 CRUD、DTO、Mapper、Repository、Service、Controller 和前端接口/页面模板。

模块说明

模块 用途
backend-foundation-boot3-starter Boot 3.5 / JDK 21 独立 starter,提供 JWT、traceId、ApiError、WebFlux 错误响应、RBAC route policy、固定窗口限流
backend-foundation-starter Boot 2 / ELAdmin 旧 starter,提供统一接入注解、自动配置和邮箱验证码适配
eladmin-common 公共注解、异常、Redis、工具类、基础 DTO/Entity/Mapper
eladmin-system 登录鉴权、用户权限、菜单、角色、部门、岗位、Quartz、系统接口
eladmin-logging 操作日志、异常日志和日志注解
eladmin-tools 邮件、对象存储、本地文件、支付等工具能力
eladmin-generator 数据库表到 CRUD 代码的生成器

快速安装

git clone https://github.com/llfzzz/RTT.git
cd RTT
MAVEN_OPTS="-Xmx512m" mvn -q -DskipTests -pl backend-foundation-boot3-starter install

构建时建议保留 MAVEN_OPTS="-Xmx512m",避免依赖解析或注解处理时占用过多内存。

在新项目中接入

添加 Maven 依赖:

<dependency>
    <groupId>com.woxiangchuan.foundation</groupId>
    <artifactId>backend-foundation-boot3-starter</artifactId>
    <version>0.2.0</version>
</dependency>

Boot 3 starter 使用 AutoConfiguration.imports 自动接入,不需要 @EnableBackendFoundation。复制配置模板并按项目环境修改:

backend-foundation-boot3-starter/src/main/resources/application-foundation-boot3-template.yml

重点替换:

  • foundation.jwt.base64-secret
  • foundation.jwt.token-validity
  • foundation.routes.public-paths
  • foundation.routes.rbac
  • foundation.rate-limit.*

旧 Boot 2 / ELAdmin 项目继续使用 backend-foundation-starter 和显式启用注解:

import com.woxiangchuan.foundation.autoconfigure.EnableBackendFoundation;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@EnableBackendFoundation
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

对应旧配置模板:

backend-foundation-starter/src/main/resources/application-foundation-template.yml

重点替换:

  • jwt.base64-secret
  • Redis 连接信息
  • 数据库连接信息
  • 邮箱 SMTP 配置

Boot 3 Foundation Starter

backend-foundation-boot3-starter 不依赖旧 ELAdmin 单体模块,适合 Spring Cloud Gateway、WebFlux 或 Boot 3 MVC 服务直接复用:

JwtTokenService tokens = ...
String jwt = tokens.createToken(new FoundationPrincipal("user-1", Set.of("RIDER", "DRIVER")));
JwtToken parsed = tokens.parse(jwt);

默认配置保持微服务网关语义:

foundation:
  jwt:
    base64-secret: ${JWT_BASE64_SECRET:replace-with-64-byte-base64-hs512-secret}
    token-validity: PT2H
  routes:
    public-paths: [/api/auth/**, /actuator/health, /actuator/info]
    rbac:
      - path-pattern: /api/admin/**
        roles: [OPERATOR, ADMIN]
      - path-pattern: /api/audits/**
        roles: [OPERATOR, ADMIN]
  rate-limit:
    backend: memory
    auth:
      count: 20
      period: PT60S
    api:
      count: 120
      period: PT60S

内存限流适合本地和单实例;配置 foundation.rate-limit.backend=redis 且存在 StringRedisTemplate 时,会切换到 Redis Lua 固定窗口计数。

邮箱验证码

backend-foundation-starter 提供了统一接口:

import com.woxiangchuan.foundation.verification.EmailVerificationCodeService;

emailVerificationCodeService.sendCode("user@example.com");
boolean ok = emailVerificationCodeService.verifyCode("user@example.com", "123456");

默认配置:

foundation:
  email-code:
    key-prefix: "foundation:email-code:"
    length: 6
    ttl-seconds: 300
    delete-on-success: true

数据库脚本

基础表结构:

sql/eladmin.sql
sql/quartz.sql

安全增强脚本:

sql/foundation/security-hardening.sql

安全增强脚本包含用户表关键字段约束、邮箱验证码审计表、用户角色/角色菜单/角色部门外键关系。生产环境执行前应先检查已有数据是否存在空值或孤儿关联。

模板清单

邮件和任务通知模板:

eladmin-system/src/main/resources/template/email.ftl
eladmin-system/src/main/resources/template/taskAlarm.ftl

后端 CRUD 代码生成模板:

eladmin-generator/src/main/resources/template/admin/Controller.ftl
eladmin-generator/src/main/resources/template/admin/Service.ftl
eladmin-generator/src/main/resources/template/admin/ServiceImpl.ftl
eladmin-generator/src/main/resources/template/admin/Repository.ftl
eladmin-generator/src/main/resources/template/admin/Entity.ftl
eladmin-generator/src/main/resources/template/admin/Dto.ftl
eladmin-generator/src/main/resources/template/admin/Mapper.ftl
eladmin-generator/src/main/resources/template/admin/QueryCriteria.ftl

前端接口和页面生成模板:

eladmin-generator/src/main/resources/template/front/api.ftl
eladmin-generator/src/main/resources/template/front/index.ftl

验证命令

MAVEN_OPTS="-Xmx512m" mvn -q -pl backend-foundation-boot3-starter test
MAVEN_OPTS="-Xmx512m" mvn -q -DskipTests -pl backend-foundation-boot3-starter package

旧 Boot 2 starter 可继续单独构建:

MAVEN_OPTS="-Xmx512m" mvn -q -DskipTests -pl backend-foundation-starter -am install

许可证

本仓库保留 Apache License 2.0。部分基础能力来自 Apache-2.0 许可的开源项目并在此基础上做组件化整理、配置模板补充和适配层扩展。使用和二次分发时请保留 LICENSE 文件及源码中的版权声明。

About

build the general-purpose script

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors