[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.
Source: apache/shenyu