Goya 是一个面向企业级场景的后端仓库,核心目标是提供可直接落地的:
- 统一认证授权(PC / 移动端 / 小程序)
- OAuth2.1 与 SSO
- 动态权限 + 数据权限
- 多租户与基础组件化能力
已在 framework-security、component-mybatisplus、component-social、component-security 完成以下闭环能力:
- 统一认证入口:密码、短信、社交、小程序、MFA
- OAuth2.1 扩展授权:
urn:goya:grant-type:pre-auth-code - 双 Token 策略:
AccessToken=JWT、RefreshToken=Opaque(默认轮换,reuse=false) - 全局会话撤销:
logout CURRENT_SESSION | ALL_SESSIONS | BY_CLIENT、管理员kickout - OIDC 登出联动:
/connect/logout收敛到统一会话生命周期服务 - 撤销即时生效:资源侧
RevokedTokenFilter拦截旧 token(401) - 动态 API 权限:
PolicyAuthorizationFilter运行时策略即时生效 - 数据权限执行:
GoyaDataPermissionHandler,生产建议fail-closed=true - 管理域默认实现:
component-admin(RBAC、用户/角色/权限/菜单/部门/字典、策略管理)
| 模块 | 说明 |
|---|---|
component/component-framework/framework-security |
SRA 策略模型与授权引擎 |
component/component-mybatisplus |
MyBatis Plus 企业配置 + 多租户 + 数据权限执行 |
component/component-admin |
企业管理域(RBAC、用户、菜单、部门、字典、策略) |
component/component-social |
短信/第三方/小程序能力与社交绑定 |
component/component-security/security-core |
安全核心模型、SPI、会话生命周期抽象 |
component/component-security/security-authentication |
统一认证 API 与会话命令入口 |
component/component-security/security-oauth2 |
OAuth2.1 授权服务器与令牌治理 |
component/component-security/security-authorization |
资源侧鉴权、吊销拦截、策略联动 |
platform/platform-monolith |
默认运行入口 |
- JDK 25
- Maven 3.9+
- Redis(认证临时态、预认证码、撤销索引)
- OAuth2 相关表(
registered_client、authorization、consent、oauth2_jwk)
mvn -DskipTests validate全仓编译(需 JDK 25):
mvn -DskipTests compilecd platform/platform-monolith
mvn spring-boot:run默认地址:http://localhost:8101
- 依赖版本统一在
bom/pom.xml管理 - 优先复用已有模块,不平行造轮子
- 不新增测试文件(
src/test/**)与测试依赖 - 任何功能变更必须同步更新文档(至少
docs/progress/changelog.md)