HADOOP-10590. ServiceAuthorizationManager is not threadsafe. (Contributed by Benoy Antony)
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1603356 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
8e8a769e7f
commit
44ac7437ad
@ -589,6 +589,8 @@ Release 2.5.0 - UNRELEASED
|
|||||||
HADOOP-10561. Copy command with preserve option should handle Xattrs.
|
HADOOP-10561. Copy command with preserve option should handle Xattrs.
|
||||||
(Yi Liu via cnauroth)
|
(Yi Liu via cnauroth)
|
||||||
|
|
||||||
|
HADOOP-10590. ServiceAuthorizationManager is not threadsafe. (Benoy Antony via vinayakumarb)
|
||||||
|
|
||||||
Release 2.4.1 - 2014-06-23
|
Release 2.4.1 - 2014-06-23
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
@ -45,7 +45,7 @@ import com.google.common.annotations.VisibleForTesting;
|
|||||||
public class ServiceAuthorizationManager {
|
public class ServiceAuthorizationManager {
|
||||||
private static final String HADOOP_POLICY_FILE = "hadoop-policy.xml";
|
private static final String HADOOP_POLICY_FILE = "hadoop-policy.xml";
|
||||||
|
|
||||||
private Map<Class<?>, AccessControlList> protocolToAcl =
|
private volatile Map<Class<?>, AccessControlList> protocolToAcl =
|
||||||
new IdentityHashMap<Class<?>, AccessControlList>();
|
new IdentityHashMap<Class<?>, AccessControlList>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -114,7 +114,7 @@ public class ServiceAuthorizationManager {
|
|||||||
AUDITLOG.info(AUTHZ_SUCCESSFUL_FOR + user + " for protocol="+protocol);
|
AUDITLOG.info(AUTHZ_SUCCESSFUL_FOR + user + " for protocol="+protocol);
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized void refresh(Configuration conf,
|
public void refresh(Configuration conf,
|
||||||
PolicyProvider provider) {
|
PolicyProvider provider) {
|
||||||
// Get the system property 'hadoop.policy.file'
|
// Get the system property 'hadoop.policy.file'
|
||||||
String policyFile =
|
String policyFile =
|
||||||
@ -127,7 +127,7 @@ public class ServiceAuthorizationManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Private
|
@Private
|
||||||
public synchronized void refreshWithLoadedConfiguration(Configuration conf,
|
public void refreshWithLoadedConfiguration(Configuration conf,
|
||||||
PolicyProvider provider) {
|
PolicyProvider provider) {
|
||||||
final Map<Class<?>, AccessControlList> newAcls =
|
final Map<Class<?>, AccessControlList> newAcls =
|
||||||
new IdentityHashMap<Class<?>, AccessControlList>();
|
new IdentityHashMap<Class<?>, AccessControlList>();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user