Skip to content

Commit 5d3f5c7

Browse files
committed
HADOOP-5740 writable permissions on a codebase
git-svn-id: https://svn.apache.org/repos/asf/hadoop/core/branches/HADOOP-3628@769439 13f79535-47bb-0310-9956-ffa450edef68
1 parent 1d109f0 commit 5d3f5c7

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

src/core/org/apache/hadoop/security/authorize/ConfiguredPolicy.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import java.security.Policy;
2323
import java.security.Principal;
2424
import java.security.ProtectionDomain;
25+
import java.security.CodeSource;
26+
import java.security.Permissions;
2527
import java.util.HashMap;
2628
import java.util.HashSet;
2729
import java.util.Map;
@@ -77,7 +79,20 @@ public boolean implies(ProtectionDomain domain, Permission permission) {
7779
return super.implies(domain, permission);
7880
}
7981

82+
/**
83+
* {@inheritDoc}
84+
* @return a writable permission collection
85+
*/
8086
@Override
87+
public PermissionCollection getPermissions(CodeSource codesource) {
88+
return new Permissions();
89+
}
90+
91+
/**
92+
* {@inheritDoc}
93+
* @return a writable permission collection
94+
*/
95+
@Override
8196
public PermissionCollection getPermissions(ProtectionDomain domain) {
8297
PermissionCollection permissionCollection = super.getPermissions(domain);
8398
for (Principal principal : domain.getPrincipals()) {
@@ -153,4 +168,14 @@ private void addPermission(Map<Principal, Set<Permission>> permissions,
153168
LOG.debug("Policy - Adding " + permission + " to " + principal);
154169
}
155170
}
171+
172+
/**
173+
* For debugging: identify ourselves and the policyproviders
174+
*
175+
* @return a string representation of the object.
176+
*/
177+
@Override
178+
public String toString() {
179+
return "Hadoop ConfiguredPolicy " + super.toString() + " Policy provider "+ policyProvider;
180+
}
156181
}

src/test/org/apache/hadoop/security/authorize/TestConfiguredPolicy.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
package org.apache.hadoop.security.authorize;
1919

2020
import java.security.Permission;
21+
import java.security.CodeSource;
22+
import java.util.PropertyPermission;
2123

2224
import javax.security.auth.Subject;
2325

@@ -79,4 +81,11 @@ public void testConfiguredPolicy() throws Exception {
7981
}
8082
assertTrue(failed);
8183
}
84+
85+
public void testPolicySupportsAddCodebase() throws Throwable {
86+
Configuration conf = new Configuration();
87+
ConfiguredPolicy policy = new ConfiguredPolicy(conf, new TestPolicyProvider());
88+
policy.getPermissions((CodeSource) null).add(new PropertyPermission("org.apache.hadoop", "read"));
89+
}
90+
8291
}

0 commit comments

Comments
 (0)