Class ClassLoaderSafeConnectorAccessControl

  • All Implemented Interfaces:
    io.prestosql.spi.connector.ConnectorAccessControl

    public class ClassLoaderSafeConnectorAccessControl
    extends java.lang.Object
    implements io.prestosql.spi.connector.ConnectorAccessControl
    • Constructor Summary

      Constructors 
      Constructor Description
      ClassLoaderSafeConnectorAccessControl​(io.prestosql.spi.connector.ConnectorAccessControl delegate, java.lang.ClassLoader classLoader)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void checkCanAddColumn​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName)  
      void checkCanCreateRole​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.lang.String role, java.util.Optional<io.prestosql.spi.security.PrestoPrincipal> grantor)  
      void checkCanCreateSchema​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.lang.String schemaName)  
      void checkCanCreateTable​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName)  
      void checkCanCreateView​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName viewName)  
      void checkCanCreateViewWithSelectFromColumns​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName, java.util.Set<java.lang.String> columnNames)  
      void checkCanDeleteFromTable​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName)  
      void checkCanDropColumn​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName)  
      void checkCanDropRole​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.lang.String role)  
      void checkCanDropSchema​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.lang.String schemaName)  
      void checkCanDropTable​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName)  
      void checkCanDropView​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName viewName)  
      void checkCanExecuteProcedure​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaRoutineName procedure)  
      void checkCanGrantRoles​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.util.Set<java.lang.String> roles, java.util.Set<io.prestosql.spi.security.PrestoPrincipal> grantees, boolean adminOption, java.util.Optional<io.prestosql.spi.security.PrestoPrincipal> grantor, java.lang.String catalogName)  
      void checkCanGrantTablePrivilege​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.security.Privilege privilege, io.prestosql.spi.connector.SchemaTableName tableName, io.prestosql.spi.security.PrestoPrincipal grantee, boolean grantOption)  
      void checkCanInsertIntoTable​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName)  
      void checkCanRenameColumn​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName)  
      void checkCanRenameSchema​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.lang.String schemaName, java.lang.String newSchemaName)  
      void checkCanRenameTable​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName, io.prestosql.spi.connector.SchemaTableName newTableName)  
      void checkCanRenameView​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName viewName, io.prestosql.spi.connector.SchemaTableName newViewName)  
      void checkCanRevokeRoles​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.util.Set<java.lang.String> roles, java.util.Set<io.prestosql.spi.security.PrestoPrincipal> grantees, boolean adminOption, java.util.Optional<io.prestosql.spi.security.PrestoPrincipal> grantor, java.lang.String catalogName)  
      void checkCanRevokeTablePrivilege​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.security.Privilege privilege, io.prestosql.spi.connector.SchemaTableName tableName, io.prestosql.spi.security.PrestoPrincipal revokee, boolean grantOption)  
      void checkCanSelectFromColumns​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName, java.util.Set<java.lang.String> columnNames)  
      void checkCanSetCatalogSessionProperty​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.lang.String propertyName)  
      void checkCanSetColumnComment​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName)  
      void checkCanSetRole​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.lang.String role, java.lang.String catalogName)  
      void checkCanSetSchemaAuthorization​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.lang.String schemaName, io.prestosql.spi.security.PrestoPrincipal principal)  
      void checkCanSetTableComment​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName)  
      void checkCanShowColumns​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName)  
      void checkCanShowCreateSchema​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.lang.String schemaName)  
      void checkCanShowCreateTable​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName)  
      void checkCanShowCurrentRoles​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.lang.String catalogName)  
      void checkCanShowRoleAuthorizationDescriptors​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.lang.String catalogName)  
      void checkCanShowRoleGrants​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.lang.String catalogName)  
      void checkCanShowRoles​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.lang.String catalogName)  
      void checkCanShowSchemas​(io.prestosql.spi.connector.ConnectorSecurityContext context)  
      void checkCanShowTables​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.lang.String schemaName)  
      java.util.List<io.prestosql.spi.connector.ColumnMetadata> filterColumns​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName, java.util.List<io.prestosql.spi.connector.ColumnMetadata> columns)  
      java.util.Set<java.lang.String> filterSchemas​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.util.Set<java.lang.String> schemaNames)  
      java.util.Set<io.prestosql.spi.connector.SchemaTableName> filterTables​(io.prestosql.spi.connector.ConnectorSecurityContext context, java.util.Set<io.prestosql.spi.connector.SchemaTableName> tableNames)  
      java.util.Optional<io.prestosql.spi.security.ViewExpression> getColumnMask​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName, java.lang.String columnName, io.prestosql.spi.type.Type type)  
      java.util.Optional<io.prestosql.spi.security.ViewExpression> getRowFilter​(io.prestosql.spi.connector.ConnectorSecurityContext context, io.prestosql.spi.connector.SchemaTableName tableName)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ClassLoaderSafeConnectorAccessControl

        @Inject
        public ClassLoaderSafeConnectorAccessControl​(io.prestosql.spi.connector.ConnectorAccessControl delegate,
                                                     java.lang.ClassLoader classLoader)
    • Method Detail

      • checkCanCreateSchema

        public void checkCanCreateSchema​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                         java.lang.String schemaName)
        Specified by:
        checkCanCreateSchema in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanDropSchema

        public void checkCanDropSchema​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                       java.lang.String schemaName)
        Specified by:
        checkCanDropSchema in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanRenameSchema

        public void checkCanRenameSchema​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                         java.lang.String schemaName,
                                         java.lang.String newSchemaName)
        Specified by:
        checkCanRenameSchema in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanSetSchemaAuthorization

        public void checkCanSetSchemaAuthorization​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                                   java.lang.String schemaName,
                                                   io.prestosql.spi.security.PrestoPrincipal principal)
        Specified by:
        checkCanSetSchemaAuthorization in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanShowSchemas

        public void checkCanShowSchemas​(io.prestosql.spi.connector.ConnectorSecurityContext context)
        Specified by:
        checkCanShowSchemas in interface io.prestosql.spi.connector.ConnectorAccessControl
      • filterSchemas

        public java.util.Set<java.lang.String> filterSchemas​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                                             java.util.Set<java.lang.String> schemaNames)
        Specified by:
        filterSchemas in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanShowCreateSchema

        public void checkCanShowCreateSchema​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                             java.lang.String schemaName)
        Specified by:
        checkCanShowCreateSchema in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanShowCreateTable

        public void checkCanShowCreateTable​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                            io.prestosql.spi.connector.SchemaTableName tableName)
        Specified by:
        checkCanShowCreateTable in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanCreateTable

        public void checkCanCreateTable​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                        io.prestosql.spi.connector.SchemaTableName tableName)
        Specified by:
        checkCanCreateTable in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanDropTable

        public void checkCanDropTable​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                      io.prestosql.spi.connector.SchemaTableName tableName)
        Specified by:
        checkCanDropTable in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanRenameTable

        public void checkCanRenameTable​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                        io.prestosql.spi.connector.SchemaTableName tableName,
                                        io.prestosql.spi.connector.SchemaTableName newTableName)
        Specified by:
        checkCanRenameTable in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanSetTableComment

        public void checkCanSetTableComment​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                            io.prestosql.spi.connector.SchemaTableName tableName)
        Specified by:
        checkCanSetTableComment in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanSetColumnComment

        public void checkCanSetColumnComment​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                             io.prestosql.spi.connector.SchemaTableName tableName)
        Specified by:
        checkCanSetColumnComment in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanShowTables

        public void checkCanShowTables​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                       java.lang.String schemaName)
        Specified by:
        checkCanShowTables in interface io.prestosql.spi.connector.ConnectorAccessControl
      • filterTables

        public java.util.Set<io.prestosql.spi.connector.SchemaTableName> filterTables​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                                                                      java.util.Set<io.prestosql.spi.connector.SchemaTableName> tableNames)
        Specified by:
        filterTables in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanShowColumns

        public void checkCanShowColumns​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                        io.prestosql.spi.connector.SchemaTableName tableName)
        Specified by:
        checkCanShowColumns in interface io.prestosql.spi.connector.ConnectorAccessControl
      • filterColumns

        public java.util.List<io.prestosql.spi.connector.ColumnMetadata> filterColumns​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                                                                       io.prestosql.spi.connector.SchemaTableName tableName,
                                                                                       java.util.List<io.prestosql.spi.connector.ColumnMetadata> columns)
        Specified by:
        filterColumns in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanAddColumn

        public void checkCanAddColumn​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                      io.prestosql.spi.connector.SchemaTableName tableName)
        Specified by:
        checkCanAddColumn in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanDropColumn

        public void checkCanDropColumn​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                       io.prestosql.spi.connector.SchemaTableName tableName)
        Specified by:
        checkCanDropColumn in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanRenameColumn

        public void checkCanRenameColumn​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                         io.prestosql.spi.connector.SchemaTableName tableName)
        Specified by:
        checkCanRenameColumn in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanSelectFromColumns

        public void checkCanSelectFromColumns​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                              io.prestosql.spi.connector.SchemaTableName tableName,
                                              java.util.Set<java.lang.String> columnNames)
        Specified by:
        checkCanSelectFromColumns in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanInsertIntoTable

        public void checkCanInsertIntoTable​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                            io.prestosql.spi.connector.SchemaTableName tableName)
        Specified by:
        checkCanInsertIntoTable in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanDeleteFromTable

        public void checkCanDeleteFromTable​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                            io.prestosql.spi.connector.SchemaTableName tableName)
        Specified by:
        checkCanDeleteFromTable in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanCreateView

        public void checkCanCreateView​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                       io.prestosql.spi.connector.SchemaTableName viewName)
        Specified by:
        checkCanCreateView in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanRenameView

        public void checkCanRenameView​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                       io.prestosql.spi.connector.SchemaTableName viewName,
                                       io.prestosql.spi.connector.SchemaTableName newViewName)
        Specified by:
        checkCanRenameView in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanDropView

        public void checkCanDropView​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                     io.prestosql.spi.connector.SchemaTableName viewName)
        Specified by:
        checkCanDropView in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanCreateViewWithSelectFromColumns

        public void checkCanCreateViewWithSelectFromColumns​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                                            io.prestosql.spi.connector.SchemaTableName tableName,
                                                            java.util.Set<java.lang.String> columnNames)
        Specified by:
        checkCanCreateViewWithSelectFromColumns in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanSetCatalogSessionProperty

        public void checkCanSetCatalogSessionProperty​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                                      java.lang.String propertyName)
        Specified by:
        checkCanSetCatalogSessionProperty in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanGrantTablePrivilege

        public void checkCanGrantTablePrivilege​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                                io.prestosql.spi.security.Privilege privilege,
                                                io.prestosql.spi.connector.SchemaTableName tableName,
                                                io.prestosql.spi.security.PrestoPrincipal grantee,
                                                boolean grantOption)
        Specified by:
        checkCanGrantTablePrivilege in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanRevokeTablePrivilege

        public void checkCanRevokeTablePrivilege​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                                 io.prestosql.spi.security.Privilege privilege,
                                                 io.prestosql.spi.connector.SchemaTableName tableName,
                                                 io.prestosql.spi.security.PrestoPrincipal revokee,
                                                 boolean grantOption)
        Specified by:
        checkCanRevokeTablePrivilege in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanCreateRole

        public void checkCanCreateRole​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                       java.lang.String role,
                                       java.util.Optional<io.prestosql.spi.security.PrestoPrincipal> grantor)
        Specified by:
        checkCanCreateRole in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanDropRole

        public void checkCanDropRole​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                     java.lang.String role)
        Specified by:
        checkCanDropRole in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanGrantRoles

        public void checkCanGrantRoles​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                       java.util.Set<java.lang.String> roles,
                                       java.util.Set<io.prestosql.spi.security.PrestoPrincipal> grantees,
                                       boolean adminOption,
                                       java.util.Optional<io.prestosql.spi.security.PrestoPrincipal> grantor,
                                       java.lang.String catalogName)
        Specified by:
        checkCanGrantRoles in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanRevokeRoles

        public void checkCanRevokeRoles​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                        java.util.Set<java.lang.String> roles,
                                        java.util.Set<io.prestosql.spi.security.PrestoPrincipal> grantees,
                                        boolean adminOption,
                                        java.util.Optional<io.prestosql.spi.security.PrestoPrincipal> grantor,
                                        java.lang.String catalogName)
        Specified by:
        checkCanRevokeRoles in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanSetRole

        public void checkCanSetRole​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                    java.lang.String role,
                                    java.lang.String catalogName)
        Specified by:
        checkCanSetRole in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanShowRoleAuthorizationDescriptors

        public void checkCanShowRoleAuthorizationDescriptors​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                                             java.lang.String catalogName)
        Specified by:
        checkCanShowRoleAuthorizationDescriptors in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanShowRoles

        public void checkCanShowRoles​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                      java.lang.String catalogName)
        Specified by:
        checkCanShowRoles in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanShowCurrentRoles

        public void checkCanShowCurrentRoles​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                             java.lang.String catalogName)
        Specified by:
        checkCanShowCurrentRoles in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanShowRoleGrants

        public void checkCanShowRoleGrants​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                           java.lang.String catalogName)
        Specified by:
        checkCanShowRoleGrants in interface io.prestosql.spi.connector.ConnectorAccessControl
      • checkCanExecuteProcedure

        public void checkCanExecuteProcedure​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                             io.prestosql.spi.connector.SchemaRoutineName procedure)
        Specified by:
        checkCanExecuteProcedure in interface io.prestosql.spi.connector.ConnectorAccessControl
      • getRowFilter

        public java.util.Optional<io.prestosql.spi.security.ViewExpression> getRowFilter​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                                                                         io.prestosql.spi.connector.SchemaTableName tableName)
        Specified by:
        getRowFilter in interface io.prestosql.spi.connector.ConnectorAccessControl
      • getColumnMask

        public java.util.Optional<io.prestosql.spi.security.ViewExpression> getColumnMask​(io.prestosql.spi.connector.ConnectorSecurityContext context,
                                                                                          io.prestosql.spi.connector.SchemaTableName tableName,
                                                                                          java.lang.String columnName,
                                                                                          io.prestosql.spi.type.Type type)
        Specified by:
        getColumnMask in interface io.prestosql.spi.connector.ConnectorAccessControl