blob: 522089074b1a551ef9d274d1ebf4b960f0173ad0 [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:42:13 EST 2016 -->
<title>PolicyFileProvider (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="PolicyFileProvider (Apache River v3.0.0 API Documentation (internals))";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":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/PolicyFileProvider.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="../../../../net/jini/security/policy/DynamicPolicyProvider.html" title="class in net.jini.security.policy"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../net/jini/security/policy/PolicyInitializationException.html" title="class in net.jini.security.policy"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?net/jini/security/policy/PolicyFileProvider.html" target="_top">Frames</a></li>
<li><a href="PolicyFileProvider.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.classes.inherited.from.class.java.security.Policy">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">net.jini.security.policy</div>
<h2 title="Class PolicyFileProvider" class="title">Class PolicyFileProvider</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>net.jini.security.policy.PolicyFileProvider</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">PolicyFileProvider</span>
extends <a href="../../../../org/apache/river/api/security/AbstractPolicy.html" title="class in org.apache.river.api.security">AbstractPolicy</a></pre>
<div class="block">Security policy provider that wraps the J2SE(TM) default
<a href="http://java.sun.com/j2se/1.4/docs/guide/security/PolicyFiles.html">
"PolicyFile" security policy provider</a> distributed as part of the
Java(TM) 2 Platform, Standard Edition. This provider augments the J2SE
default policy provider in two ways: it provides an additional constructor
for creating a policy based on an explicitly named policy file, and supports
the use of <a href="../../../../net/jini/security/policy/UmbrellaGrantPermission.html" title="class in net.jini.security.policy"><code>UmbrellaGrantPermission</code></a>s as shorthand notation for
<a href="../../../../net/jini/security/GrantPermission.html" title="class in net.jini.security"><code>GrantPermission</code></a>s covering all permissions authorized to given
protection domains.</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>
<dt><span class="simpleTagLabel">Implementation Specifics:</span></dt>
<dd><!-- Implementation Specifics -->
This implementation's no-argument constructor uses a default class name of
<code>"org.apache.river.impl.security.policy.se.ConcurrentPolicyFile"</code>
to instantiate base policy objects, if the
<code>net.jini.security.policy.PolicyFileProvider.basePolicyClass</code>
security property is not set.</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>
<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 <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="../../../../net/jini/security/policy/PolicyFileProvider.html#basePolicy">basePolicy</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="../../../../net/jini/security/policy/PolicyFileProvider.html#basePolicyClassProperty">basePolicyClassProperty</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/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="../../../../net/jini/security/policy/PolicyFileProvider.html#defaultBasePolicyClass">defaultBasePolicyClass</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/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="../../../../net/jini/security/policy/PolicyFileProvider.html#policyFile">policyFile</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/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="../../../../net/jini/security/policy/PolicyFileProvider.html#policyProperty">policyProperty</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/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../net/jini/security/policy/PolicyFileProvider.html#propertyLock">propertyLock</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="../../../../net/jini/security/policy/PolicyFileProvider.html#PolicyFileProvider--">PolicyFileProvider</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">DynamicPolicyProvider now supports Umbrella grants directly.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../net/jini/security/policy/PolicyFileProvider.html#PolicyFileProvider-java.lang.String-">PolicyFileProvider</a></span>(<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>&nbsp;policyFile)</code>
<div class="block">Creates a <code>PolicyFileProvider</code> whose starting set of
permission mappings is the same as those that would result from
constructing a new instance of the J2SE default security policy provider
with the <code>java.security.policy</code> system property set to the
value of <code>policyFile</code>, except that
<code>UmbrellaGrantPermission</code>s are expanded into
<code>GrantPermission</code>s as described in the documentation for
<a href="../../../../net/jini/security/policy/UmbrellaGrantPermission.html" title="class in net.jini.security.policy"><code>UmbrellaGrantPermission</code></a>.</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="../../../../net/jini/security/policy/PolicyFileProvider.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="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="../../../../net/jini/security/policy/PolicyFileProvider.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">Behaves as specified by <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"><code>Policy.getPermissions(CodeSource)</code></a>.</div>
</td>
</tr>
<tr id="i2" 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="../../../../net/jini/security/policy/PolicyFileProvider.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">Behaves as specified by <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"><code>Policy.getPermissions(ProtectionDomain)</code></a>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../net/jini/security/policy/PolicyFileProvider.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">Behaves as specified by <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"><code>Policy.implies(java.security.ProtectionDomain, java.security.Permission)</code></a>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../net/jini/security/policy/PolicyFileProvider.html#refresh--">refresh</a></span>()</code>
<div class="block">Refreshes the policy configuration by calling <code>refresh</code> on
the base policy.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../net/jini/security/policy/PolicyFileProvider.html#resetPolicyProperty-java.lang.String-">resetPolicyProperty</a></span>(<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>&nbsp;value)</code>
<div class="block">Resets policyProperty system property, removing it if the value to set
is null.</div>
</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="basePolicyClassProperty">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>basePolicyClassProperty</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> basePolicyClassProperty</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#net.jini.security.policy.PolicyFileProvider.basePolicyClassProperty">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="defaultBasePolicyClass">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>defaultBasePolicyClass</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> defaultBasePolicyClass</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#net.jini.security.policy.PolicyFileProvider.defaultBasePolicyClass">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="policyProperty">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>policyProperty</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> policyProperty</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#net.jini.security.policy.PolicyFileProvider.policyProperty">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="propertyLock">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>propertyLock</h4>
<pre>private static final&nbsp;<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> propertyLock</pre>
</li>
</ul>
<a name="policyFile">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>policyFile</h4>
<pre>private 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> policyFile</pre>
</li>
</ul>
<a name="basePolicy">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>basePolicy</h4>
<pre>private final&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> basePolicy</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="PolicyFileProvider--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PolicyFileProvider</h4>
<pre><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
public&nbsp;PolicyFileProvider()
throws <a href="../../../../net/jini/security/policy/PolicyInitializationException.html" title="class in net.jini.security.policy">PolicyInitializationException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">DynamicPolicyProvider now supports Umbrella grants directly.</span></div>
<div class="block">Creates a <code>PolicyFileProvider</code> whose starting set of
permission mappings is the same as those that would result from
constructing a new instance of the J2SE default security policy provider
with the current <code>java.security.policy</code> system property
setting (if any), except that <code>UmbrellaGrantPermission</code>s are
expanded into <code>GrantPermission</code>s as described in the
documentation for <a href="../../../../net/jini/security/policy/UmbrellaGrantPermission.html" title="class in net.jini.security.policy"><code>UmbrellaGrantPermission</code></a>.
<p>
The constructed <code>PolicyFileProvider</code> contains an instance of
the J2SE default security policy provider, which is created as follows:
if the
<code>net.jini.security.policy.PolicyFileProvider.basePolicyClass</code>
security property is set, then its value is interpreted as the class
name of the base (underlying) J2SE default policy provider; otherwise,
an implementation-specific default class name is used. The base policy
is then instantiated using the no-arg public constructor of the named
class. If the base policy class is not found or 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>net.jini.security.policy.PolicyFileProvider.basePolicyClass</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 base 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 base
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 adequate permissions to read the
<code>net.jini.security.policy.PolicyFileProvider.basePolicyClass</code>
security property, or if the calling context does not have
adequate permissions to access the base policy class</dd>
</dl>
</li>
</ul>
<a name="PolicyFileProvider-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>PolicyFileProvider</h4>
<pre>public&nbsp;PolicyFileProvider(<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>&nbsp;policyFile)
throws <a href="../../../../net/jini/security/policy/PolicyInitializationException.html" title="class in net.jini.security.policy">PolicyInitializationException</a></pre>
<div class="block">Creates a <code>PolicyFileProvider</code> whose starting set of
permission mappings is the same as those that would result from
constructing a new instance of the J2SE default security policy provider
with the <code>java.security.policy</code> system property set to the
value of <code>policyFile</code>, except that
<code>UmbrellaGrantPermission</code>s are expanded into
<code>GrantPermission</code>s as described in the documentation for
<a href="../../../../net/jini/security/policy/UmbrellaGrantPermission.html" title="class in net.jini.security.policy"><code>UmbrellaGrantPermission</code></a>.
<p>
The constructed <code>PolicyFileProvider</code> contains an instance of
the J2SE default security policy provider, which is created as described
in the documentation for <a href="../../../../net/jini/security/policy/PolicyFileProvider.html#PolicyFileProvider--"><code>PolicyFileProvider()</code></a>. Before
instantiating the base (underlying) J2SE default policy provider, this
constructor sets the <code>java.security.policy</code> system property
to the value of <code>policyFile</code>; after instantiation of the base
policy instance has completed (normally or otherwise), the
<code>java.security.policy</code> system property is reset to its prior
value. Internal synchronization ensures that concurrent calls to this
constructor and/or the <a href="../../../../net/jini/security/policy/PolicyFileProvider.html#refresh--"><code>refresh()</code></a> method of this class (which may
also modify <code>java.security.policy</code>) will not interfere with
the <code>java.security.policy</code> values set and restored by each.
No synchronization is done with any other accesses or modifications to
<code>java.security.policy</code>.
<p>
Note that this constructor requires <a href="http://docs.oracle.com/javase/6/docs/api/java/util/PropertyPermission.html?is-external=true" title="class or interface in java.util"><code>PropertyPermission</code></a>
to read and write the <code>java.security.policy</code> system property,
<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>net.jini.security.policy.PolicyFileProvider.basePolicyClass</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 base policy
class.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>policyFile</code> - URL string specifying location of the policy file to
use</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 <code>policyFile</code> is
<code>null</code></dd>
<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 base
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 adequate permissions to read and
write the <code>java.security.policy</code> system property, to
read the
<code>net.jini.security.policy.PolicyFileProvider.basePolicyClass</code>
security property, or to access the base policy class</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">Behaves as specified by <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"><code>Policy.getPermissions(CodeSource)</code></a>.</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>
</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">Behaves as specified by <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"><code>Policy.getPermissions(ProtectionDomain)</code></a>.</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>
</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">Behaves as specified by <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"><code>Policy.implies(java.security.ProtectionDomain, java.security.Permission)</code></a>.</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>
</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 policy configuration by calling <code>refresh</code> on
the base policy. If this <code>PolicyFileProvider</code> instance was
constructed with an explicit policy file value, then the
<code>java.security.policy</code> system property is set to that value
prior to invoking <code>refresh</code> on the base policy; once the base
policy <code>refresh</code> call has completed, the
<code>java.security.policy</code> system property is reset to its prior
value. Internal synchronization ensures that concurrent invocations of
this method and/or the <a href="../../../../net/jini/security/policy/PolicyFileProvider.html#PolicyFileProvider-java.lang.String-"><code>PolicyFileProvider(String)</code></a> constructor
(which also modifies <code>java.security.policy</code>) will not
interfere with the <code>java.security.policy</code> values set and
restored by each. No synchronization is done with any other accesses
or modifications to <code>java.security.policy</code>.</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="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="resetPolicyProperty-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>resetPolicyProperty</h4>
<pre>private static&nbsp;void&nbsp;resetPolicyProperty(<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>&nbsp;value)</pre>
<div class="block">Resets policyProperty system property, removing it if the value to set
is null. We do this in a privileged block to make sure that the operation
does not fail, even if the calling context may not have the requisite
permissions anymore (could happen in the refresh case).</div>
</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/PolicyFileProvider.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="../../../../net/jini/security/policy/DynamicPolicyProvider.html" title="class in net.jini.security.policy"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../net/jini/security/policy/PolicyInitializationException.html" title="class in net.jini.security.policy"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?net/jini/security/policy/PolicyFileProvider.html" target="_top">Frames</a></li>
<li><a href="PolicyFileProvider.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.classes.inherited.from.class.java.security.Policy">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>