apache / apache/shenyu

[BUG] Register processors inert: @ShenyuSpringMvcClient/@ShenyuDubboClient/@ApiDoc silently ignored in @EnableClientRegister path

Open
#6,536 1 comment 0 reactions 0 assignees View on GitHub
client: register client: spring-mvc priority: critical type: bug
Dominant language
Java
Stars
8.8k
Forks
3.1k
Avg merge
7d 1h
Merged PRs (30d)
85

Description

## Description
In the `@EnableClientRegister` path, `BaseAnnotationApiProcessor.process(ApiBean)` gates the annotation-specific `process(apiBean, annotation)` behind `if (match(apiBean) && Objects.nonNull(annotation))`. But `BaseAnnotationApiProcessor.match(ApiBean)` (and `match(ApiDefinition)`) default to returning `false`, and none of the register processors (`ShenyuSpringMvcClientProcessorImpl`, `ApiDocProcessorImpl`, `ShenyuDubboProcessor`) override `match`. Therefore `false && ...` is always false and `process(.., annotation)` is never invoked. The generic `MateDataApiRegistrarImpl`/`ApiDocRegistrarImpl` rely entirely on these processors to apply annotation properties.

## Location
```
shenyu-client/shenyu-client-core/src/main/java/org/apache/shenyu/client/core/register/matcher/BaseAnnotationApiProcessor.java:32-43 (process), 46-48/56-58 (match defaults false)
shenyu-client-http/shenyu-client-springmvc/.../ShenyuSpringMvcClientProcessorImpl.java:33
shenyu-client-core/.../register/matcher/ApiDocProcessorImpl.java:33
shenyu-client-dubbo/shenyu-client-apache-dubbo/.../ShenyuDubboProcessor.java:28
```

## Impact
`enabled=false` endpoints are still registered as **enabled** (disabled APIs get exposed through the gateway); `registerMetaData=false` still registers metadata; `path` overrides and `desc`/`ruleName`/`tags` are dropped.

## Suggested fix
Make `BaseAnnotationApiProcessor.match` default to `true`, or remove the `match()` gate and fall back to the interface default (`if (nonNull(annotation))`).

## Related existing issue(s)
None

_Identified during the 2026-08-02 audit; full list in [`docs/issue-candidates-2026-08-02.md`](docs/issue-candidates-2026-08-02.md)._

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in shenyu-client/shenyu-client-core/.../BaseAnnotationApiProcessor.java and trace process(ApiBean) and its match methods. Then inspect ShenyuSpringMvcClientProcessorImpl.java, ApiDocProcessorImpl.java, and ShenyuDubboProcessor.java to confirm the register path reaches annotation-specific processing. Done means the affected annotations apply enabled, metadata, path, description, rule-name, and tag properties instead of being silently ignored.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spring
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.