修复 SuperAgent Open API CSRF 请求头

This commit is contained in:
andy
2026-07-13 09:59:45 +08:00
parent 20eac61cb6
commit dec98b0632
6 changed files with 42 additions and 6 deletions

View File

@@ -42,7 +42,13 @@ class SuperAgentOpenApiClientImplTest {
void shouldRequestStreamingMessagesWithIncludeTraceAndEmitPublicTraceEvents() throws Exception {
HttpServer server = HttpServer.create(new InetSocketAddress(InetAddress.getLoopbackAddress(), 0), 0);
AtomicReference<String> streamQuery = new AtomicReference<>();
AtomicReference<String> sessionCsrfToken = new AtomicReference<>();
AtomicReference<String> sessionCookie = new AtomicReference<>();
AtomicReference<String> streamCsrfToken = new AtomicReference<>();
AtomicReference<String> streamCookie = new AtomicReference<>();
server.createContext("/api/open/agent-sessions", exchange -> {
sessionCsrfToken.set(exchange.getRequestHeaders().getFirst("X-CSRF-Token"));
sessionCookie.set(exchange.getRequestHeaders().getFirst("Cookie"));
byte[] response = "{\"session_id\":\"session-http-001\"}".getBytes(StandardCharsets.UTF_8);
exchange.getResponseHeaders().add("Content-Type", "application/json");
exchange.sendResponseHeaders(200, response.length);
@@ -52,6 +58,8 @@ class SuperAgentOpenApiClientImplTest {
});
server.createContext("/api/open/agent-sessions/session-http-001/messages/stream", exchange -> {
streamQuery.set(exchange.getRequestURI().getRawQuery());
streamCsrfToken.set(exchange.getRequestHeaders().getFirst("X-CSRF-Token"));
streamCookie.set(exchange.getRequestHeaders().getFirst("Cookie"));
byte[] response = """
id: 1
event: trace
@@ -98,6 +106,10 @@ class SuperAgentOpenApiClientImplTest {
Map.of("source", "unit-test")), traceEvents::add);
assertThat(streamQuery.get()).isEqualTo("include_trace=true");
assertThat(sessionCsrfToken.get()).isNotBlank();
assertThat(sessionCookie.get()).contains("csrf_token=" + sessionCsrfToken.get());
assertThat(streamCsrfToken.get()).isNotBlank();
assertThat(streamCookie.get()).contains("csrf_token=" + streamCsrfToken.get());
assertThat(result.sessionId()).isEqualTo("session-http-001");
assertThat(result.runId()).isEqualTo("run-http-001");
assertThat(result.lastEventId()).isEqualTo("4");