This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 6fe1d689025 Refactor AuthorityRule (#24128)
6fe1d689025 is described below
commit 6fe1d6890253c68cfbaa9c9ca146fb763cea480b
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Feb 12 21:51:51 2023 +0800
Refactor AuthorityRule (#24128)
---
.../authority/rule/AuthorityRule.java | 37 ++++++++--------------
1 file changed, 13 insertions(+), 24 deletions(-)
diff --git
a/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/rule/AuthorityRule.java
b/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/rule/AuthorityRule.java
index 351af264490..ec74d02e11f 100644
---
a/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/rule/AuthorityRule.java
+++
b/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/rule/AuthorityRule.java
@@ -22,7 +22,6 @@ import
org.apache.shardingsphere.authority.config.AuthorityRuleConfiguration;
import org.apache.shardingsphere.authority.model.AuthorityRegistry;
import org.apache.shardingsphere.authority.model.ShardingSpherePrivileges;
import org.apache.shardingsphere.authority.spi.AuthorityProvider;
-import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.user.Grantee;
import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
@@ -30,7 +29,6 @@ import
org.apache.shardingsphere.infra.rule.identifier.scope.GlobalRule;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import java.util.Collection;
-import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Optional;
@@ -42,23 +40,26 @@ public final class AuthorityRule implements GlobalRule {
@Getter
private final AuthorityRuleConfiguration configuration;
- private final Collection<ShardingSphereUser> users;
-
private final AuthorityProvider provider;
private volatile AuthorityRegistry authorityRegistry;
- private final Map<String, AlgorithmConfiguration> authenticatorConfig =
new LinkedHashMap<>();
-
- private final String defaultAuthenticator;
-
public AuthorityRule(final AuthorityRuleConfiguration ruleConfig, final
Map<String, ShardingSphereDatabase> databases) {
configuration = ruleConfig;
- users = ruleConfig.getUsers();
provider = TypedSPILoader.getService(AuthorityProvider.class,
ruleConfig.getAuthorityProvider().getType(),
ruleConfig.getAuthorityProvider().getProps());
authorityRegistry = provider.buildAuthorityRegistry(databases,
ruleConfig.getUsers());
- authenticatorConfig.putAll(ruleConfig.getAuthenticators());
- defaultAuthenticator = ruleConfig.getDefaultAuthenticator();
+ }
+
+ /**
+ * Get authenticator type.
+ *
+ * @param user user
+ * @return authenticator type
+ */
+ public String getAuthenticatorType(final ShardingSphereUser user) {
+ return
configuration.getAuthenticators().containsKey(user.getAuthenticationMethodName())
+ ?
configuration.getAuthenticators().get(user.getAuthenticationMethodName()).getType()
+ :
Optional.ofNullable(configuration.getDefaultAuthenticator()).orElse("");
}
/**
@@ -68,7 +69,7 @@ public final class AuthorityRule implements GlobalRule {
* @return user
*/
public Optional<ShardingSphereUser> findUser(final Grantee grantee) {
- return users.stream().filter(each ->
each.getGrantee().equals(grantee)).findFirst();
+ return configuration.getUsers().stream().filter(each ->
each.getGrantee().equals(grantee)).findFirst();
}
/**
@@ -91,18 +92,6 @@ public final class AuthorityRule implements GlobalRule {
authorityRegistry = provider.buildAuthorityRegistry(databases, users);
}
- /**
- * Get authenticator type.
- *
- * @param user user
- * @return authenticator type
- */
- public String getAuthenticatorType(final ShardingSphereUser user) {
- return
authenticatorConfig.containsKey(user.getAuthenticationMethodName())
- ?
authenticatorConfig.get(user.getAuthenticationMethodName()).getType()
- : Optional.ofNullable(defaultAuthenticator).orElse("");
- }
-
@Override
public String getType() {
return AuthorityRule.class.getSimpleName();