blob: 2b0373b7c8c00c755764233ae04be4d1b7b21830 [file]
<!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:01 EST 2016 -->
<title>DebugDynamicPolicyProvider (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="DebugDynamicPolicyProvider (Apache River v3.0.0 API Documentation (internals))";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":10,"i2":10,"i3":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/DebugDynamicPolicyProvider.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/tool/ComputeHttpmdCodebase.html" title="class in org.apache.river.tool"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/river/tool/DebugDynamicPolicyProvider.Request.html" title="class in org.apache.river.tool"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/river/tool/DebugDynamicPolicyProvider.html" target="_top">Frames</a></li>
<li><a href="DebugDynamicPolicyProvider.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.tool</div>
<h2 title="Class DebugDynamicPolicyProvider" class="title">Class DebugDynamicPolicyProvider</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><a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html" title="class in net.jini.security.policy">net.jini.security.policy.DynamicPolicyProvider</a></li>
<li>
<ul class="inheritance">
<li>org.apache.river.tool.DebugDynamicPolicyProvider</li>
</ul>
</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="../../../../org/apache/river/api/security/RevocablePolicy.html" title="interface in org.apache.river.api.security">RevocablePolicy</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">DebugDynamicPolicyProvider</span>
extends <a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html" title="class in net.jini.security.policy">DynamicPolicyProvider</a></pre>
<div class="block">Defines a <a href="../../../../net/jini/security/policy/DynamicPolicy.html" title="interface in net.jini.security.policy"><code>DynamicPolicy</code></a> that logs information about missing
permissions, and optionally grants all permissions, which is <b>FOR
DEBUGGING ONLY</b>. Do not use this security policy provider to grant
all permissions in a production environment. <p>
This class is intended to simplify the process of deciding what security
permissions to grant to run an application. While it is generally
acceptable to grant all permissions to local, trusted code, downloaded
code should typically be granted the least permission possible. <p>
The usual approach to choosing which permissions to grant is to start by
running the application with a security policy file that grants all
permissions to local, trusted code. When the application fails with an
exception message that identifies a missing permission, add that
permission to the security policy file, and repeat the process. Although
straight forward, this process can be time consuming if the application
requires many permission grants. <p>
Another approach is to set the value of the
<code>"java.security.debug"</code> system property to
<code>"access,failure"</code>, which produces debugging output that
describes permission grants and failures. Unfortunately, this approach
produces voluminous output, making it difficult to determine which
permission grants are needed. <p>
This security policy provider permits another, hopefully more
convenient, approach. When this class is specified as the security
policy provider, and granting all permissions is enabled, it uses the
standard dynamic security policy to determine what permissions are
granted. If a permission is not granted by the standard policy, though,
then rather than denying permission, this class logs the missing
permission in the form required by the security policy file, and grants
the permission, allowing the program to continue. In this way,
developers can determine the complete set of security permissions
required by the application. <p>
Note that the information printed by this security policy provider may
not be in the form you wish to use in your policy file. In particular,
using system property substitutions and <code>KeyStore</code> aliases
may produce a more portable file than one containing the exact entries
logged. Note, too, that the information printed for
<code>signedBy</code> fields specifies the principal name for
<code>X.509</code> certificates, rather than the <code>KeyStore</code>
alias, which is not a valid security policy file format. <p>
Using this security policy provider without granting all permissions is
also useful since it prints information about security exceptions that
were caught, but that might have an affect on program behavior. <p>
This class uses uses the <a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging"><code>Logger</code></a> named
<code>net.jini.security.policy</code> to log information at the following
levels: <ul>
<li> <a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Level.html?is-external=true#WARNING" title="class or interface in java.util.logging"><code>WARNING</code></a> - Permissions that were needed but not
granted by the policy file.
<li> <a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Level.html?is-external=true#FINE" title="class or interface in java.util.logging"><code>FINE</code></a> - Also include stack traces.
<li> <a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Level.html?is-external=true#FINER" title="class or interface in java.util.logging"><code>FINER</code></a> - All permissions granted, with stack traces
for ones not granted by the policy file, and dynamic grants.
<li> <a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Level.html?is-external=true#FINEST" title="class or interface in java.util.logging"><code>FINEST</code></a> - All permissions granted, with all stack
traces, and dynamic grants. </ul>
To use this security policy provider, do the following: <ul>
<li> Copy the <code>jsk-policy.jar</code> file from the <code>lib-ext</code>
subdirectory of the Apache River release
installation to the extensions directory of the Java(TM) 2 SDK (or JRE)
installation, and copy the <code>jsk-debug-policy.jar</code> file
from the <code>lib</code> subdirectory of the Apache River release installation to
the extensions directory of the Java 2 SDK (or JRE) installation.
<li> Specify this class as the security policy provider. Create a copy of
the file <code>jre/lib/security/security/java.security</code>, modify the
file to contain the line:
<blockquote>
<pre>
policy.provider=org.apache.river.tool.DebugDynamicPolicyProvider
</pre>
</blockquote>
and then specify this new file as the value of the
<code>java.security.properties</code> system property.
<li> Specify whether all permissions should be granted by setting the
<code>org.apache.river.tool.DebugDynamicPolicyProvider.grantAll</code> security
property to <code>true</code> by adding the following line to the security
properties file:
<blockquote>
<pre>
org.apache.river.tool.DebugDynamicPolicyProvider.grantAll=true
</pre>
</blockquote> </ul> <p>
Granting all permissions is disabled by default. <p>
Make sure to specify a security manager, either by setting the
<code>java.security.manager</code> system property, or putting the following
code in the main method of the application:
<blockquote>
<pre>
if (System.getSecurityManager() == null) {
System.setSecurityManager(new SecurityManager());
}
</pre>
</blockquote>
<p>This provider can be used in conjunction with the provider
<code>org.apache.river.start.AggregatePolicyProvider</code> by setting the
<code>org.apache.river.start.AggregatePolicyProvider.mainPolicyClass</code>
system property to the fully qualified name of this class. If this
provider is used with the <code>AggregatePolicyProvider</code>, then the
JAR file <code>jsk-debug-policy.jar</code> needs to be in the
application's class path, and this class needs to be granted all
permissions.</div>
<dl>
<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/tool/DebugDynamicPolicyProvider.Request.html" title="class in org.apache.river.tool">DebugDynamicPolicyProvider.Request</a></span></code>&nbsp;</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/security/CodeSource.html?is-external=true" title="class or interface in java.security">CodeSource</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/tool/DebugDynamicPolicyProvider.html#emptyCS">emptyCS</a></span></code>
<div class="block">The empty codesource.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/tool/DebugDynamicPolicyProvider.html#grantAll">grantAll</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/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging">Logger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/tool/DebugDynamicPolicyProvider.html#logger">logger</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/Set.html?is-external=true" title="class or interface in java.util">Set</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/tool/DebugDynamicPolicyProvider.html#requests">requests</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/tool/DebugDynamicPolicyProvider.html#DebugDynamicPolicyProvider--">DebugDynamicPolicyProvider</a></span>()</code>
<div class="block">Creates an instance of this class that wraps a default underlying
policy, as specified by <a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html#DynamicPolicyProvider--"><code>DynamicPolicyProvider()</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/river/tool/DebugDynamicPolicyProvider.html#DebugDynamicPolicyProvider-java.security.Policy-">DebugDynamicPolicyProvider</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;basePolicy)</code>
<div class="block">Creates an instance of this class that wraps around the given
non-<code>null</code> base policy object.</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 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/tool/DebugDynamicPolicyProvider.html#getCertName-java.security.cert.Certificate-">getCertName</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/cert/Certificate.html?is-external=true" title="class or interface in java.security.cert">Certificate</a>&nbsp;cert)</code>
<div class="block">Returns the name of the certificate.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/tool/DebugDynamicPolicyProvider.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">Log calls.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/river/tool/DebugDynamicPolicyProvider.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;pd,
<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;perm)</code>
<div class="block">Always returns true, but logs unique requests</div>
</td>
</tr>
<tr id="i3" 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/tool/DebugDynamicPolicyProvider.html#quoteString-java.lang.String-">quoteString</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;s)</code>
<div class="block">Returns a quoted version of the argument, such that it would result in
the argument if read from a file with the standard String syntax.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.net.jini.security.policy.DynamicPolicyProvider">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;net.jini.security.policy.<a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html" title="class in net.jini.security.policy">DynamicPolicyProvider</a></h3>
<code><a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html#getGrants-java.lang.Class-java.security.Principal:A-">getGrants</a>, <a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html#getPermissionGrants-java.security.ProtectionDomain-">getPermissionGrants</a>, <a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html#getPermissions-java.security.CodeSource-">getPermissions</a>, <a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html#getPermissions-java.security.ProtectionDomain-">getPermissions</a>, <a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html#grant-org.apache.river.api.security.PermissionGrant-">grant</a>, <a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html#grantSupported--">grantSupported</a>, <a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html#refresh--">refresh</a>, <a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html#revokeSupported--">revokeSupported</a></code></li>
</ul>
<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="logger">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logger</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging">Logger</a> logger</pre>
</li>
</ul>
<a name="grantAll">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>grantAll</h4>
<pre>private static&nbsp;boolean grantAll</pre>
</li>
</ul>
<a name="requests">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>requests</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a> requests</pre>
</li>
</ul>
<a name="emptyCS">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>emptyCS</h4>
<pre>private static final&nbsp;<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> emptyCS</pre>
<div class="block">The empty codesource.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="DebugDynamicPolicyProvider--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DebugDynamicPolicyProvider</h4>
<pre>public&nbsp;DebugDynamicPolicyProvider()
throws <a href="../../../../net/jini/security/policy/PolicyInitializationException.html" title="class in net.jini.security.policy">PolicyInitializationException</a></pre>
<div class="block">Creates an instance of this class that wraps a default underlying
policy, as specified by <a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html#DynamicPolicyProvider--"><code>DynamicPolicyProvider()</code></a>.</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.DynamicPolicyProvider.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="DebugDynamicPolicyProvider-java.security.Policy-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DebugDynamicPolicyProvider</h4>
<pre>public&nbsp;DebugDynamicPolicyProvider(<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;basePolicy)</pre>
<div class="block">Creates an instance of this class that wraps around the given
non-<code>null</code> base policy object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>basePolicy</code> - base policy object containing information about
non-dynamic grants</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>basePolicy</code> 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="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">Log calls.</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="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html#grant-java.lang.Class-java.security.Principal:A-java.security.Permission:A-">grant</a></code>&nbsp;in class&nbsp;<code><a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html" title="class in net.jini.security.policy">DynamicPolicyProvider</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>
</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;pd,
<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;perm)</pre>
<div class="block">Always returns true, but logs unique requests</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html#implies-java.security.ProtectionDomain-java.security.Permission-">implies</a></code>&nbsp;in class&nbsp;<code><a href="../../../../net/jini/security/policy/DynamicPolicyProvider.html" title="class in net.jini.security.policy">DynamicPolicyProvider</a></code></dd>
</dl>
</li>
</ul>
<a name="getCertName-java.security.cert.Certificate-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCertName</h4>
<pre>private static&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>&nbsp;getCertName(<a href="http://docs.oracle.com/javase/6/docs/api/java/security/cert/Certificate.html?is-external=true" title="class or interface in java.security.cert">Certificate</a>&nbsp;cert)</pre>
<div class="block">Returns the name of the certificate.</div>
</li>
</ul>
<a name="quoteString-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>quoteString</h4>
<pre>private static&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>&nbsp;quoteString(<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;s)</pre>
<div class="block">Returns a quoted version of the argument, such that it would result in
the argument if read from a file with the standard String syntax.</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/DebugDynamicPolicyProvider.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/tool/ComputeHttpmdCodebase.html" title="class in org.apache.river.tool"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/river/tool/DebugDynamicPolicyProvider.Request.html" title="class in org.apache.river.tool"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/river/tool/DebugDynamicPolicyProvider.html" target="_top">Frames</a></li>
<li><a href="DebugDynamicPolicyProvider.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>