Skip to content

Commit f4aedc3

Browse files
ReiddddddthangTang
authored andcommitted
HBASE-24121 [Authorization] ServiceAuthorizationManager isn't dynamically updatable. And it should be (apache#1439)
Signed-off-by: Bharath Vissapragada <[email protected]> Signed-off-by: Michael Stack <[email protected]>
1 parent 2c661a7 commit f4aedc3

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
import org.apache.hadoop.hbase.regionserver.RSRpcServices;
4949
import org.apache.hadoop.hbase.regionserver.slowlog.RpcLogDetails;
5050
import org.apache.hadoop.hbase.regionserver.slowlog.SlowLogRecorder;
51+
import org.apache.hadoop.hbase.security.HBasePolicyProvider;
5152
import org.apache.hadoop.hbase.security.SaslUtil;
5253
import org.apache.hadoop.hbase.security.SaslUtil.QualityOfProtection;
5354
import org.apache.hadoop.hbase.security.User;
@@ -58,6 +59,7 @@
5859
import org.apache.hadoop.security.UserGroupInformation;
5960
import org.apache.hadoop.security.authorize.AuthorizationException;
6061
import org.apache.hadoop.security.authorize.PolicyProvider;
62+
import org.apache.hadoop.security.authorize.ProxyUsers;
6163
import org.apache.hadoop.security.authorize.ServiceAuthorizationManager;
6264
import org.apache.hadoop.security.token.SecretManager;
6365
import org.apache.hadoop.security.token.TokenIdentifier;
@@ -313,6 +315,14 @@ public void onConfigurationChange(Configuration newConf) {
313315
if (scheduler instanceof ConfigurationObserver) {
314316
((ConfigurationObserver) scheduler).onConfigurationChange(newConf);
315317
}
318+
// Make sure authManager will read hbase-policy file
319+
System.setProperty("hadoop.policy.file", "hbase-policy.xml");
320+
synchronized (authManager) {
321+
authManager.refresh(newConf, new HBasePolicyProvider());
322+
}
323+
LOG.info("Refreshed hbase-policy.xml successfully");
324+
ProxyUsers.refreshSuperUserGroupsConfiguration(newConf);
325+
LOG.info("Refreshed super and proxy users successfully");
316326
}
317327

318328
protected void initReconfigurable(Configuration confToLoad) {

0 commit comments

Comments
 (0)