Sicherheitskontext, das nicht ausbreitet wird, wenn Tools auf dem Spring AI MCP -Server aufgerufen werdenJava

Java-Forum
Anonymous
 Sicherheitskontext, das nicht ausbreitet wird, wenn Tools auf dem Spring AI MCP -Server aufgerufen werden

Post by Anonymous »

Integriere eine Spring-Boot-Anwendung in den Spring AI MCP Server (Spring-AI-Starter-MCP-Server-Webmvc). Ich teste es mit einer anderen Spring-Boot-Anwendung als Client und nutze die Spring-AI-Starter-MCP-Client-Abhängigkeit.

Code: Select all

McpSyncClient client = McpClientFactory.getInstance();
client.listTools();
< /code>
Beim Aufrufen eines Tools mit: < /p>
Java < /p>
client.callTool(new McpSchema.CallToolRequest(toolName, params));
< /code>
Ich stoße auf den Fehler: "Sicherheitskontext ist ungültig". Der Sicherheitskontext ist auf Toolebene erforderlich, um Parameter wie organisationId zu bestimmen. Propagate) < /li>
 SecurityContextHolder.Mode_inheritablethreadLocal (Propagates, aber ein Durcheinander für Thread -Pool) < /li>
 Swaping Sdks WebmvcsServertranSprovider tauschte SDKs Webmvcsseservertransporter. und versäumte es, den Toollisten zu bekommen, geschweige denn zu ändern.@Bean
@Primary
public McpServerTransportProvider customWebMvcSseServerTransportProvider() {
return new CustomWebMvcSseServerTransportProvider(objectMapper, "/mcp/message");
}
< /code>
SDK -Anbietermethode, die zum Boundedelastic -Thread führt: < /p>
public Mono sendMessage(McpSchema.JSONRPCMessage message) {
return Mono.fromRunnable(() -> {
try {
String jsonText = WebMvcSseServerTransportProvider.this.objectMapper.writeValueAsString(message);
this.sseBuilder.id(this.sessionId).event("message").data(jsonText);
WebMvcSseServerTransportProvider.logger.debug("Message sent to session {}", this.sessionId);
} catch (Exception var3) {
Exception e = var3;
WebMvcSseServerTransportProvider.logger.error("Failed to send message to session {}: {}", this.sessionId, e.getMessage());
this.sseBuilder.error(e);
}

});
}
Frage:
Wie kann ich sicherstellen, dass der Sicherheitskontext beim Aufrufen von Tools auf dem Spring AI MCP -Server ordnungsgemäß an den Boundedelastic -Thread aufgerichtet wird? Gibt es eine empfohlene Konfiguration oder eine Problemumgehung für dieses Problem?

Code: Select all



org.springframework.ai
spring-ai-bom
1.0.0-SNAPSHOT
pom
import





org.springframework.ai
spring-ai-starter-mcp-server-webmvc

< /code>
Client: < /p>



org.springframework.ai
spring-ai-bom
1.0.0-SNAPSHOT
pom
import





org.springframework.ai
spring-ai-starter-mcp-client

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post