summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorCasey Marshall <csm@gnu.org>2005-09-26 01:06:45 +0000
committerCasey Marshall <csm@gnu.org>2005-09-26 01:06:45 +0000
commit2353a7bf3d2322ac26a686a01975d156b55687c9 (patch)
tree1a0673bd99debf35ba11d1cbb5d67c196c1e2232 /java
parent54caed37235891d9dbbd9272bac3223b69dde692 (diff)
downloadclasspath-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.java18
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;
+ }
}