You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2021/04/06 05:45:50 UTC

[shardingsphere] branch master updated: Fix compile error (#9944)

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 1918a93  Fix compile error (#9944)
1918a93 is described below

commit 1918a93fc0dc6a66142c751bc968fae0419a4676
Author: Liang Zhang <te...@163.com>
AuthorDate: Tue Apr 6 13:45:02 2021 +0800

    Fix compile error (#9944)
---
 .../loader/dialect/PostgreSQLPrivilegeLoader.java  | 51 +++++++++++-----------
 .../dialect/PostgreSQLPrivilegeLoaderTest.java     | 32 +++++++-------
 .../user/yaml/swapper/UsersYamlSwapperTest.java    | 11 +++--
 3 files changed, 46 insertions(+), 48 deletions(-)

diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/auth/builder/loader/dialect/PostgreSQLPrivilegeLoader.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/auth/builder/loader/dialect/PostgreSQLPrivilegeLoader.java
index f56f158..3d41491 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/auth/builder/loader/dialect/PostgreSQLPrivilegeLoader.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/auth/builder/loader/dialect/PostgreSQLPrivilegeLoader.java
@@ -22,8 +22,8 @@ import org.apache.shardingsphere.infra.metadata.auth.model.privilege.PrivilegeTy
 import org.apache.shardingsphere.infra.metadata.auth.model.privilege.ShardingSpherePrivilege;
 import org.apache.shardingsphere.infra.metadata.auth.model.privilege.database.SchemaPrivilege;
 import org.apache.shardingsphere.infra.metadata.auth.model.privilege.database.TablePrivilege;
-import org.apache.shardingsphere.infra.metadata.auth.model.user.Grantee;
-import org.apache.shardingsphere.infra.metadata.auth.model.user.ShardingSphereUser;
+import org.apache.shardingsphere.infra.metadata.user.Grantee;
+import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
 
 import javax.sql.DataSource;
 import java.sql.Connection;
@@ -37,6 +37,7 @@ import java.util.LinkedHashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Optional;
 import java.util.stream.Collectors;
 
@@ -44,11 +45,11 @@ import java.util.stream.Collectors;
  * PostgreSQL privilege loader.
  */
 public final class PostgreSQLPrivilegeLoader implements PrivilegeLoader {
-
+    
     private static final String ROLES_SQL = "select * from pg_roles WHERE rolname IN (%s)";
-
+    
     private static final String TABLE_PRIVILEGE_SQL = "SELECT grantor, grantee, table_catalog, table_name, privilege_type, is_grantable from information_schema.table_privileges WHERE grantee IN (%s)";
-
+    
     @Override
     public Map<ShardingSphereUser, ShardingSpherePrivilege> load(final Collection<ShardingSphereUser> users, final DataSource dataSource) throws SQLException {
         Map<ShardingSphereUser, ShardingSpherePrivilege> result = new LinkedHashMap<>();
@@ -70,13 +71,13 @@ public final class PostgreSQLPrivilegeLoader implements PrivilegeLoader {
         }
         fillTablePrivilege(privilegeCache, privileges);
     }
-
+    
     private void fillTablePrivilege(final Map<ShardingSphereUser, Map<String, Map<String, List<PrivilegeType>>>> privilegeCache, final Map<ShardingSphereUser, ShardingSpherePrivilege> privileges) {
-        for (ShardingSphereUser user : privilegeCache.keySet()) {
-            for (String db : privilegeCache.get(user).keySet()) {
-                for (String tableName : privilegeCache.get(user).get(db).keySet()) {
-                    TablePrivilege tablePrivilege = new TablePrivilege(tableName, privilegeCache.get(user).get(db).get(tableName));
-                    ShardingSpherePrivilege privilege = privileges.get(user);
+        for (Entry<ShardingSphereUser, Map<String, Map<String, List<PrivilegeType>>>> entry : privilegeCache.entrySet()) {
+            for (String db : entry.getValue().keySet()) {
+                for (String tableName : entry.getValue().get(db).keySet()) {
+                    TablePrivilege tablePrivilege = new TablePrivilege(tableName, entry.getValue().get(db).get(tableName));
+                    ShardingSpherePrivilege privilege = privileges.get(entry.getKey());
                     if (!privilege.getDatabasePrivilege().getSpecificPrivileges().containsKey(db)) {
                         privilege.getDatabasePrivilege().getSpecificPrivileges().put(db, new SchemaPrivilege(db));
                     }
@@ -85,12 +86,12 @@ public final class PostgreSQLPrivilegeLoader implements PrivilegeLoader {
             }
         }
     }
-
+    
     private void collectPrivilege(final Map<ShardingSphereUser, Map<String, Map<String, List<PrivilegeType>>>> privilegeCache, final ResultSet resultSet) throws SQLException {
         String db = resultSet.getString("table_catalog");
         String tableName = resultSet.getString("table_name");
         String privilegeType = resultSet.getString("privilege_type");
-        Boolean hasPrivilege = resultSet.getString("is_grantable").equalsIgnoreCase("TRUE");
+        boolean hasPrivilege = resultSet.getString("is_grantable").equalsIgnoreCase("TRUE");
         String grantee = resultSet.getString("grantee");
         if (hasPrivilege) {
             privilegeCache
@@ -100,7 +101,7 @@ public final class PostgreSQLPrivilegeLoader implements PrivilegeLoader {
                     .add(getPrivilegeType(privilegeType));
         }
     }
-
+    
     private void fillRolePrivilege(final Map<ShardingSphereUser, ShardingSpherePrivilege> privileges, final DataSource dataSource, final Collection<ShardingSphereUser> users) throws SQLException {
         try (Connection connection = dataSource.getConnection()) {
             Statement statement = connection.createStatement();
@@ -111,19 +112,19 @@ public final class PostgreSQLPrivilegeLoader implements PrivilegeLoader {
             }
         }
     }
-
+    
     private void fillRolePrivilege(final Map<ShardingSphereUser, ShardingSpherePrivilege> privileges, final ResultSet resultSet) throws SQLException {
         Optional<ShardingSphereUser> user = getShardingSphereUser(privileges, resultSet);
         if (user.isPresent()) {
             privileges.get(user.get()).getAdministrativePrivilege().getPrivileges().addAll(loadRolePrivileges(resultSet));
         }
     }
-
+    
     private Optional<ShardingSphereUser> getShardingSphereUser(final Map<ShardingSphereUser, ShardingSpherePrivilege> privileges, final ResultSet resultSet) throws SQLException {
         Grantee grantee = new Grantee(resultSet.getString("rolname"), "");
         return privileges.keySet().stream().filter(each -> each.getGrantee().equals(grantee)).findFirst();
     }
-
+    
     private Collection<PrivilegeType> loadRolePrivileges(final ResultSet resultSet) throws SQLException {
         Collection<PrivilegeType> result = new LinkedList<>();
         addToPrivilegeTypesIfPresent(resultSet.getBoolean("rolsuper"), PrivilegeType.SUPER, result);
@@ -134,19 +135,17 @@ public final class PostgreSQLPrivilegeLoader implements PrivilegeLoader {
         addToPrivilegeTypesIfPresent(resultSet.getBoolean("rolcanlogin"), PrivilegeType.CAN_LOGIN, result);
         return result;
     }
-
+    
     private String getTablePrivilegeSQL(final Collection<ShardingSphereUser> users) {
-        String userList = users.stream().map(each -> String.format("'%s'", each.getGrantee().getUsername()))
-                .collect(Collectors.joining(", "));
+        String userList = users.stream().map(each -> String.format("'%s'", each.getGrantee().getUsername())).collect(Collectors.joining(", "));
         return String.format(TABLE_PRIVILEGE_SQL, userList);
     }
-
+    
     private String getRolePrivilegeSQL(final Collection<ShardingSphereUser> users) {
-        String userList = users.stream().map(each -> String.format("'%s'", each.getGrantee().getUsername()))
-                .collect(Collectors.joining(", "));
+        String userList = users.stream().map(each -> String.format("'%s'", each.getGrantee().getUsername())).collect(Collectors.joining(", "));
         return String.format(ROLES_SQL, userList);
     }
-
+    
     private PrivilegeType getPrivilegeType(final String privilege) {
         switch (privilege) {
             case "SELECT":
@@ -177,13 +176,13 @@ public final class PostgreSQLPrivilegeLoader implements PrivilegeLoader {
                 throw new UnsupportedOperationException(privilege);
         }
     }
-
+    
     private void addToPrivilegeTypesIfPresent(final boolean hasPrivilege, final PrivilegeType privilegeType, final Collection<PrivilegeType> target) {
         if (hasPrivilege) {
             target.add(privilegeType);
         }
     }
-
+    
     @Override
     public String getDatabaseType() {
         return "PostgreSQL";
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/auth/builder/loader/dialect/PostgreSQLPrivilegeLoaderTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/auth/builder/loader/dialect/PostgreSQLPrivilegeLoaderTest.java
index 156c1c6..420470f 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/auth/builder/loader/dialect/PostgreSQLPrivilegeLoaderTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/auth/builder/loader/dialect/PostgreSQLPrivilegeLoaderTest.java
@@ -21,7 +21,7 @@ import org.apache.shardingsphere.infra.metadata.auth.builder.loader.PrivilegeLoa
 import org.apache.shardingsphere.infra.metadata.auth.model.privilege.PrivilegeType;
 import org.apache.shardingsphere.infra.metadata.auth.model.privilege.ShardingSpherePrivilege;
 import org.apache.shardingsphere.infra.metadata.auth.model.privilege.database.SchemaPrivilege;
-import org.apache.shardingsphere.infra.metadata.auth.model.user.ShardingSphereUser;
+import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
 import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -47,19 +47,19 @@ import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
 public final class PostgreSQLPrivilegeLoaderTest {
-
+    
     @BeforeClass
     public static void setUp() {
         ShardingSphereServiceLoader.register(PrivilegeLoader.class);
     }
-
+    
     @Test
     public void assertLoad() throws SQLException {
         Collection<ShardingSphereUser> users = createUsers();
         DataSource dataSource = mockDataSource(users);
         assertPrivilege(getPrivilegeLoader().load(users, dataSource));
     }
-
+    
     private void assertPrivilege(final Map<ShardingSphereUser, ShardingSpherePrivilege> actual) {
         assertThat(actual.size(), is(1));
         ShardingSphereUser user = new ShardingSphereUser("postgres", "", "");
@@ -74,25 +74,25 @@ public final class PostgreSQLPrivilegeLoaderTest {
                 PrivilegeType.CREATE_DATABASE, PrivilegeType.CAN_LOGIN));
         assertEquals(actual.get(user).getAdministrativePrivilege().getPrivileges(), expectedAdministrativePrivilege);
     }
-
+    
     private Collection<ShardingSphereUser> createUsers() {
-        LinkedList<ShardingSphereUser> users = new LinkedList<>();
-        users.add(new ShardingSphereUser("postgres", "", ""));
-        return users;
+        LinkedList<ShardingSphereUser> result = new LinkedList<>();
+        result.add(new ShardingSphereUser("postgres", "", ""));
+        return result;
     }
-
+    
     private DataSource mockDataSource(final Collection<ShardingSphereUser> users) throws SQLException {
         ResultSet tablePrivilegeResultSet = mockTablePrivilegeResultSet();
-        DataSource dataSource = mock(DataSource.class, RETURNS_DEEP_STUBS);
+        DataSource result = mock(DataSource.class, RETURNS_DEEP_STUBS);
         String tablePrivilegeSql = "SELECT grantor, grantee, table_catalog, table_name, privilege_type, is_grantable from information_schema.table_privileges WHERE grantee IN (%s)";
         String userList = users.stream().map(item -> String.format("'%s'", item.getGrantee().getUsername(), item.getGrantee().getHostname())).collect(Collectors.joining(", "));
-        when(dataSource.getConnection().createStatement().executeQuery(String.format(tablePrivilegeSql, userList))).thenReturn(tablePrivilegeResultSet);
+        when(result.getConnection().createStatement().executeQuery(String.format(tablePrivilegeSql, userList))).thenReturn(tablePrivilegeResultSet);
         ResultSet rolePrivilegeResultSet = mockRolePrivilegeResultSet();
         String rolePrivilegeSql = "select * from pg_roles WHERE rolname IN (%s)";
-        when(dataSource.getConnection().createStatement().executeQuery(String.format(rolePrivilegeSql, userList))).thenReturn(rolePrivilegeResultSet);
-        return dataSource;
+        when(result.getConnection().createStatement().executeQuery(String.format(rolePrivilegeSql, userList))).thenReturn(rolePrivilegeResultSet);
+        return result;
     }
-
+    
     private ResultSet mockTablePrivilegeResultSet() throws SQLException {
         ResultSet result = mock(ResultSet.class, RETURNS_DEEP_STUBS);
         when(result.next()).thenReturn(true, true, true, true, true, true, true, false);
@@ -103,7 +103,7 @@ public final class PostgreSQLPrivilegeLoaderTest {
         when(result.getString("grantee")).thenReturn("postgres");
         return result;
     }
-
+    
     private ResultSet mockRolePrivilegeResultSet() throws SQLException {
         ResultSet result = mock(ResultSet.class, RETURNS_DEEP_STUBS);
         when(result.next()).thenReturn(true, false);
@@ -116,7 +116,7 @@ public final class PostgreSQLPrivilegeLoaderTest {
         when(result.getBoolean("rolcanlogin")).thenReturn(true);
         return result;
     }
-
+    
     private PrivilegeLoader getPrivilegeLoader() {
         for (PrivilegeLoader each : ShardingSphereServiceLoader.getSingletonServiceInstances(PrivilegeLoader.class)) {
             if ("PostgreSQL".equals(each.getDatabaseType())) {
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/user/yaml/swapper/UsersYamlSwapperTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/user/yaml/swapper/UsersYamlSwapperTest.java
index d5f5ebe..dff4a88 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/user/yaml/swapper/UsersYamlSwapperTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/metadata/user/yaml/swapper/UsersYamlSwapperTest.java
@@ -17,8 +17,6 @@
 
 package org.apache.shardingsphere.infra.metadata.user.yaml.swapper;
 
-import org.apache.shardingsphere.infra.metadata.auth.builtin.DefaultAuthentication;
-import org.apache.shardingsphere.infra.metadata.auth.model.privilege.ShardingSpherePrivilege;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
 import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
 import org.apache.shardingsphere.infra.metadata.user.yaml.config.YamlUserConfiguration;
@@ -27,6 +25,7 @@ import org.junit.Test;
 
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.Map;
 import java.util.Optional;
 
@@ -38,10 +37,10 @@ public final class UsersYamlSwapperTest {
     
     @Test
     public void assertSwapToYaml() {
-        DefaultAuthentication authentication = new DefaultAuthentication();
-        authentication.getAuthentication().put(new ShardingSphereUser("user1", "pwd1", "127.0.0.1"), new ShardingSpherePrivilege());
-        authentication.getAuthentication().put(new ShardingSphereUser("user2", "pwd2", "127.0.0.2"), new ShardingSpherePrivilege());
-        YamlUsersConfiguration actual = new UsersYamlSwapper().swapToYamlConfiguration(authentication.getAllUsers());
+        Collection<ShardingSphereUser> users = new LinkedList<>();
+        users.add(new ShardingSphereUser("user1", "pwd1", "127.0.0.1"));
+        users.add(new ShardingSphereUser("user2", "pwd2", "127.0.0.2"));
+        YamlUsersConfiguration actual = new UsersYamlSwapper().swapToYamlConfiguration(users);
         assertThat(actual.getUsers().size(), is(2));
         assertThat(actual.getUsers().get("user1").getPassword(), is("pwd1"));
         assertThat(actual.getUsers().get("user1").getHostname(), is("127.0.0.1"));