Skip to content
New issue

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

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

Already on GitHub? Sign in 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants