diff options
author | Casey Marshall <csm@gnu.org> | 2005-09-26 01:06:45 +0000 |
---|---|---|
committer | Casey Marshall <csm@gnu.org> | 2005-09-26 01:06:45 +0000 |
commit | 2353a7bf3d2322ac26a686a01975d156b55687c9 (patch) | |
tree | 1a0673bd99debf35ba11d1cbb5d67c196c1e2232 /java | |
parent | 54caed37235891d9dbbd9272bac3223b69dde692 (diff) | |
download | classpath-2353a7bf3d2322ac26a686a01975d156b55687c9.tar.gz |
2005-09-25 Casey Marshall <csm@gnu.org>
Fixes PR classpath/23916. Fix suggested by Santiago Gala
<sgala@apache.org>.
* java/security/AccessControlContext.java
(<init>): update javadoc; check SecurityPermission
"createAccessControlContext" if a security manager is set.
(getProtectionDomains): new method.
* vm/reference/java/security/VMAccessController.java
(DEBUG): set to 'gnu.classpath.Configuration.DEBUG.'
(pushContext, popContext): add debug statement.
(getContext): debug output changes; include the DomainCombiner
specified in the AccessControlContext, if any.
Diffstat (limited to 'java')
-rw-r--r-- | java/security/AccessControlContext.java | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/java/security/AccessControlContext.java b/java/security/AccessControlContext.java index 9a6ad2081..270548752 100644 --- a/java/security/AccessControlContext.java +++ b/java/security/AccessControlContext.java @@ -77,14 +77,23 @@ public final class AccessControlContext /** * Construct a new AccessControlContext with the specified - * ProtectionDomains and DomainCombiner + * {@link ProtectionDomain}s and {@link DomainCombiner}. * + * <p>Code calling this constructor must have a {@link + * SecurityPermission} of <i>createAccessControlContext</i>.</p> + * + * @throws SecurityException If the caller does not have permission + * to create an access control context. * @since 1.3 */ public AccessControlContext(AccessControlContext acc, DomainCombiner combiner) { - // XXX check permission to call this. + SecurityManager sm = System.getSecurityManager (); + if (sm != null) + { + sm.checkPermission (new SecurityPermission ("createAccessControlContext")); + } AccessControlContext acc2 = AccessController.getContext(); protectionDomains = combiner.combine (acc2.protectionDomains, acc.protectionDomains); @@ -173,4 +182,9 @@ public final class AccessControlContext return h; } + + ProtectionDomain[] getProtectionDomains () + { + return protectionDomains; + } } |