Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

[ISSUE #12017] Split console authentication #12474

Merged

Conversation

RickonZhang0929
Copy link

@RickonZhang0929 RickonZhang0929 commented Aug 7, 2024

Please do not create a Pull Request without creating an issue first.

What is the purpose of the change

For #12017

Split console authentication.

Brief changelog

  • Add ApiType annotations

  • Update configuration file to add fields

  • Update console authentication status fetch

  • Update application.properties - Reuse nacos.core.auth.enabled and add nacos.core.auth.console.enabled

  • Update AuthConfigs - Modify isAuthEnabled() to manage plugin initialization

  • Update AbstractProtocolAuthService - Implement isAuthEnabled() method for Secured annotation and configuration-based authentication

  • Update RemoteRequestAuthFilter - Use authConfigs.isAuthEnabled() for initialization and protocolAuthService.authEnabled(secured) for authentication checks

Verifying this change

XXXX

Follow this checklist to help us incorporate your contribution quickly and easily:

  • Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
  • Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
  • Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
  • Run mvn -B clean package apache-rat:check findbugs:findbugs -Dmaven.test.skip=true to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test to make sure integration-test pass.

Copy link
Collaborator

@KomachiSion KomachiSion left a comment

Choose a reason for hiding this comment

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

It seems no relative with auth?

* Add ApiType annotations

* Update configuration file to add fields

* Update console authentication status fetch

* Update `application.properties` - Reuse `nacos.core.auth.enabled` and add `nacos.core.auth.console.enabled`

* Update `AuthConfigs` - Modify `isAuthEnabled()` to manage plugin initialization

* Update `AbstractProtocolAuthService` - Implement `isAuthEnabled()` method for `Secured` annotation and configuration-based authentication

* Update `RemoteRequestAuthFilter` - Use `authConfigs.isAuthEnabled()` for initialization and `protocolAuthService.authEnabled(secured)` for authentication checks
@RickonZhang0929
Copy link
Author

It seems no relative with auth?

This one is for testing commits, I'll fix this change

@@ -57,6 +58,17 @@ public boolean enableAuth(Secured secured) {
return false;
}

@Override
public boolean authEnabled(Secured secured) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

和上述的enableAuth区别是什么?

是不是应该放到NacosAuthPluginService的enableAuth里?

* @param secured secured information
* @return {@code true} if auth is open, otherwise {@code false}
*/
boolean authEnabled(Secured secured);
Copy link
Collaborator

Choose a reason for hiding this comment

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

和上一个enable auth看起来重复,让插件开发和摸不着头脑

/**
* console API.
*/
ADMIN_API("ADMIN_API"),
Copy link
Collaborator

Choose a reason for hiding this comment

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

我想了一下, 这里可能改叫CONSOLE_API比较好

Copy link
Collaborator

Choose a reason for hiding this comment

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

因为之后可能会单独出maintainer sdk访问admin api,同时拆分部署后console访问server的api可能才叫ADMIN API

所以我想目前的叫CONSOLE_API

当然之后统一改也可以

@@ -115,6 +115,10 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha
}

Secured secured = method.getAnnotation(Secured.class);
if (!protocolAuthService.authEnabled(secured)) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

和前面描述的一样,不再赘述

* Update the location of the authentication judgment
@KomachiSion KomachiSion merged commit 59858d1 into alibaba:summer-ospp#12017 Aug 27, 2024
1 check passed
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants