Skip to content

fix(admin): remove deprecated raw-password lookup - #7413

Open
sunnysabor wants to merge 1 commit into
apache:masterfrom
sunnysabor:fix/6607-remove-raw-password-path
Open

sunnysabor wants to merge 1 commit into
apache:masterfrom
sunnysabor:fix/6607-remove-raw-password-path

Conversation

@sunnysabor

Copy link
Copy Markdown
Contributor

Summary

Remove the deprecated findByQuery(userName, password) path from the dashboard-user service and mapper, including its plaintext password SQL and dedicated tests. No production code calls this method; authentication continues through DashboardUserService.login(...) and the password-hash flow. The compatibility GET and POST login routes remain unchanged.

Closes #6607

Validation

  • ./mvnw -B -ntp -pl shenyu-admin -Djacoco.skip=true -Dmaven.javadoc.skip=true test (1,719 tests, 0 failures/errors, 1 skipped; Checkstyle clean)
  • Focused dashboard-user mapper/service and platform controller tests passed.
  • Repository search confirms no remaining findByQuery(userName, password) mapper/service implementation or SQL mapping.
  • git diff --check

@sunnysabor

Copy link
Copy Markdown
Contributor Author

CI follow-up: the pr_build reactor is blocked before reaching shenyu-admin by the existing shenyu-client-core test HeartbeatFailureIsolationTest.failureDoesNotSuppressOtherUrisOrSubsequentTicks (NoSuchElementException at line 57). The log shows the shenyu-client-core module failing and shenyu-admin skipped due to the earlier failure; none of the changed files are in that module. This is the baseline issue tracked by #7401, with candidate fixes in #7402 and #7403. I will continue tracking the independent integration, license, and analysis checks.

@sunnysabor

Copy link
Copy Markdown
Contributor Author

Additional CI result: the E2E workflow has completed with the WebSocket case failing before its E2E tests. Its Build examples with Maven step exits with org.mvndaemon.mvnd.common.DaemonException$StaleAddressException: Could not receive a message from the daemon / No message received within 3000ms; the workflow fail-fast then cancels the remaining protocol cases. This is a Maven daemon transport/startup failure, not an observed product-test failure. I will rerun the E2E workflow after the other original CI runs finish so the cancelled cases are exercised too.

@sunnysabor

Copy link
Copy Markdown
Contributor Author

Follow-up: the original integration and K8s workflows are now complete and green. I attempted to rerun the E2E workflow with gh run rerun 36946095221, but GitHub rejected it with Must have admin rights to Repository; this contributor account cannot restart that run. The only E2E failure was the WebSocket example-build mvnd daemon timeout, and fail-fast cancelled the other protocol cases. Could a repository maintainer rerun the E2E workflow so those cases are exercised? I have not added a no-op commit to trigger CI.

@Aias00 Aias00 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean removal. findByQuery is gone from every layer in one go — DashboardUserMapper, dashboard-user-sqlmap.xml, DashboardUserService, DashboardUserServiceImpl, plus the corresponding mapper and service tests — and nothing dangling is left behind: every remaining findByQuery in the tree belongs to TagService, RoleService or the doc services, which declare their own unrelated overloads.

Removing the password = #{password} equality predicate is the right call now that authentication goes through PasswordHashService; comparing stored hashes with .equals invites both timing side channels and a broken migration path. LGTM.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Task] Deprecated raw-password auth path still exported on public service interface

2 participants