参考同级项目 novavis-authority 实现,在 HTTPS 基础上增加应用层加密。 后端: - CryptoService: AES-256-GCM + PBKDF2 密钥派生(manage-common) - CryptoFilter: Gateway GlobalFilter,检测 X-Encrypted 头后加解密请求/响应体 - 配置:app.encryption.secret 通过环境变量注入 前端: - crypto.ts: Web Crypto API 实现 AES-256-GCM + PBKDF2 - request.ts: 拦截器自动加密请求体、解密响应体 - 环境变量 VITE_ENCRYPTION_SECRET 测试覆盖: - 后端 CryptoServiceTest 16 个用例 + CryptoFilterTest 7 个用例 - 前端 crypto.test.ts 8 个用例 + Playwright E2E smoke 测试 - 全量 510 个前端测试 + 后端全量测试全部通过,无回归
42 lines
1004 B
YAML
42 lines
1004 B
YAML
# 本地开发环境配置
|
|
spring:
|
|
config:
|
|
activate:
|
|
on-profile: local
|
|
cloud:
|
|
gateway:
|
|
routes:
|
|
- id: manage-app
|
|
uri: http://localhost:8084
|
|
predicates:
|
|
- Path=/api/**
|
|
default-filters:
|
|
- name: JwtAuthentication
|
|
- name: RbacAuthorization
|
|
- name: Retry
|
|
args:
|
|
retries: 3
|
|
statuses: BAD_GATEWAY,SERVICE_UNAVAILABLE
|
|
methods: GET,POST
|
|
backoff:
|
|
firstBackoff: 10ms
|
|
maxBackoff: 50ms
|
|
factor: 2
|
|
basedOnPreviousValue: false
|
|
- name: DedupeResponseHeader
|
|
args:
|
|
name: Content-Encoding
|
|
strategy: RETAIN_FIRST
|
|
|
|
jwt:
|
|
secret: U2FsdGVkX1+vZ5Y9QmKxL8nN3rP7tW2jH4fG6dA8sB1cE5yN0zX3qV7wM4
|
|
expiration: 86400000
|
|
|
|
app:
|
|
encryption:
|
|
secret: GymManageEncryptionSecretKey2026!
|
|
|
|
logging:
|
|
level:
|
|
cn.novalon.manage.gateway: DEBUG
|
|
org.springframework.cloud.gateway: DEBUG |