diff --git a/openframe-gateway-service-core/src/main/java/com/openframe/gateway/config/ws/ToolApiWebSocketProxyUrlFilter.java b/openframe-gateway-service-core/src/main/java/com/openframe/gateway/config/ws/ToolApiWebSocketProxyUrlFilter.java index 9b9f77c13..f8150016f 100644 --- a/openframe-gateway-service-core/src/main/java/com/openframe/gateway/config/ws/ToolApiWebSocketProxyUrlFilter.java +++ b/openframe-gateway-service-core/src/main/java/com/openframe/gateway/config/ws/ToolApiWebSocketProxyUrlFilter.java @@ -5,7 +5,9 @@ import com.openframe.data.document.tool.IntegratedTool; import com.openframe.data.reactive.repository.tool.ReactiveIntegratedToolRepository; import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; +import org.springframework.web.server.ResponseStatusException; import org.springframework.web.server.ServerWebExchange; import java.util.Map; @@ -28,7 +30,11 @@ public ToolApiWebSocketProxyUrlFilter( @Override protected String getRequestToolId(String path) { - return path.split("/")[3]; + String[] segments = path.split("/"); + if (segments.length < 4) { + throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Invalid WebSocket proxy path: " + path); + } + return segments[3]; } @Override @@ -48,3 +54,4 @@ protected ServerWebExchange mutateExchange(ServerWebExchange exchange, Integrate .build(); } } +