You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sentry.apache.org by co...@apache.org on 2016/07/21 05:55:45 UTC

[51/51] [partial] sentry git commit: SENTRY-1205: Refactor the code for sentry-provider-db and create sentry-service module(Colin Ma, reviewed by Dapeng Sun)

SENTRY-1205: Refactor the code for sentry-provider-db and create sentry-service module(Colin Ma, reviewed by Dapeng Sun)


Project: http://git-wip-us.apache.org/repos/asf/sentry/repo
Commit: http://git-wip-us.apache.org/repos/asf/sentry/commit/f1332300
Tree: http://git-wip-us.apache.org/repos/asf/sentry/tree/f1332300
Diff: http://git-wip-us.apache.org/repos/asf/sentry/diff/f1332300

Branch: refs/heads/master
Commit: f13323008c46283796952fe8b71bc40ed4dc6523
Parents: 170c2a1
Author: Colin Ma <co...@apache.org>
Authored: Thu Jul 21 13:55:58 2016 +0800
Committer: Colin Ma <co...@apache.org>
Committed: Thu Jul 21 13:55:58 2016 +0800

----------------------------------------------------------------------
 pom.xml                                         |    30 +-
 .../sentry-binding-hive-common/pom.xml          |    12 +-
 sentry-binding/sentry-binding-hive-v2/pom.xml   |    20 -
 .../v2/metastore/MetastoreAuthzBindingV2.java   |     2 +-
 sentry-binding/sentry-binding-hive/pom.xml      |    29 -
 .../binding/hive/MockUserToGroupMapping.java    |     2 +-
 .../policy/hive/TestPolicyParsingNegative.java  |     2 +-
 ...sourceAuthorizationProviderGeneralCases.java |     2 +-
 ...sourceAuthorizationProviderSpecialCases.java |     2 +-
 .../hive/TestSimpleDBPolicyEngineDFS.java       |     2 +-
 sentry-binding/sentry-binding-kafka/pom.xml     |    14 +-
 .../sentry/kafka/binding/KafkaAuthBinding.java  |     2 +-
 .../kafka/MockGroupMappingServiceProvider.java  |     2 +-
 ...tKafkaAuthorizationProviderSpecialCases.java |     2 +-
 sentry-binding/sentry-binding-solr/pom.xml      |    12 +-
 .../binding/solr/authz/SolrAuthzBinding.java    |     4 +-
 ...SearchAuthorizationProviderGeneralCases.java |     2 +-
 ...SearchAuthorizationProviderSpecialCases.java |     2 +-
 sentry-binding/sentry-binding-sqoop/pom.xml     |    10 +-
 .../sentry/sqoop/binding/SqoopAuthBinding.java  |     2 +-
 ...tSqoopAuthorizationProviderGeneralCases.java |     2 +-
 ...tSqoopAuthorizationProviderSpecialCases.java |     2 +-
 .../common/service/GroupMappingService.java     |    35 +
 .../service/HadoopGroupMappingService.java      |    69 +
 .../MockGroupMappingServiceProvider.java        |    44 +
 .../common/service/NoGroupMappingService.java   |    33 +
 .../common/utils/AuthorizationComponent.java    |    30 +
 .../sentry/core/common/utils/PolicyFile.java    |   202 +
 sentry-dist/pom.xml                             |    12 +
 sentry-dist/src/main/assembly/bin.xml           |     5 +-
 sentry-dist/src/main/assembly/src.xml           |     1 +
 sentry-hdfs/sentry-hdfs-common/pom.xml          |    19 +-
 ...ndexerAuthorizationProviderGeneralCases.java |     2 +-
 ...ndexerAuthorizationProviderSpecialCases.java |     2 +-
 sentry-provider/sentry-provider-cache/pom.xml   |     4 -
 sentry-provider/sentry-provider-common/pom.xml  |     5 -
 .../provider/common/AuthorizationComponent.java |    30 -
 .../provider/common/AuthorizationProvider.java  |     1 +
 .../provider/common/GroupMappingService.java    |    35 -
 .../common/HadoopGroupMappingService.java       |    69 -
 ...adoopGroupResourceAuthorizationProvider.java |     2 +
 .../common/NoAuthorizationProvider.java         |     2 +
 .../provider/common/NoGroupMappingService.java  |    33 -
 .../common/ResourceAuthorizationProvider.java   |     1 +
 ...adoopGroupResourceAuthorizationProvider.java |     2 +-
 .../common/MockGroupMappingServiceProvider.java |    44 -
 .../provider/common/TestGetGroupMapping.java    |     1 +
 .../common/TestNoAuthorizationProvider.java     |     1 +
 sentry-provider/sentry-provider-db/pom.xml      |   354 +-
 .../thrift/SentryGenericPolicyService.java      | 10416 -----------
 .../TAlterSentryRoleAddGroupsRequest.java       |   842 -
 .../TAlterSentryRoleAddGroupsResponse.java      |   391 -
 .../TAlterSentryRoleDeleteGroupsRequest.java    |   842 -
 .../TAlterSentryRoleDeleteGroupsResponse.java   |   391 -
 .../TAlterSentryRoleGrantPrivilegeRequest.java  |   798 -
 .../TAlterSentryRoleGrantPrivilegeResponse.java |   391 -
 .../TAlterSentryRoleRevokePrivilegeRequest.java |   798 -
 ...TAlterSentryRoleRevokePrivilegeResponse.java |   391 -
 .../generic/service/thrift/TAuthorizable.java   |   490 -
 .../thrift/TCreateSentryRoleRequest.java        |   692 -
 .../thrift/TCreateSentryRoleResponse.java       |   391 -
 .../service/thrift/TDropPrivilegesRequest.java  |   697 -
 .../service/thrift/TDropPrivilegesResponse.java |   391 -
 .../service/thrift/TDropSentryRoleRequest.java  |   692 -
 .../service/thrift/TDropSentryRoleResponse.java |   391 -
 .../TListSentryPrivilegesByAuthRequest.java     |  1112 --
 .../TListSentryPrivilegesByAuthResponse.java    |   569 -
 ...TListSentryPrivilegesForProviderRequest.java |  1011 --
 ...ListSentryPrivilegesForProviderResponse.java |   541 -
 .../thrift/TListSentryPrivilegesRequest.java    |   957 -
 .../thrift/TListSentryPrivilegesResponse.java   |   555 -
 .../service/thrift/TListSentryRolesRequest.java |   701 -
 .../thrift/TListSentryRolesResponse.java        |   555 -
 .../thrift/TRenamePrivilegesRequest.java        |  1002 --
 .../thrift/TRenamePrivilegesResponse.java       |   391 -
 .../service/thrift/TSentryActiveRoleSet.java    |   537 -
 .../service/thrift/TSentryGrantOption.java      |    48 -
 .../service/thrift/TSentryPrivilege.java        |  1080 --
 .../service/thrift/TSentryPrivilegeMap.java     |   490 -
 .../db/generic/service/thrift/TSentryRole.java  |   539 -
 .../db/service/thrift/SentryPolicyService.java  | 15564 -----------------
 .../TAlterSentryRoleAddGroupsRequest.java       |   746 -
 .../TAlterSentryRoleAddGroupsResponse.java      |   394 -
 .../thrift/TAlterSentryRoleAddUsersRequest.java |   741 -
 .../TAlterSentryRoleAddUsersResponse.java       |   394 -
 .../TAlterSentryRoleDeleteGroupsRequest.java    |   746 -
 .../TAlterSentryRoleDeleteGroupsResponse.java   |   394 -
 .../TAlterSentryRoleDeleteUsersRequest.java     |   741 -
 .../TAlterSentryRoleDeleteUsersResponse.java    |   394 -
 .../TAlterSentryRoleGrantPrivilegeRequest.java  |   866 -
 .../TAlterSentryRoleGrantPrivilegeResponse.java |   669 -
 .../TAlterSentryRoleRevokePrivilegeRequest.java |   866 -
 ...TAlterSentryRoleRevokePrivilegeResponse.java |   394 -
 .../thrift/TCreateSentryRoleRequest.java        |   591 -
 .../thrift/TCreateSentryRoleResponse.java       |   394 -
 .../service/thrift/TDropPrivilegesRequest.java  |   596 -
 .../service/thrift/TDropPrivilegesResponse.java |   394 -
 .../service/thrift/TDropSentryRoleRequest.java  |   591 -
 .../service/thrift/TDropSentryRoleResponse.java |   394 -
 .../TListSentryPrivilegesByAuthRequest.java     |   915 -
 .../TListSentryPrivilegesByAuthResponse.java    |   571 -
 ...TListSentryPrivilegesForProviderRequest.java |   915 -
 ...ListSentryPrivilegesForProviderResponse.java |   544 -
 .../thrift/TListSentryPrivilegesRequest.java    |   706 -
 .../thrift/TListSentryPrivilegesResponse.java   |   558 -
 .../thrift/TListSentryRolesForUserRequest.java  |   591 -
 .../service/thrift/TListSentryRolesRequest.java |   600 -
 .../thrift/TListSentryRolesResponse.java        |   558 -
 .../thrift/TRenamePrivilegesRequest.java        |   702 -
 .../thrift/TRenamePrivilegesResponse.java       |   394 -
 .../db/service/thrift/TSentryActiveRoleSet.java |   537 -
 .../db/service/thrift/TSentryAuthorizable.java  |   817 -
 .../thrift/TSentryConfigValueRequest.java       |   600 -
 .../thrift/TSentryConfigValueResponse.java      |   504 -
 .../thrift/TSentryExportMappingDataRequest.java |   600 -
 .../TSentryExportMappingDataResponse.java       |   500 -
 .../db/service/thrift/TSentryGrantOption.java   |    48 -
 .../db/service/thrift/TSentryGroup.java         |   389 -
 .../thrift/TSentryImportMappingDataRequest.java |   693 -
 .../TSentryImportMappingDataResponse.java       |   394 -
 .../db/service/thrift/TSentryMappingData.java   |   898 -
 .../db/service/thrift/TSentryPrivilege.java     |  1258 --
 .../db/service/thrift/TSentryPrivilegeMap.java  |   490 -
 .../provider/db/service/thrift/TSentryRole.java |   645 -
 .../service/thrift/TSentryResponseStatus.java   |   598 -
 .../thrift/sentry_common_serviceConstants.java  |    57 -
 .../provider/db/SentryPolicyStorePlugin.java    |    60 -
 .../service/persistent/DelegateSentryStore.java |   542 -
 .../service/persistent/PrivilegeObject.java     |   231 -
 .../persistent/PrivilegeOperatePersistence.java |   485 -
 .../service/persistent/SentryStoreLayer.java    |   198 -
 .../service/thrift/NotificationHandler.java     |    47 -
 .../thrift/NotificationHandlerInvoker.java      |   164 -
 .../thrift/SentryGenericPolicyProcessor.java    |   836 -
 .../SentryGenericPolicyProcessorFactory.java    |    40 -
 .../SentryGenericPolicyProcessorWrapper.java    |    39 -
 .../thrift/SentryGenericServiceClient.java      |   196 -
 .../SentryGenericServiceClientDefaultImpl.java  |   591 -
 .../SentryGenericServiceClientFactory.java      |    34 -
 .../tools/KafkaTSentryPrivilegeConverter.java   |   118 -
 .../generic/tools/SentryConfigToolCommon.java   |   152 -
 .../db/generic/tools/SentryConfigToolSolr.java  |   262 -
 .../db/generic/tools/SentryShellKafka.java      |   113 -
 .../db/generic/tools/SentryShellSolr.java       |   112 -
 .../tools/SolrTSentryPrivilegeConverter.java    |   137 -
 .../tools/command/AddRoleToGroupCmd.java        |    46 -
 .../db/generic/tools/command/Command.java       |    27 -
 .../db/generic/tools/command/CreateRoleCmd.java |    39 -
 .../tools/command/DeleteRoleFromGroupCmd.java   |    46 -
 .../db/generic/tools/command/DropRoleCmd.java   |    39 -
 .../tools/command/GrantPrivilegeToRoleCmd.java  |    47 -
 .../tools/command/ListPrivilegesByRoleCmd.java  |    54 -
 .../db/generic/tools/command/ListRolesCmd.java  |    53 -
 .../command/RevokePrivilegeFromRoleCmd.java     |    47 -
 .../command/TSentryPrivilegeConverter.java      |    33 -
 .../log/appender/AuditLoggerTestAppender.java   |    52 -
 .../RollingFileWithoutDeleteAppender.java       |   175 -
 .../db/log/entity/AuditMetadataLogEntity.java   |   155 -
 .../db/log/entity/DBAuditMetadataLogEntity.java |   124 -
 .../db/log/entity/GMAuditMetadataLogEntity.java |    97 -
 .../provider/db/log/entity/JsonLogEntity.java   |    25 -
 .../db/log/entity/JsonLogEntityFactory.java     |   351 -
 .../provider/db/log/util/CommandUtil.java       |   233 -
 .../sentry/provider/db/log/util/Constants.java  |   162 -
 .../db/service/model/MSentryGMPrivilege.java    |   497 -
 .../provider/db/service/model/MSentryGroup.java |   116 -
 .../db/service/model/MSentryPrivilege.java      |   332 -
 .../provider/db/service/model/MSentryRole.java  |   216 -
 .../provider/db/service/model/MSentryUser.java  |   116 -
 .../db/service/model/MSentryVersion.java        |    66 -
 .../provider/db/service/model/package.jdo       |   242 -
 .../db/service/persistent/CommitContext.java    |    42 -
 .../persistent/FixedJsonInstanceSerializer.java |   163 -
 .../db/service/persistent/HAContext.java        |   262 -
 .../db/service/persistent/SentryStore.java      |  2672 ---
 .../persistent/SentryStoreSchemaInfo.java       |   143 -
 .../db/service/persistent/ServiceManager.java   |    97 -
 .../db/service/persistent/ServiceRegister.java  |    52 -
 .../provider/db/service/thrift/ConfServlet.java |    69 -
 .../db/service/thrift/NotificationHandler.java  |    79 -
 .../thrift/NotificationHandlerInvoker.java      |   176 -
 .../db/service/thrift/PolicyStoreConstants.java |    32 -
 .../db/service/thrift/SentryAuthFilter.java     |    92 -
 ...SentryHealthCheckServletContextListener.java |    35 -
 .../db/service/thrift/SentryMetrics.java        |   162 -
 .../SentryMetricsServletContextListener.java    |    32 -
 .../thrift/SentryPolicyServiceClient.java       |   220 -
 .../SentryPolicyServiceClientDefaultImpl.java   |  1084 --
 .../thrift/SentryPolicyStoreProcessor.java      |  1113 --
 .../SentryPolicyStoreProcessorFactory.java      |    39 -
 .../service/thrift/SentryProcessorWrapper.java  |    37 -
 .../db/service/thrift/SentryWebServer.java      |   184 -
 .../provider/db/service/thrift/ThriftUtil.java  |   112 -
 .../provider/db/tools/SentrySchemaHelper.java   |   315 -
 .../provider/db/tools/SentrySchemaTool.java     |   595 -
 .../provider/db/tools/SentryShellCommon.java    |   247 -
 .../provider/db/tools/SentryShellHive.java      |    98 -
 .../provider/db/tools/command/hive/Command.java |    27 -
 .../db/tools/command/hive/CommandUtil.java      |   119 -
 .../db/tools/command/hive/CreateRoleCmd.java    |    37 -
 .../db/tools/command/hive/DropRoleCmd.java      |    37 -
 .../command/hive/GrantPrivilegeToRoleCmd.java   |    41 -
 .../command/hive/GrantRoleToGroupsCmd.java      |    44 -
 .../tools/command/hive/ListPrivilegesCmd.java   |    97 -
 .../db/tools/command/hive/ListRolesCmd.java     |    51 -
 .../hive/RevokePrivilegeFromRoleCmd.java        |    42 -
 .../command/hive/RevokeRoleFromGroupsCmd.java   |    43 -
 .../sentry/service/thrift/GSSCallback.java      |   110 -
 .../thrift/HAClientInvocationHandler.java       |   139 -
 .../service/thrift/JaasConfiguration.java       |   133 -
 .../service/thrift/KerberosConfiguration.java   |   107 -
 .../thrift/PoolClientInvocationHandler.java     |   154 -
 .../sentry/service/thrift/ProcessorFactory.java |    31 -
 .../thrift/SentryClientInvocationHandler.java   |    54 -
 .../service/thrift/SentryKerberosContext.java   |   157 -
 .../sentry/service/thrift/SentryService.java    |   426 -
 .../thrift/SentryServiceClientFactory.java      |    52 -
 .../thrift/SentryServiceClientPoolFactory.java  |    78 -
 .../service/thrift/SentryServiceFactory.java    |    28 -
 .../service/thrift/SentryServiceUtil.java       |   158 -
 .../sentry/service/thrift/ServiceConstants.java |   261 -
 .../apache/sentry/service/thrift/Status.java    |   132 -
 .../src/main/resources/001-SENTRY-327.derby.sql |     2 -
 .../src/main/resources/001-SENTRY-327.mysql.sql |     2 -
 .../main/resources/001-SENTRY-327.oracle.sql    |     2 -
 .../main/resources/001-SENTRY-327.postgres.sql  |     2 -
 .../src/main/resources/002-SENTRY-339.derby.sql |    13 -
 .../src/main/resources/002-SENTRY-339.mysql.sql |    13 -
 .../main/resources/002-SENTRY-339.oracle.sql    |    13 -
 .../main/resources/002-SENTRY-339.postgres.sql  |    13 -
 .../src/main/resources/003-SENTRY-380.derby.sql |     7 -
 .../src/main/resources/003-SENTRY-380.mysql.sql |     7 -
 .../main/resources/003-SENTRY-380.oracle.sql    |     7 -
 .../main/resources/003-SENTRY-380.postgres.sql  |     7 -
 .../src/main/resources/004-SENTRY-74.derby.sql  |     4 -
 .../src/main/resources/004-SENTRY-74.mysql.sql  |     4 -
 .../src/main/resources/004-SENTRY-74.oracle.sql |     4 -
 .../main/resources/004-SENTRY-74.postgres.sql   |     4 -
 .../src/main/resources/005-SENTRY-398.derby.sql |    43 -
 .../src/main/resources/005-SENTRY-398.mysql.sql |    62 -
 .../main/resources/005-SENTRY-398.oracle.sql    |    55 -
 .../main/resources/005-SENTRY-398.postgres.sql  |    54 -
 .../src/main/resources/006-SENTRY-711.derby.sql |    27 -
 .../src/main/resources/006-SENTRY-711.mysql.sql |    28 -
 .../main/resources/006-SENTRY-711.oracle.sql    |    28 -
 .../main/resources/006-SENTRY-711.postgres.sql  |    28 -
 .../src/main/resources/sentry-db2-1.4.0.sql     |   112 -
 .../src/main/resources/sentry-db2-1.5.0.sql     |   155 -
 .../src/main/resources/sentry-db2-1.6.0.sql     |   155 -
 .../src/main/resources/sentry-db2-1.7.0.sql     |   155 -
 .../src/main/resources/sentry-db2-1.8.0.sql     |   183 -
 .../src/main/resources/sentry-derby-1.4.0.sql   |   112 -
 .../src/main/resources/sentry-derby-1.5.0.sql   |   155 -
 .../src/main/resources/sentry-derby-1.6.0.sql   |   155 -
 .../src/main/resources/sentry-derby-1.7.0.sql   |   155 -
 .../src/main/resources/sentry-derby-1.8.0.sql   |   184 -
 .../src/main/resources/sentry-mysql-1.4.0.sql   |   126 -
 .../src/main/resources/sentry-mysql-1.5.0.sql   |   192 -
 .../src/main/resources/sentry-mysql-1.6.0.sql   |   193 -
 .../src/main/resources/sentry-mysql-1.7.0.sql   |   193 -
 .../src/main/resources/sentry-mysql-1.8.0.sql   |   223 -
 .../src/main/resources/sentry-oracle-1.4.0.sql  |   110 -
 .../src/main/resources/sentry-oracle-1.5.0.sql  |   168 -
 .../src/main/resources/sentry-oracle-1.6.0.sql  |   168 -
 .../src/main/resources/sentry-oracle-1.7.0.sql  |   168 -
 .../src/main/resources/sentry-oracle-1.8.0.sql  |   197 -
 .../main/resources/sentry-postgres-1.4.0.sql    |   124 -
 .../main/resources/sentry-postgres-1.5.0.sql    |   182 -
 .../main/resources/sentry-postgres-1.6.0.sql    |   182 -
 .../main/resources/sentry-postgres-1.7.0.sql    |   182 -
 .../main/resources/sentry-postgres-1.8.0.sql    |   211 -
 .../sentry-upgrade-db2-1.4.0-to-1.5.0.sql       |    61 -
 .../sentry-upgrade-db2-1.5.0-to-1.6.0.sql       |     2 -
 .../sentry-upgrade-db2-1.6.0-to-1.7.0.sql       |     2 -
 .../sentry-upgrade-db2-1.7.0-to-1.8.0.sql       |    31 -
 .../sentry-upgrade-derby-1.4.0-to-1.5.0.sql     |     8 -
 .../sentry-upgrade-derby-1.5.0-to-1.6.0.sql     |     2 -
 .../sentry-upgrade-derby-1.6.0-to-1.7.0.sql     |     2 -
 .../sentry-upgrade-derby-1.7.0-to-1.8.0.sql     |     4 -
 .../sentry-upgrade-mysql-1.4.0-to-1.5.0.sql     |    10 -
 .../sentry-upgrade-mysql-1.5.0-to-1.6.0.sql     |     5 -
 .../sentry-upgrade-mysql-1.6.0-to-1.7.0.sql     |     5 -
 .../sentry-upgrade-mysql-1.7.0-to-1.8.0.sql     |     6 -
 .../sentry-upgrade-oracle-1.4.0-to-1.5.0.sql    |     9 -
 .../sentry-upgrade-oracle-1.5.0-to-1.6.0.sql    |     5 -
 .../sentry-upgrade-oracle-1.6.0-to-1.7.0.sql    |     5 -
 .../sentry-upgrade-oracle-1.7.0-to-1.8.0.sql    |     6 -
 .../sentry-upgrade-postgres-1.4.0-to-1.5.0.sql  |     9 -
 .../sentry-upgrade-postgres-1.5.0-to-1.6.0.sql  |     5 -
 .../sentry-upgrade-postgres-1.6.0-to-1.7.0.sql  |     5 -
 .../sentry-upgrade-postgres-1.7.0-to-1.8.0.sql  |     6 -
 .../main/resources/sentry_common_service.thrift |    46 -
 .../sentry_generic_policy_service.thrift        |   279 -
 .../main/resources/sentry_policy_service.thrift |   330 -
 .../src/main/resources/upgrade.order.db2        |     4 -
 .../src/main/resources/upgrade.order.derby      |     4 -
 .../src/main/resources/upgrade.order.mysql      |     4 -
 .../src/main/resources/upgrade.order.oracle     |     4 -
 .../src/main/resources/upgrade.order.postgres   |     4 -
 .../src/main/webapp/SentryService.html          |    61 -
 .../src/main/webapp/css/bootstrap-theme.min.css |    10 -
 .../src/main/webapp/css/bootstrap.min.css       |     9 -
 .../src/main/webapp/css/sentry.css              |    52 -
 .../src/main/webapp/sentry.png                  |   Bin 3223 -> 0 bytes
 .../persistent/SentryStoreIntegrationBase.java  |    91 -
 .../persistent/TestDelegateSentryStore.java     |   182 -
 .../TestPrivilegeOperatePersistence.java        |  1139 --
 .../persistent/TestSentryGMPrivilege.java       |   207 -
 .../service/persistent/TestSentryRole.java      |   372 -
 .../SentryGenericServiceIntegrationBase.java    |    73 -
 .../TestAuditLogForSentryGenericService.java    |   296 -
 .../TestSentryGenericPolicyProcessor.java       |   353 -
 .../TestSentryGenericServiceIntegration.java    |   503 -
 .../generic/tools/TestSentryConfigToolSolr.java |   261 -
 .../db/generic/tools/TestSentryShellKafka.java  |   542 -
 .../db/generic/tools/TestSentryShellSolr.java   |   525 -
 .../TestRollingFileWithoutDeleteAppender.java   |   106 -
 .../entity/TestDbAuditMetadataLogEntity.java    |    69 -
 .../entity/TestGMAuditMetadataLogEntity.java    |    74 -
 .../db/log/entity/TestJsonLogEntityFactory.java |   272 -
 .../log/entity/TestJsonLogEntityFactoryGM.java  |   259 -
 .../provider/db/log/util/TestCommandUtil.java   |   416 -
 .../service/persistent/TestSentryPrivilege.java |   245 -
 .../persistent/TestSentryServiceDiscovery.java  |   123 -
 .../db/service/persistent/TestSentryStore.java  |  2090 ---
 .../persistent/TestSentryStoreImportExport.java |  1164 --
 .../TestSentryStoreToAuthorizable.java          |    86 -
 .../service/persistent/TestSentryVersion.java   |    85 -
 .../service/thrift/SentryMiniKdcTestcase.java   |    68 -
 .../TestAuthorizingDDLAuditLogWithKerberos.java |   295 -
 .../thrift/TestConnectionWithTicketTimeout.java |    57 -
 .../thrift/TestNotificationHandlerInvoker.java  |   112 -
 .../thrift/TestSentryPolicyStoreProcessor.java  |    81 -
 .../TestSentryServerForHaWithoutKerberos.java   |   219 -
 ...estSentryServerForPoolHAWithoutKerberos.java |    36 -
 .../TestSentryServerForPoolWithoutKerberos.java |    36 -
 .../thrift/TestSentryServerWithoutKerberos.java |   214 -
 .../thrift/TestSentryServiceClientPool.java     |   111 -
 .../thrift/TestSentryServiceFailureCase.java    |    74 -
 .../TestSentryServiceForHAWithKerberos.java     |    75 -
 .../TestSentryServiceForPoolHAWithKerberos.java |    36 -
 .../TestSentryServiceForPoolWithKerberos.java   |    36 -
 .../thrift/TestSentryServiceImportExport.java   |   751 -
 .../thrift/TestSentryServiceIntegration.java    |  1102 --
 .../TestSentryServiceWithInvalidMsgSize.java    |   119 -
 .../thrift/TestSentryServiceWithKerberos.java   |    58 -
 .../thrift/TestSentryWebServerWithKerberos.java |   136 -
 .../thrift/TestSentryWebServerWithSSL.java      |    52 -
 .../TestSentryWebServerWithoutSecurity.java     |    87 -
 .../provider/db/tools/TestSentrySchemaTool.java |    94 -
 .../provider/db/tools/TestSentryShellHive.java  |   608 -
 .../thrift/SentryServiceIntegrationBase.java    |   355 -
 .../src/test/resources/cacerts.jks              |   Bin 954 -> 0 bytes
 .../src/test/resources/keystore.jks             |   Bin 2245 -> 0 bytes
 .../src/test/resources/log4j.properties         |    34 -
 .../src/test/resources/solr_case.ini            |    26 -
 .../test/resources/solr_config_import_tool.ini  |    29 -
 .../src/test/resources/solr_invalid.ini         |    21 -
 sentry-provider/sentry-provider-file/pom.xml    |    17 -
 .../provider/file/LocalGroupMappingService.java |     2 +-
 .../apache/sentry/provider/file/PolicyFile.java |   202 -
 sentry-service/pom.xml                          |    38 +
 sentry-service/sentry-service-client/pom.xml    |    57 +
 .../thrift/SentryGenericServiceClient.java      |   196 +
 .../SentryGenericServiceClientDefaultImpl.java  |   591 +
 .../SentryGenericServiceClientFactory.java      |    34 +
 .../tools/KafkaTSentryPrivilegeConverter.java   |   118 +
 .../generic/tools/SentryConfigToolCommon.java   |   152 +
 .../db/generic/tools/SentryConfigToolSolr.java  |   262 +
 .../db/generic/tools/SentryShellKafka.java      |   113 +
 .../db/generic/tools/SentryShellSolr.java       |   112 +
 .../tools/SolrTSentryPrivilegeConverter.java    |   137 +
 .../tools/command/AddRoleToGroupCmd.java        |    46 +
 .../db/generic/tools/command/Command.java       |    27 +
 .../db/generic/tools/command/CreateRoleCmd.java |    39 +
 .../tools/command/DeleteRoleFromGroupCmd.java   |    46 +
 .../db/generic/tools/command/DropRoleCmd.java   |    39 +
 .../tools/command/GrantPrivilegeToRoleCmd.java  |    47 +
 .../tools/command/ListPrivilegesByRoleCmd.java  |    54 +
 .../db/generic/tools/command/ListRolesCmd.java  |    53 +
 .../command/RevokePrivilegeFromRoleCmd.java     |    47 +
 .../command/TSentryPrivilegeConverter.java      |    33 +
 .../db/service/persistent/ServiceManager.java   |    97 +
 .../thrift/SentryPolicyServiceClient.java       |   220 +
 .../SentryPolicyServiceClientDefaultImpl.java   |  1087 ++
 .../provider/db/tools/SentryShellCommon.java    |   247 +
 .../provider/db/tools/SentryShellHive.java      |    98 +
 .../provider/db/tools/command/hive/Command.java |    27 +
 .../db/tools/command/hive/CommandUtil.java      |   119 +
 .../db/tools/command/hive/CreateRoleCmd.java    |    37 +
 .../db/tools/command/hive/DropRoleCmd.java      |    37 +
 .../command/hive/GrantPrivilegeToRoleCmd.java   |    41 +
 .../command/hive/GrantRoleToGroupsCmd.java      |    44 +
 .../tools/command/hive/ListPrivilegesCmd.java   |    97 +
 .../db/tools/command/hive/ListRolesCmd.java     |    51 +
 .../hive/RevokePrivilegeFromRoleCmd.java        |    42 +
 .../command/hive/RevokeRoleFromGroupsCmd.java   |    43 +
 .../thrift/HAClientInvocationHandler.java       |   139 +
 .../thrift/PoolClientInvocationHandler.java     |   154 +
 .../thrift/SentryClientInvocationHandler.java   |    54 +
 .../thrift/SentryServiceClientFactory.java      |    52 +
 .../thrift/SentryServiceClientPoolFactory.java  |    78 +
 sentry-service/sentry-service-common/pom.xml    |   159 +
 .../thrift/SentryGenericPolicyService.java      | 10416 +++++++++++
 .../TAlterSentryRoleAddGroupsRequest.java       |   842 +
 .../TAlterSentryRoleAddGroupsResponse.java      |   391 +
 .../TAlterSentryRoleDeleteGroupsRequest.java    |   842 +
 .../TAlterSentryRoleDeleteGroupsResponse.java   |   391 +
 .../TAlterSentryRoleGrantPrivilegeRequest.java  |   798 +
 .../TAlterSentryRoleGrantPrivilegeResponse.java |   391 +
 .../TAlterSentryRoleRevokePrivilegeRequest.java |   798 +
 ...TAlterSentryRoleRevokePrivilegeResponse.java |   391 +
 .../generic/service/thrift/TAuthorizable.java   |   490 +
 .../thrift/TCreateSentryRoleRequest.java        |   692 +
 .../thrift/TCreateSentryRoleResponse.java       |   391 +
 .../service/thrift/TDropPrivilegesRequest.java  |   697 +
 .../service/thrift/TDropPrivilegesResponse.java |   391 +
 .../service/thrift/TDropSentryRoleRequest.java  |   692 +
 .../service/thrift/TDropSentryRoleResponse.java |   391 +
 .../TListSentryPrivilegesByAuthRequest.java     |  1112 ++
 .../TListSentryPrivilegesByAuthResponse.java    |   569 +
 ...TListSentryPrivilegesForProviderRequest.java |  1011 ++
 ...ListSentryPrivilegesForProviderResponse.java |   541 +
 .../thrift/TListSentryPrivilegesRequest.java    |   957 +
 .../thrift/TListSentryPrivilegesResponse.java   |   555 +
 .../service/thrift/TListSentryRolesRequest.java |   701 +
 .../thrift/TListSentryRolesResponse.java        |   555 +
 .../thrift/TRenamePrivilegesRequest.java        |  1002 ++
 .../thrift/TRenamePrivilegesResponse.java       |   391 +
 .../service/thrift/TSentryActiveRoleSet.java    |   537 +
 .../service/thrift/TSentryGrantOption.java      |    48 +
 .../service/thrift/TSentryPrivilege.java        |  1080 ++
 .../service/thrift/TSentryPrivilegeMap.java     |   490 +
 .../db/generic/service/thrift/TSentryRole.java  |   539 +
 .../db/service/thrift/SentryPolicyService.java  | 15564 +++++++++++++++++
 .../TAlterSentryRoleAddGroupsRequest.java       |   746 +
 .../TAlterSentryRoleAddGroupsResponse.java      |   394 +
 .../thrift/TAlterSentryRoleAddUsersRequest.java |   741 +
 .../TAlterSentryRoleAddUsersResponse.java       |   394 +
 .../TAlterSentryRoleDeleteGroupsRequest.java    |   746 +
 .../TAlterSentryRoleDeleteGroupsResponse.java   |   394 +
 .../TAlterSentryRoleDeleteUsersRequest.java     |   741 +
 .../TAlterSentryRoleDeleteUsersResponse.java    |   394 +
 .../TAlterSentryRoleGrantPrivilegeRequest.java  |   866 +
 .../TAlterSentryRoleGrantPrivilegeResponse.java |   669 +
 .../TAlterSentryRoleRevokePrivilegeRequest.java |   866 +
 ...TAlterSentryRoleRevokePrivilegeResponse.java |   394 +
 .../thrift/TCreateSentryRoleRequest.java        |   591 +
 .../thrift/TCreateSentryRoleResponse.java       |   394 +
 .../service/thrift/TDropPrivilegesRequest.java  |   596 +
 .../service/thrift/TDropPrivilegesResponse.java |   394 +
 .../service/thrift/TDropSentryRoleRequest.java  |   591 +
 .../service/thrift/TDropSentryRoleResponse.java |   394 +
 .../TListSentryPrivilegesByAuthRequest.java     |   915 +
 .../TListSentryPrivilegesByAuthResponse.java    |   571 +
 ...TListSentryPrivilegesForProviderRequest.java |   915 +
 ...ListSentryPrivilegesForProviderResponse.java |   544 +
 .../thrift/TListSentryPrivilegesRequest.java    |   706 +
 .../thrift/TListSentryPrivilegesResponse.java   |   558 +
 .../thrift/TListSentryRolesForUserRequest.java  |   591 +
 .../service/thrift/TListSentryRolesRequest.java |   600 +
 .../thrift/TListSentryRolesResponse.java        |   558 +
 .../thrift/TRenamePrivilegesRequest.java        |   702 +
 .../thrift/TRenamePrivilegesResponse.java       |   394 +
 .../db/service/thrift/TSentryActiveRoleSet.java |   537 +
 .../db/service/thrift/TSentryAuthorizable.java  |   817 +
 .../thrift/TSentryConfigValueRequest.java       |   600 +
 .../thrift/TSentryConfigValueResponse.java      |   504 +
 .../thrift/TSentryExportMappingDataRequest.java |   600 +
 .../TSentryExportMappingDataResponse.java       |   500 +
 .../db/service/thrift/TSentryGrantOption.java   |    48 +
 .../db/service/thrift/TSentryGroup.java         |   389 +
 .../thrift/TSentryImportMappingDataRequest.java |   693 +
 .../TSentryImportMappingDataResponse.java       |   394 +
 .../db/service/thrift/TSentryMappingData.java   |   898 +
 .../db/service/thrift/TSentryPrivilege.java     |  1258 ++
 .../db/service/thrift/TSentryPrivilegeMap.java  |   490 +
 .../provider/db/service/thrift/TSentryRole.java |   645 +
 .../service/thrift/TSentryResponseStatus.java   |   598 +
 .../thrift/sentry_common_serviceConstants.java  |    57 +
 .../persistent/FixedJsonInstanceSerializer.java |   163 +
 .../db/service/persistent/HAContext.java        |   262 +
 .../service/thrift/JaasConfiguration.java       |   133 +
 .../service/thrift/SentryServiceUtil.java       |   158 +
 .../sentry/service/thrift/ServiceConstants.java |   259 +
 .../apache/sentry/service/thrift/Status.java    |   132 +
 .../main/resources/sentry_common_service.thrift |    46 +
 .../sentry_generic_policy_service.thrift        |   279 +
 .../main/resources/sentry_policy_service.thrift |   330 +
 sentry-service/sentry-service-server/pom.xml    |   279 +
 .../provider/db/SentryPolicyStorePlugin.java    |    60 +
 .../service/persistent/DelegateSentryStore.java |   542 +
 .../service/persistent/PrivilegeObject.java     |   231 +
 .../persistent/PrivilegeOperatePersistence.java |   485 +
 .../service/persistent/SentryStoreLayer.java    |   198 +
 .../service/thrift/NotificationHandler.java     |    47 +
 .../thrift/NotificationHandlerInvoker.java      |   164 +
 .../thrift/SentryGenericPolicyProcessor.java    |   835 +
 .../SentryGenericPolicyProcessorFactory.java    |    41 +
 .../SentryGenericPolicyProcessorWrapper.java    |    39 +
 .../log/appender/AuditLoggerTestAppender.java   |    52 +
 .../RollingFileWithoutDeleteAppender.java       |   175 +
 .../db/log/entity/AuditMetadataLogEntity.java   |   155 +
 .../db/log/entity/DBAuditMetadataLogEntity.java |   124 +
 .../db/log/entity/GMAuditMetadataLogEntity.java |    97 +
 .../provider/db/log/entity/JsonLogEntity.java   |    25 +
 .../db/log/entity/JsonLogEntityFactory.java     |   351 +
 .../provider/db/log/util/CommandUtil.java       |   233 +
 .../sentry/provider/db/log/util/Constants.java  |   162 +
 .../db/service/model/MSentryGMPrivilege.java    |   497 +
 .../provider/db/service/model/MSentryGroup.java |   116 +
 .../db/service/model/MSentryPrivilege.java      |   332 +
 .../provider/db/service/model/MSentryRole.java  |   216 +
 .../provider/db/service/model/MSentryUser.java  |   116 +
 .../db/service/model/MSentryVersion.java        |    66 +
 .../provider/db/service/model/package.jdo       |   242 +
 .../db/service/persistent/CommitContext.java    |    42 +
 .../db/service/persistent/SentryStore.java      |  2672 +++
 .../persistent/SentryStoreSchemaInfo.java       |   143 +
 .../db/service/persistent/ServiceRegister.java  |    52 +
 .../provider/db/service/thrift/ConfServlet.java |    69 +
 .../db/service/thrift/NotificationHandler.java  |    79 +
 .../thrift/NotificationHandlerInvoker.java      |   176 +
 .../db/service/thrift/PolicyStoreConstants.java |    32 +
 .../db/service/thrift/SentryAuthFilter.java     |    92 +
 ...SentryHealthCheckServletContextListener.java |    35 +
 .../db/service/thrift/SentryMetrics.java        |   162 +
 .../SentryMetricsServletContextListener.java    |    32 +
 .../thrift/SentryPolicyStoreProcessor.java      |  1111 ++
 .../SentryPolicyStoreProcessorFactory.java      |    40 +
 .../service/thrift/SentryProcessorWrapper.java  |    37 +
 .../db/service/thrift/SentryWebServer.java      |   184 +
 .../provider/db/service/thrift/ThriftUtil.java  |   112 +
 .../provider/db/tools/SentrySchemaHelper.java   |   315 +
 .../provider/db/tools/SentrySchemaTool.java     |   595 +
 .../sentry/service/thrift/GSSCallback.java      |   110 +
 .../service/thrift/KerberosConfiguration.java   |   107 +
 .../sentry/service/thrift/ProcessorFactory.java |    31 +
 .../service/thrift/SentryKerberosContext.java   |   157 +
 .../sentry/service/thrift/SentryService.java    |   426 +
 .../service/thrift/SentryServiceFactory.java    |    28 +
 .../src/main/resources/001-SENTRY-327.derby.sql |     2 +
 .../src/main/resources/001-SENTRY-327.mysql.sql |     2 +
 .../main/resources/001-SENTRY-327.oracle.sql    |     2 +
 .../main/resources/001-SENTRY-327.postgres.sql  |     2 +
 .../src/main/resources/002-SENTRY-339.derby.sql |    13 +
 .../src/main/resources/002-SENTRY-339.mysql.sql |    13 +
 .../main/resources/002-SENTRY-339.oracle.sql    |    13 +
 .../main/resources/002-SENTRY-339.postgres.sql  |    13 +
 .../src/main/resources/003-SENTRY-380.derby.sql |     7 +
 .../src/main/resources/003-SENTRY-380.mysql.sql |     7 +
 .../main/resources/003-SENTRY-380.oracle.sql    |     7 +
 .../main/resources/003-SENTRY-380.postgres.sql  |     7 +
 .../src/main/resources/004-SENTRY-74.derby.sql  |     4 +
 .../src/main/resources/004-SENTRY-74.mysql.sql  |     4 +
 .../src/main/resources/004-SENTRY-74.oracle.sql |     4 +
 .../main/resources/004-SENTRY-74.postgres.sql   |     4 +
 .../src/main/resources/005-SENTRY-398.derby.sql |    43 +
 .../src/main/resources/005-SENTRY-398.mysql.sql |    62 +
 .../main/resources/005-SENTRY-398.oracle.sql    |    55 +
 .../main/resources/005-SENTRY-398.postgres.sql  |    54 +
 .../src/main/resources/006-SENTRY-711.derby.sql |    27 +
 .../src/main/resources/006-SENTRY-711.mysql.sql |    28 +
 .../main/resources/006-SENTRY-711.oracle.sql    |    28 +
 .../main/resources/006-SENTRY-711.postgres.sql  |    28 +
 .../src/main/resources/sentry-db2-1.4.0.sql     |   112 +
 .../src/main/resources/sentry-db2-1.5.0.sql     |   155 +
 .../src/main/resources/sentry-db2-1.6.0.sql     |   155 +
 .../src/main/resources/sentry-db2-1.7.0.sql     |   155 +
 .../src/main/resources/sentry-db2-1.8.0.sql     |   183 +
 .../src/main/resources/sentry-derby-1.4.0.sql   |   112 +
 .../src/main/resources/sentry-derby-1.5.0.sql   |   155 +
 .../src/main/resources/sentry-derby-1.6.0.sql   |   155 +
 .../src/main/resources/sentry-derby-1.7.0.sql   |   155 +
 .../src/main/resources/sentry-derby-1.8.0.sql   |   184 +
 .../src/main/resources/sentry-mysql-1.4.0.sql   |   126 +
 .../src/main/resources/sentry-mysql-1.5.0.sql   |   192 +
 .../src/main/resources/sentry-mysql-1.6.0.sql   |   193 +
 .../src/main/resources/sentry-mysql-1.7.0.sql   |   193 +
 .../src/main/resources/sentry-mysql-1.8.0.sql   |   223 +
 .../src/main/resources/sentry-oracle-1.4.0.sql  |   110 +
 .../src/main/resources/sentry-oracle-1.5.0.sql  |   168 +
 .../src/main/resources/sentry-oracle-1.6.0.sql  |   168 +
 .../src/main/resources/sentry-oracle-1.7.0.sql  |   168 +
 .../src/main/resources/sentry-oracle-1.8.0.sql  |   197 +
 .../main/resources/sentry-postgres-1.4.0.sql    |   124 +
 .../main/resources/sentry-postgres-1.5.0.sql    |   182 +
 .../main/resources/sentry-postgres-1.6.0.sql    |   182 +
 .../main/resources/sentry-postgres-1.7.0.sql    |   182 +
 .../main/resources/sentry-postgres-1.8.0.sql    |   211 +
 .../sentry-upgrade-db2-1.4.0-to-1.5.0.sql       |    61 +
 .../sentry-upgrade-db2-1.5.0-to-1.6.0.sql       |     2 +
 .../sentry-upgrade-db2-1.6.0-to-1.7.0.sql       |     2 +
 .../sentry-upgrade-db2-1.7.0-to-1.8.0.sql       |    31 +
 .../sentry-upgrade-derby-1.4.0-to-1.5.0.sql     |     8 +
 .../sentry-upgrade-derby-1.5.0-to-1.6.0.sql     |     2 +
 .../sentry-upgrade-derby-1.6.0-to-1.7.0.sql     |     2 +
 .../sentry-upgrade-derby-1.7.0-to-1.8.0.sql     |     4 +
 .../sentry-upgrade-mysql-1.4.0-to-1.5.0.sql     |    10 +
 .../sentry-upgrade-mysql-1.5.0-to-1.6.0.sql     |     5 +
 .../sentry-upgrade-mysql-1.6.0-to-1.7.0.sql     |     5 +
 .../sentry-upgrade-mysql-1.7.0-to-1.8.0.sql     |     6 +
 .../sentry-upgrade-oracle-1.4.0-to-1.5.0.sql    |     9 +
 .../sentry-upgrade-oracle-1.5.0-to-1.6.0.sql    |     5 +
 .../sentry-upgrade-oracle-1.6.0-to-1.7.0.sql    |     5 +
 .../sentry-upgrade-oracle-1.7.0-to-1.8.0.sql    |     6 +
 .../sentry-upgrade-postgres-1.4.0-to-1.5.0.sql  |     9 +
 .../sentry-upgrade-postgres-1.5.0-to-1.6.0.sql  |     5 +
 .../sentry-upgrade-postgres-1.6.0-to-1.7.0.sql  |     5 +
 .../sentry-upgrade-postgres-1.7.0-to-1.8.0.sql  |     6 +
 .../src/main/resources/upgrade.order.db2        |     4 +
 .../src/main/resources/upgrade.order.derby      |     4 +
 .../src/main/resources/upgrade.order.mysql      |     4 +
 .../src/main/resources/upgrade.order.oracle     |     4 +
 .../src/main/resources/upgrade.order.postgres   |     4 +
 .../src/main/webapp/SentryService.html          |    61 +
 .../src/main/webapp/css/bootstrap-theme.min.css |    10 +
 .../src/main/webapp/css/bootstrap.min.css       |     9 +
 .../src/main/webapp/css/sentry.css              |    52 +
 .../src/main/webapp/sentry.png                  |   Bin 0 -> 3223 bytes
 .../persistent/SentryStoreIntegrationBase.java  |    91 +
 .../persistent/TestDelegateSentryStore.java     |   182 +
 .../TestPrivilegeOperatePersistence.java        |  1139 ++
 .../persistent/TestSentryGMPrivilege.java       |   207 +
 .../service/persistent/TestSentryRole.java      |   372 +
 .../SentryGenericServiceIntegrationBase.java    |    73 +
 .../TestAuditLogForSentryGenericService.java    |   296 +
 .../TestSentryGenericPolicyProcessor.java       |   349 +
 .../TestSentryGenericServiceIntegration.java    |   503 +
 .../generic/tools/TestSentryConfigToolSolr.java |   261 +
 .../db/generic/tools/TestSentryShellKafka.java  |   542 +
 .../db/generic/tools/TestSentryShellSolr.java   |   525 +
 .../TestRollingFileWithoutDeleteAppender.java   |   103 +
 .../entity/TestDbAuditMetadataLogEntity.java    |    67 +
 .../entity/TestGMAuditMetadataLogEntity.java    |    72 +
 .../db/log/entity/TestJsonLogEntityFactory.java |   272 +
 .../log/entity/TestJsonLogEntityFactoryGM.java  |   259 +
 .../provider/db/log/util/TestCommandUtil.java   |   416 +
 .../service/persistent/TestSentryPrivilege.java |   245 +
 .../persistent/TestSentryServiceDiscovery.java  |   123 +
 .../db/service/persistent/TestSentryStore.java  |  2090 +++
 .../persistent/TestSentryStoreImportExport.java |  1164 ++
 .../TestSentryStoreToAuthorizable.java          |    86 +
 .../service/persistent/TestSentryVersion.java   |    84 +
 .../service/thrift/SentryMiniKdcTestcase.java   |    68 +
 .../TestAuthorizingDDLAuditLogWithKerberos.java |   295 +
 .../thrift/TestConnectionWithTicketTimeout.java |    57 +
 .../thrift/TestNotificationHandlerInvoker.java  |   112 +
 .../thrift/TestSentryPolicyStoreProcessor.java  |    81 +
 .../TestSentryServerForHaWithoutKerberos.java   |   219 +
 ...estSentryServerForPoolHAWithoutKerberos.java |    36 +
 .../TestSentryServerForPoolWithoutKerberos.java |    37 +
 .../thrift/TestSentryServerWithoutKerberos.java |   214 +
 .../thrift/TestSentryServiceClientPool.java     |   111 +
 .../thrift/TestSentryServiceFailureCase.java    |    74 +
 .../TestSentryServiceForHAWithKerberos.java     |    75 +
 .../TestSentryServiceForPoolHAWithKerberos.java |    39 +
 .../TestSentryServiceForPoolWithKerberos.java   |    37 +
 .../thrift/TestSentryServiceImportExport.java   |   751 +
 .../thrift/TestSentryServiceIntegration.java    |  1102 ++
 .../TestSentryServiceWithInvalidMsgSize.java    |   119 +
 .../thrift/TestSentryServiceWithKerberos.java   |    58 +
 .../thrift/TestSentryWebServerWithKerberos.java |   136 +
 .../thrift/TestSentryWebServerWithSSL.java      |    52 +
 .../TestSentryWebServerWithoutSecurity.java     |    87 +
 .../provider/db/tools/TestSentrySchemaTool.java |    94 +
 .../provider/db/tools/TestSentryShellHive.java  |   608 +
 .../thrift/SentryServiceIntegrationBase.java    |   355 +
 .../src/test/resources/cacerts.jks              |   Bin 0 -> 954 bytes
 .../src/test/resources/keystore.jks             |   Bin 0 -> 2245 bytes
 .../src/test/resources/log4j.properties         |    34 +
 .../src/test/resources/solr_case.ini            |    26 +
 .../test/resources/solr_config_import_tool.ini  |    29 +
 .../src/test/resources/solr_invalid.ini         |    21 +
 sentry-solr/solr-sentry-core/pom.xml            |     4 -
 sentry-solr/solr-sentry-handlers/pom.xml        |     4 -
 .../dbprovider/AbstractTestWithDbProvider.java  |     2 +-
 .../e2e/dbprovider/TestConcurrentClients.java   |     2 +-
 .../tests/e2e/dbprovider/TestDbComplexView.java |     2 +-
 .../tests/e2e/dbprovider/TestDbConnections.java |     2 +-
 .../tests/e2e/dbprovider/TestDbEndToEnd.java    |     2 +-
 .../TestDbSentryOnFailureHookLoading.java       |     4 +-
 .../TestPrivilegeWithGrantOption.java           |     3 +-
 .../TestPrivilegeWithHAGrantOption.java         |     3 +-
 .../sentry/tests/e2e/ha/TestHaEnd2End.java      |     2 +-
 .../tests/e2e/hdfs/TestHDFSIntegration.java     |     5 +-
 .../AbstractTestWithStaticConfiguration.java    |     3 +-
 .../sentry/tests/e2e/hive/TestConfigTool.java   |     2 +-
 .../sentry/tests/e2e/hive/TestCrossDbOps.java   |     2 +-
 .../e2e/hive/TestCustomSerdePrivileges.java     |     2 +-
 .../sentry/tests/e2e/hive/TestEndToEnd.java     |     2 +-
 .../e2e/hive/TestExportImportPrivileges.java    |     2 +-
 .../tests/e2e/hive/TestJDBCInterface.java       |     2 +-
 .../tests/e2e/hive/TestLockPrivileges.java      |     2 +-
 .../e2e/hive/TestMetadataObjectRetrieval.java   |     2 +-
 .../tests/e2e/hive/TestMetadataPermissions.java |     2 +-
 .../tests/e2e/hive/TestMovingToProduction.java  |     2 +-
 .../sentry/tests/e2e/hive/TestOperations.java   |     2 +-
 .../tests/e2e/hive/TestPerDBConfiguration.java  |     2 +-
 .../e2e/hive/TestPerDatabasePolicyFile.java     |     2 +-
 .../e2e/hive/TestPrivilegeAtTransform.java      |     2 +-
 .../e2e/hive/TestPrivilegesAtColumnScope.java   |     2 +-
 .../e2e/hive/TestPrivilegesAtDatabaseScope.java |     2 +-
 .../e2e/hive/TestPrivilegesAtFunctionScope.java |     2 +-
 .../e2e/hive/TestPrivilegesAtTableScope.java    |     2 +-
 .../tests/e2e/hive/TestReloadPrivileges.java    |     2 +-
 .../e2e/hive/TestRuntimeMetadataRetrieval.java  |     2 +-
 .../sentry/tests/e2e/hive/TestSandboxOps.java   |     2 +-
 .../hive/TestSentryOnFailureHookLoading.java    |     2 +-
 .../tests/e2e/hive/TestServerConfiguration.java |     2 +-
 .../tests/e2e/hive/TestUriPermissions.java      |     2 +-
 .../tests/e2e/hive/TestUserManagement.java      |     2 +-
 .../tests/e2e/hive/TestViewPrivileges.java      |     2 +-
 ...actMetastoreTestWithStaticConfiguration.java |     2 +-
 .../metastore/SentryPolicyProviderForDb.java    |     2 +-
 .../metastore/TestAuthorizingObjectStore.java   |     2 +-
 .../e2e/metastore/TestMetaStoreWithPigHCat.java |     2 +-
 .../e2e/metastore/TestMetastoreEndToEnd.java    |     2 +-
 sentry-tests/sentry-tests-hive/pom.xml          |     2 +-
 .../dbprovider/AbstractTestWithDbProvider.java  |     2 +-
 .../e2e/dbprovider/TestConcurrentClients.java   |     2 +-
 .../tests/e2e/dbprovider/TestDbComplexView.java |     2 +-
 .../tests/e2e/dbprovider/TestDbConnections.java |     2 +-
 .../tests/e2e/dbprovider/TestDbEndToEnd.java    |     2 +-
 .../sentry/tests/e2e/ha/TestHaEnd2End.java      |     2 +-
 .../tests/e2e/hdfs/TestHDFSIntegration.java     |     2 +-
 .../AbstractTestWithStaticConfiguration.java    |     2 +-
 .../sentry/tests/e2e/hive/TestConfigTool.java   |     2 +-
 .../sentry/tests/e2e/hive/TestCrossDbOps.java   |     2 +-
 .../e2e/hive/TestCustomSerdePrivileges.java     |     2 +-
 .../sentry/tests/e2e/hive/TestEndToEnd.java     |     2 +-
 .../e2e/hive/TestExportImportPrivileges.java    |     2 +-
 .../tests/e2e/hive/TestJDBCInterface.java       |     2 +-
 .../tests/e2e/hive/TestLockPrivileges.java      |     2 +-
 .../e2e/hive/TestMetadataObjectRetrieval.java   |     2 +-
 .../tests/e2e/hive/TestMetadataPermissions.java |     2 +-
 .../tests/e2e/hive/TestMovingToProduction.java  |     2 +-
 .../tests/e2e/hive/TestOperationsPart1.java     |     2 +-
 .../tests/e2e/hive/TestOperationsPart2.java     |     2 +-
 .../tests/e2e/hive/TestPerDBConfiguration.java  |     2 +-
 .../e2e/hive/TestPerDatabasePolicyFile.java     |     2 +-
 .../e2e/hive/TestPrivilegeAtTransform.java      |     2 +-
 .../e2e/hive/TestPrivilegesAtColumnScope.java   |     2 +-
 .../e2e/hive/TestPrivilegesAtDatabaseScope.java |     2 +-
 .../e2e/hive/TestPrivilegesAtFunctionScope.java |     2 +-
 .../hive/TestPrivilegesAtTableScopePart1.java   |     2 +-
 .../hive/TestPrivilegesAtTableScopePart2.java   |     2 +-
 .../tests/e2e/hive/TestReloadPrivileges.java    |     2 +-
 .../e2e/hive/TestRuntimeMetadataRetrieval.java  |     2 +-
 .../sentry/tests/e2e/hive/TestSandboxOps.java   |     2 +-
 .../hive/TestSentryOnFailureHookLoading.java    |     2 +-
 .../tests/e2e/hive/TestServerConfiguration.java |     2 +-
 .../tests/e2e/hive/TestUriPermissions.java      |     2 +-
 .../tests/e2e/hive/TestUserManagement.java      |     2 +-
 .../tests/e2e/hive/TestViewPrivileges.java      |     2 +-
 ...actMetastoreTestWithStaticConfiguration.java |     2 +-
 .../metastore/SentryPolicyProviderForDb.java    |     2 +-
 .../metastore/TestAuthorizingObjectStore.java   |     2 +-
 .../e2e/metastore/TestMetaStoreWithPigHCat.java |     2 +-
 .../e2e/metastore/TestMetastoreEndToEnd.java    |     2 +-
 .../tests/e2e/metastore/TestURIMetastore.java   |     2 +-
 sentry-tests/sentry-tests-kafka/pom.xml         |     3 +-
 .../e2e/kafka/AbstractKafkaSentryTestBase.java  |     2 +-
 sentry-tests/sentry-tests-solr/pom.xml          |     2 +-
 .../AbstractSolrSentryTestWithDbProvider.java   |     2 +-
 sentry-tests/sentry-tests-sqoop/pom.xml         |     2 +-
 .../e2e/sqoop/AbstractSqoopSentryTestBase.java  |     2 +-
 767 files changed, 110640 insertions(+), 110541 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 2ea4735..a4f2bcc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,7 +55,6 @@ limitations under the License.
     <maven.compile.target>1.7</maven.compile.target>
     <!-- versions are in alphabetical order -->
     <ant.contrib.version>1.0b3</ant.contrib.version>
-    <bonecp.version>0.7.1.RELEASE</bonecp.version>
     <build.helper.maven.plugin.version>1.8</build.helper.maven.plugin.version>
     <cglib.version>2.2</cglib.version>
     <commons-cli.version>1.2</commons-cli.version>
@@ -75,6 +74,7 @@ limitations under the License.
     <jackson.version>1.8.8</jackson.version>
     <jdo-api.version>3.0.1</jdo-api.version>
     <jettyVersion>8.1.19.v20160209</jettyVersion>
+    <jetty.aggregate>7.6.0.v20120127</jetty.aggregate>
     <joda-time.version>2.5</joda-time.version>
     <junit.version>4.10</junit.version>
     <libfb303.version>0.9.3</libfb303.version>
@@ -121,11 +121,6 @@ limitations under the License.
         <version>${commons.logging.version}</version>
       </dependency>
       <dependency>
-        <groupId>com.jolbox</groupId>
-        <artifactId>bonecp</artifactId>
-        <version>${bonecp.version}</version>
-      </dependency>
-      <dependency>
         <groupId>org.apache.derby</groupId>
         <artifactId>derby</artifactId>
         <version>${derby.version}</version>
@@ -425,6 +420,21 @@ limitations under the License.
       </dependency>
       <dependency>
         <groupId>org.apache.sentry</groupId>
+        <artifactId>sentry-service-common</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sentry</groupId>
+        <artifactId>sentry-service-server</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sentry</groupId>
+        <artifactId>sentry-service-client</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.sentry</groupId>
         <artifactId>sentry-provider-common</artifactId>
         <version>${project.version}</version>
       </dependency>
@@ -465,7 +475,7 @@ limitations under the License.
       </dependency>
       <dependency>
         <groupId>org.apache.sentry</groupId>
-        <artifactId>sentry-provider-db</artifactId>
+        <artifactId>sentry-service-server</artifactId>
         <version>${project.version}</version>
         <type>test-jar</type>
       </dependency>
@@ -615,11 +625,17 @@ limitations under the License.
         <artifactId>jetty-servlet</artifactId>
         <version>${jettyVersion}</version>
       </dependency>
+      <dependency>
+        <groupId>org.eclipse.jetty.aggregate</groupId>
+        <artifactId>jetty-all</artifactId>
+        <version>${jetty.aggregate}</version>
+      </dependency>
     </dependencies>
   </dependencyManagement>
 
   <modules>
     <module>sentry-core</module>
+    <module>sentry-service</module>
     <module>sentry-binding</module>
     <module>sentry-provider</module>
     <module>sentry-policy</module>

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-hive-common/pom.xml
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive-common/pom.xml b/sentry-binding/sentry-binding-hive-common/pom.xml
index 18b422d..685df0c 100644
--- a/sentry-binding/sentry-binding-hive-common/pom.xml
+++ b/sentry-binding/sentry-binding-hive-common/pom.xml
@@ -54,23 +54,19 @@ limitations under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-core-common</artifactId>
+      <artifactId>sentry-core-model-db</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-core-model-db</artifactId>
+      <artifactId>sentry-service-client</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-provider-common</artifactId>
+      <artifactId>sentry-policy-engine</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-provider-file</artifactId>
-    </dependency>
-      <dependency>
-        <groupId>org.apache.sentry</groupId>
-        <artifactId>sentry-provider-cache</artifactId>
+      <artifactId>sentry-provider-cache</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.hadoop</groupId>

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-hive-v2/pom.xml
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive-v2/pom.xml b/sentry-binding/sentry-binding-hive-v2/pom.xml
index cb1b026..e6df18a 100644
--- a/sentry-binding/sentry-binding-hive-v2/pom.xml
+++ b/sentry-binding/sentry-binding-hive-v2/pom.xml
@@ -110,26 +110,6 @@ limitations under the License.
       <scope>provided</scope>
     </dependency>
     <dependency>
-      <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-core-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-core-model-db</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-provider-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-provider-file</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-policy-engine</artifactId>
-    </dependency>
-    <dependency>
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-common</artifactId>
       <scope>provided</scope>

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-hive-v2/src/main/java/org/apache/sentry/binding/hive/v2/metastore/MetastoreAuthzBindingV2.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive-v2/src/main/java/org/apache/sentry/binding/hive/v2/metastore/MetastoreAuthzBindingV2.java b/sentry-binding/sentry-binding-hive-v2/src/main/java/org/apache/sentry/binding/hive/v2/metastore/MetastoreAuthzBindingV2.java
index cfef1a7..7c1de14 100644
--- a/sentry-binding/sentry-binding-hive-v2/src/main/java/org/apache/sentry/binding/hive/v2/metastore/MetastoreAuthzBindingV2.java
+++ b/sentry-binding/sentry-binding-hive-v2/src/main/java/org/apache/sentry/binding/hive/v2/metastore/MetastoreAuthzBindingV2.java
@@ -28,11 +28,11 @@ import org.apache.hadoop.hive.metastore.api.MetaException;
 import org.apache.hadoop.hive.metastore.events.PreDropPartitionEvent;
 import org.apache.hadoop.hive.ql.metadata.AuthorizationException;
 import org.apache.hadoop.hive.ql.plan.HiveOperation;
+import org.apache.sentry.core.common.exception.SentryUserException;
 import org.apache.sentry.binding.hive.authz.HiveAuthzBinding;
 import org.apache.sentry.binding.hive.v2.HiveAuthzPrivilegesMapV2;
 import org.apache.sentry.binding.metastore.MetastoreAuthzBindingBase;
 import org.apache.sentry.core.common.Subject;
-import org.apache.sentry.core.common.exception.SentryUserException;
 import org.apache.sentry.core.model.db.DBModelAuthorizable;
 
 /**

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-hive/pom.xml
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/pom.xml b/sentry-binding/sentry-binding-hive/pom.xml
index 07aaae3..fa1c44c 100644
--- a/sentry-binding/sentry-binding-hive/pom.xml
+++ b/sentry-binding/sentry-binding-hive/pom.xml
@@ -70,31 +70,6 @@ limitations under the License.
       <artifactId>sentry-binding-hive-common</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-core-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-core-model-db</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-provider-common</artifactId>
-    </dependency>
-    <!-- required for SentryGrantRevokeTask -->
-    <dependency>
-      <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-provider-db</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-provider-file</artifactId>
-    </dependency>
-      <dependency>
-        <groupId>org.apache.sentry</groupId>
-        <artifactId>sentry-provider-cache</artifactId>
-      </dependency>
-    <dependency>
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-common</artifactId>
       <scope>provided</scope>
@@ -112,10 +87,6 @@ limitations under the License.
     </dependency>
     <!-- required for SentryGrantRevokeTask -->
     <dependency>
-      <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-provider-db</artifactId>
-    </dependency>
-    <dependency>
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-minicluster</artifactId>
       <scope>test</scope>

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/MockUserToGroupMapping.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/MockUserToGroupMapping.java b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/MockUserToGroupMapping.java
index c095603..8ea8e1b 100644
--- a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/MockUserToGroupMapping.java
+++ b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/binding/hive/MockUserToGroupMapping.java
@@ -19,7 +19,7 @@ package org.apache.sentry.binding.hive;
 
 import java.util.Set;
 
-import org.apache.sentry.provider.common.GroupMappingService;
+import org.apache.sentry.core.common.service.GroupMappingService;
 
 import com.google.common.collect.Sets;
 

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestPolicyParsingNegative.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestPolicyParsingNegative.java b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestPolicyParsingNegative.java
index 4dc8812..0a53088 100644
--- a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestPolicyParsingNegative.java
+++ b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestPolicyParsingNegative.java
@@ -24,7 +24,7 @@ import org.junit.Assert;
 import org.apache.commons.io.FileUtils;
 import org.apache.sentry.core.common.ActiveRoleSet;
 import org.apache.sentry.policy.common.PolicyEngine;
-import org.apache.sentry.provider.file.PolicyFile;
+import org.apache.sentry.core.common.utils.PolicyFile;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestResourceAuthorizationProviderGeneralCases.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestResourceAuthorizationProviderGeneralCases.java b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestResourceAuthorizationProviderGeneralCases.java
index 403eb6a..2ace656 100644
--- a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestResourceAuthorizationProviderGeneralCases.java
+++ b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestResourceAuthorizationProviderGeneralCases.java
@@ -37,7 +37,7 @@ import org.apache.sentry.core.model.db.Database;
 import org.apache.sentry.core.model.db.HivePrivilegeModel;
 import org.apache.sentry.core.model.db.Server;
 import org.apache.sentry.core.model.db.Table;
-import org.apache.sentry.provider.common.GroupMappingService;
+import org.apache.sentry.core.common.service.GroupMappingService;
 import org.apache.sentry.provider.common.ResourceAuthorizationProvider;
 import org.apache.sentry.provider.file.HadoopGroupResourceAuthorizationProvider;
 import org.apache.sentry.provider.file.PolicyFiles;

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestResourceAuthorizationProviderSpecialCases.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestResourceAuthorizationProviderSpecialCases.java b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestResourceAuthorizationProviderSpecialCases.java
index 6fe9e6b..040f467 100644
--- a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestResourceAuthorizationProviderSpecialCases.java
+++ b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestResourceAuthorizationProviderSpecialCases.java
@@ -36,7 +36,7 @@ import org.apache.sentry.core.model.db.Server;
 import org.apache.sentry.policy.common.PolicyEngine;
 import org.apache.sentry.provider.common.AuthorizationProvider;
 import org.apache.sentry.provider.file.LocalGroupResourceAuthorizationProvider;
-import org.apache.sentry.provider.file.PolicyFile;
+import org.apache.sentry.core.common.utils.PolicyFile;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestSimpleDBPolicyEngineDFS.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestSimpleDBPolicyEngineDFS.java b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestSimpleDBPolicyEngineDFS.java
index 97cf615..f86516f 100644
--- a/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestSimpleDBPolicyEngineDFS.java
+++ b/sentry-binding/sentry-binding-hive/src/test/java/org/apache/sentry/policy/hive/TestSimpleDBPolicyEngineDFS.java
@@ -28,7 +28,7 @@ import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hdfs.MiniDFSCluster;
 import org.apache.sentry.core.common.ActiveRoleSet;
 import org.apache.sentry.policy.common.PolicyEngine;
-import org.apache.sentry.provider.file.PolicyFile;
+import org.apache.sentry.core.common.utils.PolicyFile;
 import org.apache.sentry.provider.file.PolicyFiles;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-kafka/pom.xml
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-kafka/pom.xml b/sentry-binding/sentry-binding-kafka/pom.xml
index f6f212b..f868786 100644
--- a/sentry-binding/sentry-binding-kafka/pom.xml
+++ b/sentry-binding/sentry-binding-kafka/pom.xml
@@ -37,27 +37,15 @@ limitations under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-core-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.sentry</groupId>
       <artifactId>sentry-core-model-kafka</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-provider-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-provider-file</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.sentry</groupId>
       <artifactId>sentry-provider-db</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-policy-common</artifactId>
+      <artifactId>sentry-policy-engine</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.hadoop</groupId>

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-kafka/src/main/java/org/apache/sentry/kafka/binding/KafkaAuthBinding.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-kafka/src/main/java/org/apache/sentry/kafka/binding/KafkaAuthBinding.java b/sentry-binding/sentry-binding-kafka/src/main/java/org/apache/sentry/kafka/binding/KafkaAuthBinding.java
index cc5194b..53e7a3c 100644
--- a/sentry-binding/sentry-binding-kafka/src/main/java/org/apache/sentry/kafka/binding/KafkaAuthBinding.java
+++ b/sentry-binding/sentry-binding-kafka/src/main/java/org/apache/sentry/kafka/binding/KafkaAuthBinding.java
@@ -51,7 +51,7 @@ import org.apache.sentry.core.model.kafka.KafkaPrivilegeModel;
 import org.apache.sentry.kafka.ConvertUtil;
 import org.apache.sentry.kafka.conf.KafkaAuthConf.AuthzConfVars;
 import org.apache.sentry.policy.common.PolicyEngine;
-import org.apache.sentry.provider.common.AuthorizationComponent;
+import org.apache.sentry.core.common.utils.AuthorizationComponent;
 import org.apache.sentry.provider.common.AuthorizationProvider;
 import org.apache.sentry.provider.common.ProviderBackend;
 import org.apache.sentry.provider.common.ProviderBackendContext;

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-kafka/src/test/java/org/apache/sentry/policy/kafka/MockGroupMappingServiceProvider.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-kafka/src/test/java/org/apache/sentry/policy/kafka/MockGroupMappingServiceProvider.java b/sentry-binding/sentry-binding-kafka/src/test/java/org/apache/sentry/policy/kafka/MockGroupMappingServiceProvider.java
index 572c74d..1329520 100644
--- a/sentry-binding/sentry-binding-kafka/src/test/java/org/apache/sentry/policy/kafka/MockGroupMappingServiceProvider.java
+++ b/sentry-binding/sentry-binding-kafka/src/test/java/org/apache/sentry/policy/kafka/MockGroupMappingServiceProvider.java
@@ -20,7 +20,7 @@ package org.apache.sentry.policy.kafka;
 
 import java.util.Set;
 
-import org.apache.sentry.provider.common.GroupMappingService;
+import org.apache.sentry.core.common.service.GroupMappingService;
 
 import com.google.common.collect.Multimap;
 import com.google.common.collect.Sets;

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-kafka/src/test/java/org/apache/sentry/policy/kafka/TestKafkaAuthorizationProviderSpecialCases.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-kafka/src/test/java/org/apache/sentry/policy/kafka/TestKafkaAuthorizationProviderSpecialCases.java b/sentry-binding/sentry-binding-kafka/src/test/java/org/apache/sentry/policy/kafka/TestKafkaAuthorizationProviderSpecialCases.java
index 63d2f30..6109059 100644
--- a/sentry-binding/sentry-binding-kafka/src/test/java/org/apache/sentry/policy/kafka/TestKafkaAuthorizationProviderSpecialCases.java
+++ b/sentry-binding/sentry-binding-kafka/src/test/java/org/apache/sentry/policy/kafka/TestKafkaAuthorizationProviderSpecialCases.java
@@ -38,7 +38,7 @@ import org.apache.sentry.core.model.kafka.Topic;
 import org.apache.sentry.policy.common.PolicyEngine;
 import org.apache.sentry.provider.common.AuthorizationProvider;
 import org.apache.sentry.provider.file.LocalGroupResourceAuthorizationProvider;
-import org.apache.sentry.provider.file.PolicyFile;
+import org.apache.sentry.core.common.utils.PolicyFile;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-solr/pom.xml
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-solr/pom.xml b/sentry-binding/sentry-binding-solr/pom.xml
index a63a600..8b94c87 100644
--- a/sentry-binding/sentry-binding-solr/pom.xml
+++ b/sentry-binding/sentry-binding-solr/pom.xml
@@ -36,18 +36,10 @@ limitations under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-core-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.sentry</groupId>
       <artifactId>sentry-core-model-search</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-provider-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.sentry</groupId>
       <artifactId>sentry-provider-db</artifactId>
     </dependency>
     <dependency>
@@ -56,6 +48,10 @@ limitations under the License.
       <scope>test</scope>
     </dependency>
     <dependency>
+      <groupId>org.apache.sentry</groupId>
+      <artifactId>sentry-policy-engine</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-common</artifactId>
       <scope>provided</scope>

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-solr/src/main/java/org/apache/sentry/binding/solr/authz/SolrAuthzBinding.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-solr/src/main/java/org/apache/sentry/binding/solr/authz/SolrAuthzBinding.java b/sentry-binding/sentry-binding-solr/src/main/java/org/apache/sentry/binding/solr/authz/SolrAuthzBinding.java
index 2400673..3bc5b82 100644
--- a/sentry-binding/sentry-binding-solr/src/main/java/org/apache/sentry/binding/solr/authz/SolrAuthzBinding.java
+++ b/sentry-binding/sentry-binding-solr/src/main/java/org/apache/sentry/binding/solr/authz/SolrAuthzBinding.java
@@ -42,9 +42,9 @@ import org.apache.sentry.core.model.search.Collection;
 import org.apache.sentry.core.model.search.SearchModelAction;
 import org.apache.sentry.core.model.search.SearchPrivilegeModel;
 import org.apache.sentry.policy.common.PolicyEngine;
-import org.apache.sentry.provider.common.AuthorizationComponent;
+import org.apache.sentry.core.common.utils.AuthorizationComponent;
 import org.apache.sentry.provider.common.AuthorizationProvider;
-import org.apache.sentry.provider.common.GroupMappingService;
+import org.apache.sentry.core.common.service.GroupMappingService;
 import org.apache.sentry.provider.common.HadoopGroupResourceAuthorizationProvider;
 import org.apache.sentry.provider.common.ProviderBackend;
 import org.apache.sentry.provider.common.ProviderBackendContext;

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-solr/src/test/java/org/apache/sentry/policy/solr/TestSearchAuthorizationProviderGeneralCases.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-solr/src/test/java/org/apache/sentry/policy/solr/TestSearchAuthorizationProviderGeneralCases.java b/sentry-binding/sentry-binding-solr/src/test/java/org/apache/sentry/policy/solr/TestSearchAuthorizationProviderGeneralCases.java
index 6f7f07a..2c82dc7 100644
--- a/sentry-binding/sentry-binding-solr/src/test/java/org/apache/sentry/policy/solr/TestSearchAuthorizationProviderGeneralCases.java
+++ b/sentry-binding/sentry-binding-solr/src/test/java/org/apache/sentry/policy/solr/TestSearchAuthorizationProviderGeneralCases.java
@@ -34,7 +34,7 @@ import org.apache.sentry.core.common.Subject;
 import org.apache.sentry.core.model.search.Collection;
 import org.apache.sentry.core.model.search.SearchModelAction;
 import org.apache.sentry.core.model.search.SearchPrivilegeModel;
-import org.apache.sentry.provider.common.GroupMappingService;
+import org.apache.sentry.core.common.service.GroupMappingService;
 import org.apache.sentry.provider.common.ResourceAuthorizationProvider;
 import org.apache.sentry.provider.file.HadoopGroupResourceAuthorizationProvider;
 import org.apache.sentry.provider.file.PolicyFiles;

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-solr/src/test/java/org/apache/sentry/policy/solr/TestSearchAuthorizationProviderSpecialCases.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-solr/src/test/java/org/apache/sentry/policy/solr/TestSearchAuthorizationProviderSpecialCases.java b/sentry-binding/sentry-binding-solr/src/test/java/org/apache/sentry/policy/solr/TestSearchAuthorizationProviderSpecialCases.java
index 371f361..80e3f4a 100644
--- a/sentry-binding/sentry-binding-solr/src/test/java/org/apache/sentry/policy/solr/TestSearchAuthorizationProviderSpecialCases.java
+++ b/sentry-binding/sentry-binding-solr/src/test/java/org/apache/sentry/policy/solr/TestSearchAuthorizationProviderSpecialCases.java
@@ -35,7 +35,7 @@ import org.apache.sentry.core.model.search.SearchPrivilegeModel;
 import org.apache.sentry.policy.common.PolicyEngine;
 import org.apache.sentry.provider.common.AuthorizationProvider;
 import org.apache.sentry.provider.file.LocalGroupResourceAuthorizationProvider;
-import org.apache.sentry.provider.file.PolicyFile;
+import org.apache.sentry.core.common.utils.PolicyFile;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-sqoop/pom.xml
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-sqoop/pom.xml b/sentry-binding/sentry-binding-sqoop/pom.xml
index 732da26..e96802f 100644
--- a/sentry-binding/sentry-binding-sqoop/pom.xml
+++ b/sentry-binding/sentry-binding-sqoop/pom.xml
@@ -36,18 +36,10 @@ limitations under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-core-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.sentry</groupId>
       <artifactId>sentry-core-model-sqoop</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-provider-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.sentry</groupId>
       <artifactId>sentry-provider-file</artifactId>
     </dependency>
     <dependency>
@@ -56,7 +48,7 @@ limitations under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.sentry</groupId>
-      <artifactId>sentry-policy-common</artifactId>
+      <artifactId>sentry-policy-engine</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.hadoop</groupId>

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-sqoop/src/main/java/org/apache/sentry/sqoop/binding/SqoopAuthBinding.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-sqoop/src/main/java/org/apache/sentry/sqoop/binding/SqoopAuthBinding.java b/sentry-binding/sentry-binding-sqoop/src/main/java/org/apache/sentry/sqoop/binding/SqoopAuthBinding.java
index 84a61cc..0a2e0b5 100644
--- a/sentry-binding/sentry-binding-sqoop/src/main/java/org/apache/sentry/sqoop/binding/SqoopAuthBinding.java
+++ b/sentry-binding/sentry-binding-sqoop/src/main/java/org/apache/sentry/sqoop/binding/SqoopAuthBinding.java
@@ -32,7 +32,7 @@ import org.apache.sentry.core.model.sqoop.SqoopActionConstant;
 import org.apache.sentry.core.model.sqoop.SqoopActionFactory;
 import org.apache.sentry.core.model.sqoop.SqoopPrivilegeModel;
 import org.apache.sentry.policy.common.PolicyEngine;
-import org.apache.sentry.provider.common.AuthorizationComponent;
+import org.apache.sentry.core.common.utils.AuthorizationComponent;
 import org.apache.sentry.provider.common.AuthorizationProvider;
 import org.apache.sentry.provider.common.ProviderBackend;
 import org.apache.sentry.provider.common.ProviderBackendContext;

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-sqoop/src/test/java/org/apache/sentry/policy/sqoop/TestSqoopAuthorizationProviderGeneralCases.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-sqoop/src/test/java/org/apache/sentry/policy/sqoop/TestSqoopAuthorizationProviderGeneralCases.java b/sentry-binding/sentry-binding-sqoop/src/test/java/org/apache/sentry/policy/sqoop/TestSqoopAuthorizationProviderGeneralCases.java
index 7ce8881..a3d96fe 100644
--- a/sentry-binding/sentry-binding-sqoop/src/test/java/org/apache/sentry/policy/sqoop/TestSqoopAuthorizationProviderGeneralCases.java
+++ b/sentry-binding/sentry-binding-sqoop/src/test/java/org/apache/sentry/policy/sqoop/TestSqoopAuthorizationProviderGeneralCases.java
@@ -38,7 +38,7 @@ import org.apache.sentry.core.model.sqoop.Server;
 import org.apache.sentry.core.model.sqoop.SqoopActionConstant;
 import org.apache.sentry.core.model.sqoop.SqoopActionFactory.SqoopAction;
 import org.apache.sentry.core.model.sqoop.SqoopPrivilegeModel;
-import org.apache.sentry.provider.common.GroupMappingService;
+import org.apache.sentry.core.common.service.GroupMappingService;
 import org.apache.sentry.provider.common.ResourceAuthorizationProvider;
 import org.apache.sentry.provider.common.HadoopGroupResourceAuthorizationProvider;
 import org.apache.sentry.provider.file.PolicyFiles;

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-binding/sentry-binding-sqoop/src/test/java/org/apache/sentry/policy/sqoop/TestSqoopAuthorizationProviderSpecialCases.java
----------------------------------------------------------------------
diff --git a/sentry-binding/sentry-binding-sqoop/src/test/java/org/apache/sentry/policy/sqoop/TestSqoopAuthorizationProviderSpecialCases.java b/sentry-binding/sentry-binding-sqoop/src/test/java/org/apache/sentry/policy/sqoop/TestSqoopAuthorizationProviderSpecialCases.java
index 8d69402..4bcf3b1 100644
--- a/sentry-binding/sentry-binding-sqoop/src/test/java/org/apache/sentry/policy/sqoop/TestSqoopAuthorizationProviderSpecialCases.java
+++ b/sentry-binding/sentry-binding-sqoop/src/test/java/org/apache/sentry/policy/sqoop/TestSqoopAuthorizationProviderSpecialCases.java
@@ -38,7 +38,7 @@ import org.apache.sentry.core.model.sqoop.SqoopPrivilegeModel;
 import org.apache.sentry.policy.common.PolicyEngine;
 import org.apache.sentry.provider.common.AuthorizationProvider;
 import org.apache.sentry.provider.file.LocalGroupResourceAuthorizationProvider;
-import org.apache.sentry.provider.file.PolicyFile;
+import org.apache.sentry.core.common.utils.PolicyFile;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/service/GroupMappingService.java
----------------------------------------------------------------------
diff --git a/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/service/GroupMappingService.java b/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/service/GroupMappingService.java
new file mode 100644
index 0000000..6af6ac5
--- /dev/null
+++ b/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/service/GroupMappingService.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sentry.core.common.service;
+
+import java.util.Set;
+
+import javax.annotation.concurrent.ThreadSafe;
+
+/**
+ * Interface so the Groups class is easier to unit test with.
+ * Implementations of this class are expected to be thread safe
+ * after construction.
+ */
+@ThreadSafe
+public interface GroupMappingService {
+
+  /**
+   * @return non-null list of groups for user
+   */
+  Set<String> getGroups(String user);
+}

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/service/HadoopGroupMappingService.java
----------------------------------------------------------------------
diff --git a/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/service/HadoopGroupMappingService.java b/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/service/HadoopGroupMappingService.java
new file mode 100644
index 0000000..2b10ae1
--- /dev/null
+++ b/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/service/HadoopGroupMappingService.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sentry.core.common.service;
+
+import java.io.IOException;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.security.Groups;
+
+import com.google.common.collect.Lists;
+import org.apache.sentry.core.common.exception.SentryGroupNotFoundException;
+
+public class HadoopGroupMappingService implements GroupMappingService {
+
+  private static Configuration hadoopConf;
+  private final Groups groups;
+
+  public HadoopGroupMappingService(Groups groups) {
+    this.groups = groups;
+  }
+
+  public HadoopGroupMappingService(Configuration conf, String resource) {
+    if (hadoopConf == null) {
+      synchronized (HadoopGroupMappingService.class) {
+        if (hadoopConf == null) {
+          // clone the current config and add resource path
+          hadoopConf = new Configuration();
+          hadoopConf.addResource(conf);
+          if (!StringUtils.isEmpty(resource)) {
+            hadoopConf.addResource(resource);
+          }
+        }
+      }
+    }
+    this.groups = Groups.getUserToGroupsMappingService(hadoopConf);
+  }
+
+  @Override
+  public Set<String> getGroups(String user) {
+    List<String> groupList = Lists.newArrayList();
+    try {
+      groupList = groups.getGroups(user);
+    } catch (IOException e) {
+      throw new SentryGroupNotFoundException("Unable to obtain groups for " + user, e);
+    }
+    if (groupList == null || groupList.isEmpty()) {
+      throw new SentryGroupNotFoundException("Unable to obtain groups for " + user);
+    }
+    return new HashSet<String>(groupList);
+  }
+}

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/service/MockGroupMappingServiceProvider.java
----------------------------------------------------------------------
diff --git a/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/service/MockGroupMappingServiceProvider.java b/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/service/MockGroupMappingServiceProvider.java
new file mode 100644
index 0000000..55010de
--- /dev/null
+++ b/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/service/MockGroupMappingServiceProvider.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sentry.core.common.service;
+
+import java.util.Collection;
+import java.util.Set;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.Multimap;
+import com.google.common.collect.Sets;
+
+public class MockGroupMappingServiceProvider implements GroupMappingService {
+  private static final Logger LOGGER = LoggerFactory
+      .getLogger(MockGroupMappingServiceProvider.class);
+  private final Multimap<String, String> userToGroupMap;
+
+  public MockGroupMappingServiceProvider(Multimap<String, String> userToGroupMap) {
+    this.userToGroupMap = userToGroupMap;
+  }
+
+  @Override
+  public Set<String> getGroups(String user) {
+    Collection<String> groups = userToGroupMap.get(user);
+    LOGGER.info("Mapping " + user + " to " + groups);
+    return Sets.newHashSet(groups);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/service/NoGroupMappingService.java
----------------------------------------------------------------------
diff --git a/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/service/NoGroupMappingService.java b/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/service/NoGroupMappingService.java
new file mode 100644
index 0000000..db48788
--- /dev/null
+++ b/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/service/NoGroupMappingService.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sentry.core.common.service;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * GroupMappingService that always returns an empty list of groups
+ */
+public class NoGroupMappingService implements GroupMappingService {
+
+  /**
+   * @return empty list of groups for every user
+   */
+  public Set<String> getGroups(String user) {
+    return new HashSet<String>();
+  }
+}

http://git-wip-us.apache.org/repos/asf/sentry/blob/f1332300/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/utils/AuthorizationComponent.java
----------------------------------------------------------------------
diff --git a/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/utils/AuthorizationComponent.java b/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/utils/AuthorizationComponent.java
new file mode 100644
index 0000000..e3f1f15
--- /dev/null
+++ b/sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/utils/AuthorizationComponent.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sentry.core.common.utils;
+/**
+ * Represent which component being authorized by Sentry
+ * using generic model
+ */
+public class AuthorizationComponent{
+  public static final String Search = "solr";
+  public static final String SQOOP = "sqoop";
+  public static final String KAFKA = "kafka";
+
+  private AuthorizationComponent() {
+   // Make constructor private to avoid instantiation
+  }
+}