5e86ebe6b7
- 新增 ApiResult 统一响应封装类,规范前端接口返回结构 - 添加 AuthController,支持多种登录方式及用户信息接口 - 实现 AuthService,包含登录、登出、密码修改、绑定手机号、重置密码等功能 - 集成图形验证码校验和登录失败锁定机制,增强安全性 - 支持邮箱登录和手机号验证码登录,完善多样化认证策略 - 实现 JWT 令牌签发与吊销,确保会话安全管理 - 配置不同环境 application.yml 及配置,支持多租户和灵活缓存配置 - 增加 .gitignore 规则,屏蔽构建产物、IDE 文件和敏感配置 - 引入 AuthProperties 以配置登录与验证码策略参数
62 lines
1.9 KiB
Bash
Executable File
62 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
#
|
||
# 开发环境启动脚本。
|
||
#
|
||
# 项目要求 Java 25(maven.compiler.release=25),系统默认 JDK 可能是 17,
|
||
# 直接跑 ./mvnw 会报 "release version 25 not supported",所以这里固定 JDK。
|
||
#
|
||
# 用法:
|
||
# ./run.sh 使用 dev profile(连本地 MySQL / Redis)
|
||
# ./run.sh demo 使用 demo profile(H2 + 内存缓存,零外部依赖)
|
||
# ./run.sh dev --server.port=8081
|
||
# JDK25_HOME=/path/to/jdk ./run.sh
|
||
#
|
||
set -euo pipefail
|
||
|
||
JDK25_HOME="${JDK25_HOME:-$HOME/Library/Java/JavaVirtualMachines/temurin-25.jdk}"
|
||
|
||
# macOS 的 .jdk 是 bundle 结构,真正的 JDK 根目录在 Contents/Home;
|
||
# 也兼容直接指向 JDK 根目录的情况。
|
||
if [[ -x "$JDK25_HOME/Contents/Home/bin/java" ]]; then
|
||
JDK25_HOME="$JDK25_HOME/Contents/Home"
|
||
fi
|
||
|
||
if [[ ! -x "$JDK25_HOME/bin/java" ]]; then
|
||
echo "未找到 JDK 25:$JDK25_HOME" >&2
|
||
echo "可通过 JDK25_HOME=/path/to/jdk25 ./run.sh 指定其他位置" >&2
|
||
exit 1
|
||
fi
|
||
|
||
export JAVA_HOME="$JDK25_HOME"
|
||
export PATH="$JAVA_HOME/bin:$PATH"
|
||
|
||
cd "$(dirname "$0")"
|
||
|
||
# JDK 23 起 sun.misc.Unsafe 的内存访问方法被标记为「最终弃用」,
|
||
# Netty(来自 Lettuce/Redis)内部仍在使用,启动时会打印 WARNING。
|
||
APP_JVM_ARGS="${APP_JVM_ARGS:---sun-misc-unsafe-memory-access=allow}"
|
||
|
||
PROFILE="${1:-dev}"
|
||
if [[ "$PROFILE" == "demo" ]]; then
|
||
# demo 需要 H2,而 H2 只在 -Pdemo 时是 runtime 依赖
|
||
MVN_PROFILE=(-Pdemo)
|
||
shift || true
|
||
else
|
||
MVN_PROFILE=()
|
||
shift || true
|
||
fi
|
||
|
||
echo "JDK: $("$JAVA_HOME/bin/java" -version 2>&1 | head -1)"
|
||
echo "Profile: $PROFILE"
|
||
|
||
if [[ $# -gt 0 ]]; then
|
||
exec ./mvnw -q "${MVN_PROFILE[@]}" spring-boot:run \
|
||
-Dspring-boot.run.profiles="$PROFILE" \
|
||
-Dspring-boot.run.jvmArguments="$APP_JVM_ARGS" \
|
||
-Dspring-boot.run.arguments="$*"
|
||
fi
|
||
|
||
exec ./mvnw -q "${MVN_PROFILE[@]}" spring-boot:run \
|
||
-Dspring-boot.run.profiles="$PROFILE" \
|
||
-Dspring-boot.run.jvmArguments="$APP_JVM_ARGS"
|