yyqdbngt opened a new pull request, #1056:
URL: https://github.com/apache/rocketmq-dashboard/pull/1056

   Batch of bug fixes found through code review of the studio codebase. Each 
fix ships with a unit test.
   
   **High severity**
   
   - `RocketMQMessageProvider`: message trace parsing used field indexes that 
do not match RocketMQ 5.3.3's `TraceDataEncoder` layout. Consumption nodes 
never matched the requested msgId (SubAfter places msgId at index 2, not 5) and 
Pub status/cost-time fields were read from the wrong columns. Field indexes 
rewritten to the verified 5.3.3 layout.
   - `AclService.updateUser`: partial updates silently reset the `admin` flag 
to `false` because the DTO used a primitive `boolean`. Now `Boolean`, 
preserving the existing value when not provided.
   - `GET /api/acl/users/{id}/credentials`: plain-text credentials were exposed 
to any logged-in user; now requires admin.
   
   **Medium severity**
   
   - `RocketMQMetadataProvider.listConsumerGroups`: read the wrong column 
(`messageModel` instead of `consumeType`), so broadcast groups always displayed 
as clustering.
   - `RocketMQAdminClientImpl.createTopic/updateTopic`: name-only `selectOne` 
threw `TooManyResultsException` when several clusters share a topic name; 
lookups now include the cluster id.
   - `AlertService.exportPrometheusRulesYaml`: emitted one group per rule, 
producing duplicate group names that Prometheus rejects; rules are now grouped 
under a unique name.
   - `CliAgentProvider.complete`: sequential stdout/stderr reads deadlock when 
the child fills a pipe buffer, and the timeout only ran after both reads. 
Output is now drained concurrently and `waitFor` enforces the timeout.
   - `SettingsService.testDataSource`: server-side request to attacker-supplied 
URLs could probe localhost/cloud-metadata (SSRF); the `localhost` hostname and 
link-local addresses are rejected, and the endpoint now requires admin.
   - `AuthWebConfig`/`AuthInterceptor`: the settings UI "require login" toggle 
was persisted but never enforced; enforcement now merges the static property 
with the database toggle.
   
   **Low severity**
   
   - `AiService.chat/execute`: null request bodies caused a 500 NPE; guarded.
   
   Full test suite: 680 tests, 0 failures.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to