blob: f9c464a8be6af8ee9a62b403d700b0b3b306b35b [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0) on Sun Aug 28 20:43:00 EST 2016 -->
<title>AggregatePolicyProvider (Apache River v3.0.0 API Documentation (internals))</title>
<meta name="date" content="2016-08-28">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AggregatePolicyProvider (Apache River v3.0.0 API Documentation (internals))";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":9,"i15":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AggregatePolicyProvider.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/river/start/ActivateWrapper.ExportClassLoader.html" title="class in org.apache.river.start"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/river/start/AggregatePolicyProvider.AggregateSecurityContext.html" title="class in org.apache.river.start"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/river/start/AggregatePolicyProvider.html" target="_top">Frames</a></li>
<li><a href="AggregatePolicyProvider.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.river.start</div>
<h2 title="Class AggregatePolicyProvider" class="title">Class AggregatePolicyProvider</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">java.security.Policy</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../org/apache/river/api/security/AbstractPolicy.html" title="class in org.apache.river.api.security">org.apache.river.api.security.AbstractPolicy</a></li>
<li>
<ul class="inheritance">
<li>org.apache.river.start.AggregatePolicyProvider</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy">DynamicPolicy</a>, <a href="../../../../net/jini/security/policy/SecurityContextSource.html" title="interface in net.jini.security.policy">SecurityContextSource</a>, <a href="../../../../org/apache/river/api/security/ScalableNestedPolicy.html" title="interface in org.apache.river.api.security">ScalableNestedPolicy</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">AggregatePolicyProvider</span>
extends <a href="../../../../org/apache/river/api/security/AbstractPolicy.html" title="class in org.apache.river.api.security">AbstractPolicy</a>
implements <a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy">DynamicPolicy</a>, <a href="../../../../net/jini/security/policy/SecurityContextSource.html" title="interface in net.jini.security.policy">SecurityContextSource</a>, <a href="../../../../org/apache/river/api/security/ScalableNestedPolicy.html" title="interface in org.apache.river.api.security">ScalableNestedPolicy</a></pre>
<div class="block">Security policy provider which supports associating security sub-policies
with context class loaders. Permission queries and grants (if supported),
as well as <code>implies</code> and <code>refresh</code> operations are
delegated to the currently active sub-policy.
<p>
The currently active sub-policy is determined as follows: if the current
thread does not override the <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.html?is-external=true#getContextClassLoader--" title="class or interface in java.lang"><code>getContextClassLoader</code></a> method, then that method is called to obtain the
context class loader. If the context class loader is associated with a
sub-policy (via a previous call to <code>setPolicy</code>), then that
sub-policy is the currently active sub-policy. If no such association
exists, then the same check is performed on each non-<code>null</code>
parent of the context class loader, proceeding up the chain of class loader
delegation, until a sub-policy association is found, in which case the
associated sub-policy is the currently active sub-policy. If no sub-policy
association is found for the context class loader or any of its parents,
then a fallback sub-policy, the main policy, is the currently active
sub-policy. Also, if the current thread overrides the
<code>getContextClassLoader</code> method, then
<code>getContextClassLoader</code> is not called and the main policy is the
currently active sub-policy.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Sun Microsystems, Inc.</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.AggregateSecurityContext.html" title="class in org.apache.river.start">AggregatePolicyProvider.AggregateSecurityContext</a></span></code>
<div class="block">Security context that produces privileged action wrappers which restore
the context class loader before delegating to the sub-policy context's
wrapped action.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.DefaultSecurityContext.html" title="class in org.apache.river.start">AggregatePolicyProvider.DefaultSecurityContext</a></span></code>
<div class="block">Stand-in "default" security context for sub-policies that do not
implement SecurityContextSource.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.java.security.Policy">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;java.security.<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.Parameters.html?is-external=true" title="class or interface in java.security">Policy.Parameters</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#defaultMainPolicyClass">defaultMainPolicyClass</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.locks.Lock.html?is-external=true" title="class or interface in java.util">java.util.concurrent.locks.Lock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#lock">lock</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#mainPolicy">mainPolicy</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#mainPolicyClassProperty">mainPolicyClassProperty</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/security/ProtectionDomain.html?is-external=true" title="class or interface in java.security">ProtectionDomain</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#myDomain">myDomain</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.locks.Lock.html?is-external=true" title="class or interface in java.util">java.util.concurrent.locks.Lock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#readLock">readLock</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.locks.ReadWriteLock.html?is-external=true" title="class or interface in java.util">java.util.concurrent.locks.ReadWriteLock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#rwl">rwl</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#subPolicies">subPolicies</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.ConcurrentMap.html?is-external=true" title="class or interface in java.util">java.util.concurrent.ConcurrentMap</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#subPolicyChildClassLoaderCache">subPolicyChildClassLoaderCache</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.ConcurrentMap.html?is-external=true" title="class or interface in java.util">java.util.concurrent.ConcurrentMap</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&gt;,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#trustGetCCL">trustGetCCL</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.river.api.security.AbstractPolicy">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.river.api.security.<a href="../../../../org/apache/river/api/security/AbstractPolicy.html" title="class in org.apache.river.api.security">AbstractPolicy</a></h3>
<code><a href="../../../../org/apache/river/api/security/AbstractPolicy.html#ALL_PERMISSION">ALL_PERMISSION</a>, <a href="../../../../org/apache/river/api/security/AbstractPolicy.html#comparator">comparator</a>, <a href="../../../../org/apache/river/api/security/AbstractPolicy.html#umbrella">umbrella</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.java.security.Policy">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;java.security.<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#UNSUPPORTED_EMPTY_COLLECTION" title="class or interface in java.security">UNSUPPORTED_EMPTY_COLLECTION</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#AggregatePolicyProvider--">AggregatePolicyProvider</a></span>()</code>
<div class="block">Creates a new <code>AggregatePolicyProvider</code> instance, containing
a main policy created as follows: if the
<code>org.apache.river.start.AggregatePolicyProvider.mainPolicyClass</code>
security property is set, then its value is interpreted as the class
name of the main policy provider; otherwise, a default class name of
<code>"net.jini.security.policy.DynamicPolicyProvider"</code>
is used.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#AggregatePolicyProvider-java.security.Policy-">AggregatePolicyProvider</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&nbsp;mainPolicy)</code>
<div class="block">Creates a new <code>AggregatePolicyProvider</code> instance with the
given main policy, which must be non-<code>null</code>.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#ensureDependenciesResolved--">ensureDependenciesResolved</a></span>()</code>
<div class="block">Ensures that any classes depended on by this policy provider are
resolved.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../net/jini/security/SecurityContext.html" title="interface in net.jini.security">SecurityContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#getContext--">getContext</a></span>()</code>
<div class="block">Returns a snapshot of the current security context, which can be used to
restore the context at a later time.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>(package private) static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#getContextClassLoader--">getContextClassLoader</a></span>()</code>
<div class="block">Returns current context class loader.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#getCurrentSubPolicy--">getCurrentSubPolicy</a></span>()</code>
<div class="block">Returns currently active sub-policy.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Permission.html?is-external=true" title="class or interface in java.security">Permission</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#getGrants-java.lang.Class-java.security.Principal:A-">getGrants</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;cl,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Principal.html?is-external=true" title="class or interface in java.security">Principal</a>[]&nbsp;principals)</code>
<div class="block">If the currently active sub-policy supports dynamic permission grants,
delegates to the corresponding <code>getGrants</code> method of the
currently active sub-policy to return a new array containing the set of
permissions dynamically granted to protection domains which are
associated with the class loader of the given class and possess at least
the given set of principals.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/river/api/security/PermissionGrant.html" title="class in org.apache.river.api.security">PermissionGrant</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#getPermissionGrants-java.security.ProtectionDomain-">getPermissionGrants</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/ProtectionDomain.html?is-external=true" title="class or interface in java.security">ProtectionDomain</a>&nbsp;domain)</code>
<div class="block">Returns a new List containing immutable PermissionGrant's, the
List returned is not synchronised and must not be shared with policy
internal state.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PermissionCollection.html?is-external=true" title="class or interface in java.security">PermissionCollection</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#getPermissions-java.security.CodeSource-">getPermissions</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/CodeSource.html?is-external=true" title="class or interface in java.security">CodeSource</a>&nbsp;source)</code>
<div class="block">Delegates to the corresponding <code>getPermissions</code> method of the
currently active sub-policy to return the set of permissions allowed for
code from the specified code source, as a newly-created mutable
<code>PermissionCollection</code> which supports heterogeneous
permission types.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/PermissionCollection.html?is-external=true" title="class or interface in java.security">PermissionCollection</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#getPermissions-java.security.ProtectionDomain-">getPermissions</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/ProtectionDomain.html?is-external=true" title="class or interface in java.security">ProtectionDomain</a>&nbsp;domain)</code>
<div class="block">If the given protection domain is the protection domain of this class,
then a newly-created <code>PermissionCollection</code> containing <a href="http://docs.oracle.com/javase/6/docs/api/java/security/AllPermission.html?is-external=true" title="class or interface in java.security"><code>AllPermission</code></a> is returned.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#grant-java.lang.Class-java.security.Principal:A-java.security.Permission:A-">grant</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;cl,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Principal.html?is-external=true" title="class or interface in java.security">Principal</a>[]&nbsp;principals,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Permission.html?is-external=true" title="class or interface in java.security">Permission</a>[]&nbsp;permissions)</code>
<div class="block">If the currently active sub-policy supports dynamic permission grants,
delegates to the corresponding <code>grant</code> method of the
currently active sub-policy to grant the specified permissions to all
protection domains (including ones not yet created) which are associated
with the class loader of the given class and possess at least the given
set of principals.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#grantSupported--">grantSupported</a></span>()</code>
<div class="block">Returns <code>true</code> if the currently active sub-policy supports
dynamic grants; this is determined by delegating to the
<code>grantSupported</code> method of the currently active sub-policy if
it implements the <a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy"><code>DynamicPolicy</code></a> interface.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#implies-java.security.ProtectionDomain-java.security.Permission-">implies</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/ProtectionDomain.html?is-external=true" title="class or interface in java.security">ProtectionDomain</a>&nbsp;domain,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Permission.html?is-external=true" title="class or interface in java.security">Permission</a>&nbsp;permission)</code>
<div class="block">If the given protection domain is the protection domain of this class,
then <code>true</code> is returned.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#lookupSubPolicy-java.lang.ClassLoader-">lookupSubPolicy</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;ldr)</code>
<div class="block">Returns sub-policy associated with the given class loader.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#refresh--">refresh</a></span>()</code>
<div class="block">Refreshes the currently active sub-policy by delegating to its
<code>refresh</code> method.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#setPolicy-java.lang.ClassLoader-java.security.Policy-">setPolicy</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;loader,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&nbsp;subPolicy)</code>
<div class="block">Changes sub-policy association with given class loader.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>private static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#trustGetContextClassLoader-java.lang.Thread-">trustGetContextClassLoader</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&nbsp;t)</code>
<div class="block">Returns true if the given thread does not override
Thread.getContextClassLoader(), false otherwise.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/start/AggregatePolicyProvider.html#trustGetContextClassLoader0-java.lang.Class-">trustGetContextClassLoader0</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;cl)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.river.api.security.AbstractPolicy">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.river.api.security.<a href="../../../../org/apache/river/api/security/AbstractPolicy.html" title="class in org.apache.river.api.security">AbstractPolicy</a></h3>
<code><a href="../../../../org/apache/river/api/security/AbstractPolicy.html#checkCallerHasGrants-java.util.Collection-">checkCallerHasGrants</a>, <a href="../../../../org/apache/river/api/security/AbstractPolicy.html#checkNullElements-java.lang.Object:A-">checkNullElements</a>, <a href="../../../../org/apache/river/api/security/AbstractPolicy.html#convert-java.util.NavigableSet-int-float-int-int-">convert</a>, <a href="../../../../org/apache/river/api/security/AbstractPolicy.html#expandUmbrella-java.security.PermissionCollection-">expandUmbrella</a>, <a href="../../../../org/apache/river/api/security/AbstractPolicy.html#extractGrantFromPolicy-java.security.Policy-java.security.ProtectionDomain-">extractGrantFromPolicy</a>, <a href="../../../../org/apache/river/api/security/AbstractPolicy.html#processGrants-java.util.Collection-java.lang.Class-boolean-java.util.NavigableSet-">processGrants</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.security.Policy">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.security.<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getInstance-java.lang.String-java.security.Policy.Parameters-" title="class or interface in java.security">getInstance</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getInstance-java.lang.String-java.security.Policy.Parameters-java.security.Provider-" title="class or interface in java.security">getInstance</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getInstance-java.lang.String-java.security.Policy.Parameters-java.lang.String-" title="class or interface in java.security">getInstance</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getParameters--" title="class or interface in java.security">getParameters</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getPolicy--" title="class or interface in java.security">getPolicy</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getProvider--" title="class or interface in java.security">getProvider</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getType--" title="class or interface in java.security">getType</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#setPolicy-java.security.Policy-" title="class or interface in java.security">setPolicy</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="mainPolicyClassProperty">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mainPolicyClassProperty</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> mainPolicyClassProperty</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.river.start.AggregatePolicyProvider.mainPolicyClassProperty">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="defaultMainPolicyClass">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>defaultMainPolicyClass</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> defaultMainPolicyClass</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.river.start.AggregatePolicyProvider.defaultMainPolicyClass">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="trustGetCCL">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trustGetCCL</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.ConcurrentMap.html?is-external=true" title="class or interface in java.util">java.util.concurrent.ConcurrentMap</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&gt;,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt; trustGetCCL</pre>
</li>
</ul>
<a name="myDomain">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>myDomain</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/ProtectionDomain.html?is-external=true" title="class or interface in java.security">ProtectionDomain</a> myDomain</pre>
</li>
</ul>
<a name="subPolicies">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subPolicies</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&gt; subPolicies</pre>
</li>
</ul>
<a name="subPolicyChildClassLoaderCache">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subPolicyChildClassLoaderCache</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.ConcurrentMap.html?is-external=true" title="class or interface in java.util">java.util.concurrent.ConcurrentMap</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&gt; subPolicyChildClassLoaderCache</pre>
</li>
</ul>
<a name="rwl">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rwl</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.locks.ReadWriteLock.html?is-external=true" title="class or interface in java.util">java.util.concurrent.locks.ReadWriteLock</a> rwl</pre>
</li>
</ul>
<a name="lock">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lock</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.locks.Lock.html?is-external=true" title="class or interface in java.util">java.util.concurrent.locks.Lock</a> lock</pre>
</li>
</ul>
<a name="readLock">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readLock</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.locks.Lock.html?is-external=true" title="class or interface in java.util">java.util.concurrent.locks.Lock</a> readLock</pre>
</li>
</ul>
<a name="mainPolicy">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>mainPolicy</h4>
<pre>private volatile&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a> mainPolicy</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AggregatePolicyProvider--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AggregatePolicyProvider</h4>
<pre>public&nbsp;AggregatePolicyProvider()
throws <a href="../../../../net/jini/security/policy/PolicyInitializationException.html" title="class in net.jini.security.policy">PolicyInitializationException</a></pre>
<div class="block">Creates a new <code>AggregatePolicyProvider</code> instance, containing
a main policy created as follows: if the
<code>org.apache.river.start.AggregatePolicyProvider.mainPolicyClass</code>
security property is set, then its value is interpreted as the class
name of the main policy provider; otherwise, a default class name of
<code>"net.jini.security.policy.DynamicPolicyProvider"</code>
is used. The main policy is then instantiated using the no-arg public
constructor of the named class. If the main policy class is not found,
is not instantiable via a public no-arg constructor, or if invocation of
its constructor fails, then a <code>PolicyInitializationException</code>
is thrown.
<p>
Note that this constructor requires the appropriate
<code>"getProperty"</code> <a href="http://docs.oracle.com/javase/6/docs/api/java/security/SecurityPermission.html?is-external=true" title="class or interface in java.security"><code>SecurityPermission</code></a> to read the
<code>org.apache.river.start.AggregatePolicyProvider.mainPolicyClass</code>
security property, and may require <code>"accessClassInPackage.*"</code>
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/RuntimePermission.html?is-external=true" title="class or interface in java.lang"><code>RuntimePermission</code></a>s, depending on the package of the main policy
class.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../net/jini/security/policy/PolicyInitializationException.html" title="class in net.jini.security.policy">PolicyInitializationException</a></code> - if unable to construct the main
policy</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang">SecurityException</a></code> - if there is a security manager and the
calling context does not have <code>SecurityPermission</code>
for reading the
<code>org.apache.river.start.AggregatePolicyProvider.mainPolicy</code>
security property, or if the calling context does not have
adequate permissions to access the main policy class</dd>
</dl>
</li>
</ul>
<a name="AggregatePolicyProvider-java.security.Policy-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AggregatePolicyProvider</h4>
<pre>public&nbsp;AggregatePolicyProvider(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&nbsp;mainPolicy)</pre>
<div class="block">Creates a new <code>AggregatePolicyProvider</code> instance with the
given main policy, which must be non-<code>null</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>mainPolicy</code> - main policy</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if main policy is <code>null</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getPermissions-java.security.CodeSource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPermissions</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PermissionCollection.html?is-external=true" title="class or interface in java.security">PermissionCollection</a>&nbsp;getPermissions(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/CodeSource.html?is-external=true" title="class or interface in java.security">CodeSource</a>&nbsp;source)</pre>
<div class="block">Delegates to the corresponding <code>getPermissions</code> method of the
currently active sub-policy to return the set of permissions allowed for
code from the specified code source, as a newly-created mutable
<code>PermissionCollection</code> which supports heterogeneous
permission types.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getPermissions-java.security.CodeSource-" title="class or interface in java.security">getPermissions</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>source</code> - code source for which to look up permissions</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>set of permissions allowed for the given code source</dd>
</dl>
</li>
</ul>
<a name="getPermissions-java.security.ProtectionDomain-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPermissions</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/PermissionCollection.html?is-external=true" title="class or interface in java.security">PermissionCollection</a>&nbsp;getPermissions(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/ProtectionDomain.html?is-external=true" title="class or interface in java.security">ProtectionDomain</a>&nbsp;domain)</pre>
<div class="block">If the given protection domain is the protection domain of this class,
then a newly-created <code>PermissionCollection</code> containing <a href="http://docs.oracle.com/javase/6/docs/api/java/security/AllPermission.html?is-external=true" title="class or interface in java.security"><code>AllPermission</code></a> is returned. Otherwise, delegates to the corresponding
<code>getPermissions</code> method of the currently active sub-policy to
return the set of permissions allowed for code in the specified
protection domain, as a newly-created mutable
<code>PermissionCollection</code> which supports heterogeneous
permission types.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#getPermissions-java.security.ProtectionDomain-" title="class or interface in java.security">getPermissions</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>domain</code> - protection domain for which to look up permissions</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>set of permissions allowed for given protection domain</dd>
</dl>
</li>
</ul>
<a name="implies-java.security.ProtectionDomain-java.security.Permission-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>implies</h4>
<pre>public&nbsp;boolean&nbsp;implies(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/ProtectionDomain.html?is-external=true" title="class or interface in java.security">ProtectionDomain</a>&nbsp;domain,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Permission.html?is-external=true" title="class or interface in java.security">Permission</a>&nbsp;permission)</pre>
<div class="block">If the given protection domain is the protection domain of this class,
then <code>true</code> is returned. Otherwise, delegates to the
<code>implies</code> method of the currently active sub-policy to
determine if the given permission is implied by the permissions for the
specified protection domain.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#implies-java.security.ProtectionDomain-java.security.Permission-" title="class or interface in java.security">implies</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>domain</code> - protection domain in which to check implication</dd>
<dd><code>permission</code> - permission to test implication of</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if permission is implied by permissions of
given protection domain, <code>false</code> otherwise</dd>
</dl>
</li>
</ul>
<a name="refresh--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>refresh</h4>
<pre>public&nbsp;void&nbsp;refresh()</pre>
<div class="block">Refreshes the currently active sub-policy by delegating to its
<code>refresh</code> method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true#refresh--" title="class or interface in java.security">refresh</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a></code></dd>
</dl>
</li>
</ul>
<a name="getPermissionGrants-java.security.ProtectionDomain-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPermissionGrants</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/river/api/security/PermissionGrant.html" title="class in org.apache.river.api.security">PermissionGrant</a>&gt;&nbsp;getPermissionGrants(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/ProtectionDomain.html?is-external=true" title="class or interface in java.security">ProtectionDomain</a>&nbsp;domain)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/river/api/security/ScalableNestedPolicy.html#getPermissionGrants-java.security.ProtectionDomain-">ScalableNestedPolicy</a></code></span></div>
<div class="block">Returns a new List containing immutable PermissionGrant's, the
List returned is not synchronised and must not be shared with policy
internal state.
Only those PermissionGrant's that imply the domain will be returned.
If any PermissionGrant's are privileged (contain AllPermission), then
only that one PermissionGrant should be added to the collection. If
a List has a size of 1, and contains only a privileged PermissionGrant,
it enables the calling policy to determine the privileged state quickly.
If a policy has a privileged PermissionGrant to add to a Collection,
then the Collection must be cleared before the privileged PermissionGrant
is added, so the Collection only contains the privileged PermissionGrant.
The top level policy gathers all PermissionGrant's,
retrieves all relevant permissions, then sorts them using a
PermissionComparator, so Permission objects are added to a
PermissionCollection in the most efficient order.
If a nested base policy doesn't support ScalableNestedPolicy, then the
implementer should create a PermissionGrant for the domain, containing
the Permission objects returned from the policy.
The first nested base policy (usually a file policy provider) is
responsible for merging any static Permission objects from the
ProtectionDomain.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../org/apache/river/api/security/ScalableNestedPolicy.html#getPermissionGrants-java.security.ProtectionDomain-">getPermissionGrants</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/river/api/security/ScalableNestedPolicy.html" title="interface in org.apache.river.api.security">ScalableNestedPolicy</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Collection<PermissionGrant></dd>
</dl>
</li>
</ul>
<a name="setPolicy-java.lang.ClassLoader-java.security.Policy-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPolicy</h4>
<pre>public&nbsp;void&nbsp;setPolicy(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;loader,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&nbsp;subPolicy)</pre>
<div class="block">Changes sub-policy association with given class loader. If
<code>subPolicy</code> is non-<code>null</code>, then it is used as a
new sub-policy to associate with the given class loader, overriding any
previous sub-policy associated with the loader. If
<code>subPolicy</code> is <code>null</code>, then any previous
association between a sub-policy and the given class loader is removed.
If loader is <code>null</code>, then <code>subPolicy</code> is used as
the new main policy, and must be non-<code>null</code>. If there is a
security manager, its <code>checkPermission</code> method is called with
the <code>"setPolicy"</code> <a href="http://docs.oracle.com/javase/6/docs/api/java/security/SecurityPermission.html?is-external=true" title="class or interface in java.security"><code>SecurityPermission</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>loader</code> - class loader with which to associate sub-policy, or
<code>null</code> if setting main policy</dd>
<dd><code>subPolicy</code> - sub-policy to associate with given class loader, or
<code>null</code> if removing sub-policy association</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if both <code>loader</code> and
<code>subPolicy</code> are <code>null</code></dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang">SecurityException</a></code> - if there is a security manager and the
calling context does not have the <code>"setPolicy"
SecurityPermission</code></dd>
</dl>
</li>
</ul>
<a name="grantSupported--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>grantSupported</h4>
<pre>public&nbsp;boolean&nbsp;grantSupported()</pre>
<div class="block">Returns <code>true</code> if the currently active sub-policy supports
dynamic grants; this is determined by delegating to the
<code>grantSupported</code> method of the currently active sub-policy if
it implements the <a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy"><code>DynamicPolicy</code></a> interface. If the currently
active sub-policy does not implement <code>DynamicPolicy</code>, then
<code>false</code> is returned.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../net/jini/security/policy/DynamicPolicy.html#grantSupported--">grantSupported</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy">DynamicPolicy</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the currently active sub-policy supports
dynamic grants, or <code>false</code> otherwise</dd>
</dl>
</li>
</ul>
<a name="grant-java.lang.Class-java.security.Principal:A-java.security.Permission:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>grant</h4>
<pre>public&nbsp;void&nbsp;grant(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;cl,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Principal.html?is-external=true" title="class or interface in java.security">Principal</a>[]&nbsp;principals,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Permission.html?is-external=true" title="class or interface in java.security">Permission</a>[]&nbsp;permissions)</pre>
<div class="block">If the currently active sub-policy supports dynamic permission grants,
delegates to the corresponding <code>grant</code> method of the
currently active sub-policy to grant the specified permissions to all
protection domains (including ones not yet created) which are associated
with the class loader of the given class and possess at least the given
set of principals.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../net/jini/security/policy/DynamicPolicy.html#grant-java.lang.Class-java.security.Principal:A-java.security.Permission:A-">grant</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy">DynamicPolicy</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cl</code> - class to grant permissions to the class loader of, or
<code>null</code> if granting across all class loaders</dd>
<dd><code>principals</code> - if non-<code>null</code>, minimum set of principals
to which grants apply</dd>
<dd><code>permissions</code> - if non-<code>null</code>, permissions to grant</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if policy does not support
dynamic grants, or if <code>cl</code> is non-<code>null</code>
and belongs to a protection domain with a <code>null</code>
class loader other than the system domain</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/SecurityException.html?is-external=true" title="class or interface in java.lang">SecurityException</a></code> - if a security manager is installed and the
calling context does not have sufficient permissions to grant
the given permissions</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if any element of the principals or
permissions arrays is <code>null</code></dd>
</dl>
</li>
</ul>
<a name="getGrants-java.lang.Class-java.security.Principal:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGrants</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Permission.html?is-external=true" title="class or interface in java.security">Permission</a>[]&nbsp;getGrants(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;cl,
<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Principal.html?is-external=true" title="class or interface in java.security">Principal</a>[]&nbsp;principals)</pre>
<div class="block">If the currently active sub-policy supports dynamic permission grants,
delegates to the corresponding <code>getGrants</code> method of the
currently active sub-policy to return a new array containing the set of
permissions dynamically granted to protection domains which are
associated with the class loader of the given class and possess at least
the given set of principals.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../net/jini/security/policy/DynamicPolicy.html#getGrants-java.lang.Class-java.security.Principal:A-">getGrants</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy">DynamicPolicy</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cl</code> - class to query the permissions dynamically granted to the
class loader of, or <code>null</code> if querying permissions
granted across all class loaders</dd>
<dd><code>principals</code> - if non-<code>null</code>, principals to query
dynamic grants for</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>new array containing the permissions dynamically granted to the
indicated class loader (if any) and principals</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if policy does not support
dynamic grants, or if <code>cl</code> is non-<code>null</code>
and belongs to a protection domain with a <code>null</code>
class loader other than the system domain</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if any element of the principals array is
<code>null</code></dd>
</dl>
</li>
</ul>
<a name="getContext--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContext</h4>
<pre>public&nbsp;<a href="../../../../net/jini/security/SecurityContext.html" title="interface in net.jini.security">SecurityContext</a>&nbsp;getContext()</pre>
<div class="block">Returns a snapshot of the current security context, which can be used to
restore the context at a later time.
<p>
The security context returned by this method contains the security
context of the currently active sub-policy (or an equivalent of the
default security context described in the documentation for <a href="../../../../net/jini/security/Security.html#getContext--"><code>Security.getContext</code></a>, if the currently active sub-policy does not
implement <a href="../../../../net/jini/security/policy/SecurityContextSource.html" title="interface in net.jini.security.policy"><code>SecurityContextSource</code></a>), as well as the current context
class loader. The privileged action wrappers it creates restore the
saved context class loader before delegating to the action wrappers of
the underlying sub-policy security context. The
<code>getAccessControlContext</code> method of the returned security
context delegates to the corresponding method of the sub-policy security
context.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../net/jini/security/policy/SecurityContextSource.html#getContext--">getContext</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../net/jini/security/policy/SecurityContextSource.html" title="interface in net.jini.security.policy">SecurityContextSource</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>snapshot of the current security context</dd>
</dl>
</li>
</ul>
<a name="ensureDependenciesResolved--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ensureDependenciesResolved</h4>
<pre>private&nbsp;void&nbsp;ensureDependenciesResolved()</pre>
<div class="block">Ensures that any classes depended on by this policy provider are
resolved. This is to preclude lazy resolution of such classes during
operation of the provider, which can result in deadlock as described by
bug 4911907.</div>
</li>
</ul>
<a name="getCurrentSubPolicy--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentSubPolicy</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&nbsp;getCurrentSubPolicy()</pre>
<div class="block">Returns currently active sub-policy.</div>
</li>
</ul>
<a name="lookupSubPolicy-java.lang.ClassLoader-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>lookupSubPolicy</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html?is-external=true" title="class or interface in java.security">Policy</a>&nbsp;lookupSubPolicy(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;ldr)</pre>
<div class="block">Returns sub-policy associated with the given class loader.</div>
</li>
</ul>
<a name="getContextClassLoader--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getContextClassLoader</h4>
<pre>static&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;getContextClassLoader()</pre>
<div class="block">Returns current context class loader.</div>
</li>
</ul>
<a name="trustGetContextClassLoader-java.lang.Thread-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>trustGetContextClassLoader</h4>
<pre>private static&nbsp;boolean&nbsp;trustGetContextClassLoader(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&nbsp;t)</pre>
<div class="block">Returns true if the given thread does not override
Thread.getContextClassLoader(), false otherwise.</div>
</li>
</ul>
<a name="trustGetContextClassLoader0-java.lang.Class-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>trustGetContextClassLoader0</h4>
<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;trustGetContextClassLoader0(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;cl)</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AggregatePolicyProvider.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/river/start/ActivateWrapper.ExportClassLoader.html" title="class in org.apache.river.start"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/river/start/AggregatePolicyProvider.AggregateSecurityContext.html" title="class in org.apache.river.start"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/river/start/AggregatePolicyProvider.html" target="_top">Frames</a></li>
<li><a href="AggregatePolicyProvider.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright 2007-2013, multiple authors.<br>Licensed under the <a href=http://www.apache.org/licenses/LICENSE-2.0 target=child >Apache License, Version 2.0</a>, see the <a href=../../../../doc-files/NOTICE target=child >NOTICE</a> file for attributions.</small></p>
</body>
</html>