feat(open-platform): 新增开放平台独立链路及订单接口
- 新增开放平台配置块 application.yml,配置 JWKS、公钥地址、issuer、audience 及接口前缀 - 新增 OpenPlatformSecurityConfig,独立安全链路匹配 /api/open/** 请求 - JwtAuthenticationFilter 增加 shouldNotFilter 跳过 /api/open/**,避免 RS256 验签异常 - 新增 OpenTenantContext 与拦截器,令牌中 tenant_id 作为唯一租户来源,防止伪造请求头 - MybatisPlusConfig 优先使用 OpenTenantContext 里的租户 ID,确保数据隔离正确 - sys_order 表显式在 OrderMapper.xml 中使用 tenant_id 条件过滤,支持开放链路多租户隔离 - 新增开放平台订单分页查询接口 /api/open/v1/order/page,使用独立参数与返回值结构 - 出参 OpenOrderVO 支持手机号脱敏,保障数据安全,且只暴露必要字段 - 调整 SecurityConfig 加 @Order(2),让位给开放链路的 SecurityConfig @Order(1) - TenantController.page 增加安全修复,未登录状态拒绝访问,防止匿名读取全部租户数据 - 新增开放平台专用异常处理及认证、权限拒绝响应,避免泄露内部异常信息 - 新增 pom 依赖 spring-boot-starter-oauth2-resource-server,用于 RS256 JWT 验签 - 完整开放平台对接文档 docs/OPEN_PLATFORM_INTEGRATION.md,涵盖设计理念与接口契约 - 增加 OpenOrderVO 单元测试,覆盖手机号脱敏、空列表处理等场景,提高可靠性
This commit is contained in:
@@ -168,3 +168,19 @@ certificate:
|
||||
alipay-cert-public-key-file: "alipayCertPublicKey.crt"
|
||||
alipay-root-cert-file: "alipayRootCert.crt"
|
||||
|
||||
# 开放平台(base-api)对接配置
|
||||
# 业务服务只做本地验签,不共享密钥;/api/open/** 走独立安全链。
|
||||
open-platform:
|
||||
enabled: true
|
||||
# base-api 的 JWKS 公钥地址
|
||||
# 注意:不要改用 spring.security.oauth2.resourceserver.jwt.issuer-uri,
|
||||
# Spring 会去做 OIDC 发现(base-api 没有该文档)导致启动失败。
|
||||
jwk-set-uri: https://base-api.websoft.top/api/v1/oauth/jwks
|
||||
# 必须与 base-api 令牌里的 iss 完全一致
|
||||
issuer: https://base-api.websoft.top/api
|
||||
# 必须与 base-api 令牌里的 aud 一致
|
||||
audience: websoft-open-platform
|
||||
# 对外接口前缀,版本号由 controller 的 @RequestMapping 决定
|
||||
path-prefix: /api/open
|
||||
# 返回给第三方前是否对手机号脱敏
|
||||
mask-sensitive: true
|
||||
|
||||
Reference in New Issue
Block a user