fix: close phase4 overseas acceptance gaps
This commit is contained in:
+30
@@ -0,0 +1,30 @@
|
||||
package com.baiyue.gateway.config;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
|
||||
import org.springframework.mock.web.server.MockServerWebExchange;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
|
||||
class GatewaySecurityErrorContractTest {
|
||||
@Test
|
||||
void audienceAndAuthenticationFailuresExposeRequestAndTraceCorrelation() throws Exception {
|
||||
var exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/api/platform/v1/test")
|
||||
.header("X-Request-Id", "request-1234567890")
|
||||
.header("X-Trace-Id", "trace-123456789012")
|
||||
.build());
|
||||
|
||||
GatewaySecurityConfig.writeError(exchange, new ObjectMapper(), HttpStatus.UNAUTHORIZED,
|
||||
"A0401", "未登录或令牌已失效").block();
|
||||
|
||||
var body = new ObjectMapper().readTree(exchange.getResponse().getBodyAsString().block());
|
||||
assertEquals("request-1234567890", body.path("requestId").asText());
|
||||
assertEquals("trace-123456789012", body.path("traceId").asText());
|
||||
assertEquals(body.path("requestId").asText(), exchange.getResponse().getHeaders().getFirst("X-Request-Id"));
|
||||
assertEquals(body.path("traceId").asText(), exchange.getResponse().getHeaders().getFirst("X-Trace-Id"));
|
||||
assertFalse(body.path("timestamp").asText().isBlank());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user