1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.security;
19
20 import org.apache.hadoop.conf.Configuration;
21 import org.apache.hadoop.hbase.client.AdminProtocol;
22 import org.apache.hadoop.hbase.client.ClientProtocol;
23 import org.apache.hadoop.hbase.MasterMonitorProtocol;
24 import org.apache.hadoop.hbase.MasterAdminProtocol;
25 import org.apache.hadoop.hbase.RegionServerStatusProtocol;
26 import org.apache.hadoop.security.authorize.PolicyProvider;
27 import org.apache.hadoop.security.authorize.Service;
28 import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;
29
30
31
32
33
34 public class HBasePolicyProvider extends PolicyProvider {
35 protected final static Service[] services = {
36 new Service("security.client.protocol.acl", ClientProtocol.class),
37 new Service("security.client.protocol.acl", AdminProtocol.class),
38 new Service("security.admin.protocol.acl", MasterMonitorProtocol.class),
39 new Service("security.admin.protocol.acl", MasterAdminProtocol.class),
40 new Service("security.masterregion.protocol.acl", RegionServerStatusProtocol.class)
41 };
42
43 @Override
44 public Service[] getServices() {
45 return services;
46 }
47
48 public static void init(Configuration conf,
49 ServiceAuthorizationManager authManager) {
50
51 System.setProperty("hadoop.policy.file", "hbase-policy.xml");
52 if (conf.getBoolean(
53 ServiceAuthorizationManager.SERVICE_AUTHORIZATION_CONFIG, false)) {
54 authManager.refresh(conf, new HBasePolicyProvider());
55 }
56 }
57 }