fix(gateway): forward standard internal trust header

This commit is contained in:
2026-09-08 21:38:12 +08:00
parent e9ad7e333a
commit 0c4d7c644e
4 changed files with 4 additions and 4 deletions
@@ -10,7 +10,7 @@ import java.util.Set;
/** Uses the overseas gateway's authenticated authorization snapshot instead of large JWT claims. */
public final class GatewayAccessTokenSessionValidator implements AccessTokenSessionValidator {
public static final String TOKEN_HEADER = "X-Gateway-Internal-Token";
public static final String TOKEN_HEADER = "X-Internal-Service-Token";
public static final String ROLES_HEADER = "X-Overseas-Roles";
public static final String AUTHORITIES_HEADER = "X-Overseas-Authorities";
@@ -55,7 +55,7 @@ public class OverseasSecurityProjectionFilter implements GlobalFilter, Ordered {
var request = exchange.getRequest().mutate()
.header("X-Overseas-Roles", join(result.roles()))
.header("X-Overseas-Authorities", join(result.authorities()))
.header("X-Gateway-Internal-Token", properties.internalServiceToken())
.header("X-Internal-Service-Token", properties.internalServiceToken())
.build();
return chain.filter(exchange.mutate().request(request).build());
}
@@ -19,7 +19,7 @@ public class TrustedIdentityHeaderFilter implements GlobalFilter, Ordered {
private static final List<String> TRUSTED_HEADERS = List.of(
"X-User-Id", "X-Membership-Id", "X-Tenant-Id", "X-Operator-Tenant-Id",
"X-App-Code", "X-Client-Type", "X-Overseas-Roles", "X-Overseas-Authorities",
"X-Gateway-Internal-Token"
"X-Internal-Service-Token"
);
@Override
@@ -67,7 +67,7 @@ class OverseasSecurityProjectionFilterTest {
var accepted = exchange("/api/platform/v1/last-leg/orders");
StepVerifier.create(filter.filter(accepted, routedExchange -> {
routed.set(true);
assertThat(routedExchange.getRequest().getHeaders().getFirst("X-Gateway-Internal-Token"))
assertThat(routedExchange.getRequest().getHeaders().getFirst("X-Internal-Service-Token"))
.isEqualTo("gateway-secret");
assertThat(routedExchange.getRequest().getHeaders().getFirst("X-Overseas-Authorities"))
.isEqualTo("platform:overseas-warehouse:last-mile-order:list");