perf: 精简 fat jar 体积(34MB→18MB)+ Basic 认证增加 authFlag 总开关

- pom 移除未使用依赖:sqlite-jdbc(Agent 已拆 Python)、h2(dev Mock)、
  sa-token-solon-plugin(鉴权已改手写 Basic),并清理对应版本属性
- OrderApi.checkBasic 增加 order.authFlag 总开关(默认 true,对齐原程序
  sa-token.authFlag 语义,false 时 /order/** 全放行)
- app.yml 增加 order.authFlag 配置项

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-08-27 15:52:29 +08:00
co-authored by Claude
parent 695a7f84f3
commit f333c87aa5
3 changed files with 14 additions and 28 deletions
+6 -27
View File
@@ -33,10 +33,6 @@
<!-- 数据库驱动(solon-parent 不管理) -->
<ojdbc.version>23.3.0.23.09</ojdbc.version>
<mssql-jdbc.version>12.6.1.jre11</mssql-jdbc.version>
<sqlite-jdbc.version>3.46.1.0</sqlite-jdbc.version>
<!-- 鉴权 -->
<sa-token.version>1.39.0</sa-token.version>
</properties>
<dependencies>
@@ -111,35 +107,18 @@
<version>${mssql-jdbc.version}</version>
</dependency>
<!-- SQLiteB 端 Agent 用) -->
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>${sqlite-jdbc.version}</version>
</dependency>
<!-- 已移除依赖说明(精简 jar 体积):
- sqlite-jdbc:原为 B 端 Agent 用,Agent 已拆分为独立 Python 项目
- h2:开发 Mock 数据源,需要时本地临时加回
- sa-token-solon-plugin:鉴权已改为 OrderApi 手写 HTTP Basic
-->
<!-- H2(开发 Mock 数据源) -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.3.232</version>
<scope>runtime</scope>
</dependency>
<!-- ========== HTTP / WebSocketAgent 用) ========== -->
<!-- ========== HTTPUptimeKuma 心跳用) ========== -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>
<!-- ========== 鉴权(可选,按需启用) ========== -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-solon-plugin</artifactId>
<version>${sa-token.version}</version>
<optional>true</optional>
</dependency>
<!-- ========== JSON 解析(Solon 生态标准库) ========== -->
<dependency>
<groupId>org.noear</groupId>
@@ -41,12 +41,17 @@ public class OrderApi {
/**
* 全接口 Basic 认证(等价原程序 SaServletFilter 对 /order/** 的 SaBasicUtil.check())。
* order.authFlag 总开关(默认 true);order.basic"user:password")为账号。
* 校验失败返回 401 并带 WWW-Authenticate 头(浏览器弹登录框、B 端感知未授权)。
*/
private void checkBasic(Context ctx) {
// authFlag=false 时整体关闭鉴权(对齐原程序 sa-token.authFlag 开关语义)
if (!Solon.cfg().getBool("order.authFlag", true)) {
return;
}
String expected = Solon.cfg().get("order.basic", "");
if (expected == null || expected.trim().isEmpty()) {
return; // 未配置放行(兼容与调试;生产环境必须配置)
return; // 未配置账号放行(兼容与调试;生产环境必须配置)
}
String auth = ctx.header("Authorization");
+2
View File
@@ -38,6 +38,8 @@ hm:
# 格式 "user:password",未配置时放行;生产环境必须配置
# order.basic: "hmapiuser:xxxx"
order:
# 鉴权总开关(对齐原程序 sa-token.authFlag),false 时 /order/** 全放行
authFlag: true
basic: ""
# /api/admin/** 的管理 TokenAgent 环回调用携带 X-Admin-Token 头),未配置时放行
admin: