#6665·shenyu

[BUG] WebSocket `enabled` hardcoded `true`, ignores `@ShenyuSpringWebSocketClient.enabled()`

Author: Aias00Created Aug 3, 2026Updated Sep 19, 2026
Labelstype: bugclient: registerpriority: high
  • Severity: High
  • Location: shenyu-client/shenyu-client-websocket/shenyu-client-spring-websocket/src/main/java/org/apache/shenyu/client/spring/websocket/init/SpringWebSocketClientEventListener.java:229

Description: buildMetaDataDTO builds the MetaDataRegisterDTO with .enabled(true) literally. The annotation declares boolean enabled() default true; (ShenyuSpringWebSocketClient.java:68) and is meant to allow disabling a route. Every other client honors the field — SOFA does .enabled(shenyuSofaClient.enabled()) (SofaServiceEventListener.java:170), Tars .enabled(shenyuTarsClient.enabled()) (TarsServiceBeanEventListener.java:191), MCP metaDataRegisterDTO.setEnabled(shenyuMcpTool.getEnable()) (McpServiceEventListener.java:370). Only WebSocket ignores it.

Impact: @ShenyuSpringWebSocketClient(enabled = false) to take a websocket endpoint offline still registers the metadata as enabled; the route stays live — opt-out silently broken (availability/security).

Suggested fix: Replace .enabled(true) with .enabled(webSocketClient.enabled()).

Confidence: High

  • Related existing: none

Identified during the 2026-08-02 deep re-scan; full list in docs/scan2-2026-08-02/00-consolidated-critical-high.md.