blob: 279e8426a8921c5446d277c9f42018016b2840cb [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 (version 1.7.0_21) on Thu May 30 14:51:24 PDT 2013 -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>WildcardPermission (Apache Shiro 1.2.1 API)</title>
<meta name="date" content="2013-05-30">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="WildcardPermission (Apache Shiro 1.2.1 API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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/WildcardPermission.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/shiro/authz/permission/RolePermissionResolverAware.html" title="interface in org.apache.shiro.authz.permission"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/shiro/authz/permission/WildcardPermissionResolver.html" title="class in org.apache.shiro.authz.permission"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/shiro/authz/permission/WildcardPermission.html" target="_top">Frames</a></li>
<li><a href="WildcardPermission.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All 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>Nested&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.shiro.authz.permission</div>
<h2 title="Class WildcardPermission" class="title">Class WildcardPermission</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://java.sun.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>org.apache.shiro.authz.permission.WildcardPermission</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="http://java.sun.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz">Permission</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../org/apache/shiro/authz/permission/DomainPermission.html" title="class in org.apache.shiro.authz.permission">DomainPermission</a></dd>
</dl>
<hr>
<br>
<pre>public class <a href="../../../../../src-html/org/apache/shiro/authz/permission/WildcardPermission.html#line.105">WildcardPermission</a>
extends <a href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz">Permission</a>, <a href="http://java.sun.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
<div class="block">A <code>WildcardPermission</code> is a very flexible permission construct supporting multiple levels of
permission matching. However, most people will probably follow some standard conventions as explained below.
<p/>
<h3>Simple Usage</h3>
<p/>
In the simplest form, <code>WildcardPermission</code> can be used as a simple permission string. You could grant a
user an &quot;editNewsletter&quot; permission and then check to see if the user has the editNewsletter
permission by calling
<p/>
<code>subject.isPermitted(&quot;editNewsletter&quot;)</code>
<p/>
This is (mostly) equivalent to
<p/>
<code>subject.isPermitted( new WildcardPermission(&quot;editNewsletter&quot;) )</code>
<p/>
but more on that later.
<p/>
The simple permission string may work for simple applications, but it requires you to have permissions like
<code>&quot;viewNewsletter&quot;</code>, <code>&quot;deleteNewsletter&quot;</code>,
<code>&quot;createNewsletter&quot;</code>, etc. You can also grant a user <code>&quot;*&quot;</code> permissions
using the wildcard character (giving this class its name), which means they have <em>all</em> permissions. But
using this approach there's no way to just say a user has &quot;all newsletter permissions&quot;.
<p/>
For this reason, <code>WildcardPermission</code> supports multiple <em>levels</em> of permissioning.
<p/>
<h3>Multiple Levels</h3>
<p/>
WildcardPermission</code> also supports the concept of multiple <em>levels</em>. For example, you could
restructure the previous simple example by granting a user the permission <code>&quot;newsletter:edit&quot;</code>.
The colon in this example is a special character used by the <code>WildcardPermission</code> that delimits the
next token in the permission.
<p/>
In this example, the first token is the <em>domain</em> that is being operated on
and the second token is the <em>action</em> being performed. Each level can contain multiple values. So you
could simply grant a user the permission <code>&quot;newsletter:view,edit,create&quot;</code> which gives them
access to perform <code>view</code>, <code>edit</code>, and <code>create</code> actions in the <code>newsletter</code>
<em>domain</em>. Then you could check to see if the user has the <code>&quot;newsletter:create&quot;</code>
permission by calling
<p/>
<code>subject.isPermitted(&quot;newsletter:create&quot;)</code>
<p/>
(which would return true).
<p/>
In addition to granting multiple permissions via a single string, you can grant all permission for a particular
level. So if you wanted to grant a user all actions in the <code>newsletter</code> domain, you could simply give
them <code>&quot;newsletter:*&quot;</code>. Now, any permission check for <code>&quot;newsletter:XXX&quot;</code>
will return <code>true</code>. It is also possible to use the wildcard token at the domain level (or both): so you
could grant a user the <code>&quot;view&quot;</code> action across all domains <code>&quot;*:view&quot;</code>.
<p/>
<h3>Instance-level Access Control</h3>
<p/>
Another common usage of the <code>WildcardPermission</code> is to model instance-level Access Control Lists.
In this scenario you use three tokens - the first is the <em>domain</em>, the second is the <em>action</em>, and
the third is the <em>instance</em> you are acting on.
<p/>
So for example you could grant a user <code>&quot;newsletter:edit:12,13,18&quot;</code>. In this example, assume
that the third token is the system's ID of the newsletter. That would allow the user to edit newsletters
<code>12</code>, <code>13</code>, and <code>18</code>. This is an extremely powerful way to express permissions,
since you can now say things like <code>&quot;newsletter:*:13&quot;</code> (grant a user all actions for newsletter
<code>13</code>), <code>&quot;newsletter:view,create,edit:*&quot;</code> (allow the user to
<code>view</code>, <code>create</code>, or <code>edit</code> <em>any</em> newsletter), or
<code>&quot;newsletter:*:*</code> (allow the user to perform <em>any</em> action on <em>any</em> newsletter).
<p/>
To perform checks against these instance-level permissions, the application should include the instance ID in the
permission check like so:
<p/>
<code>subject.isPermitted( &quot;newsletter:edit:13&quot; )</code>
<p/>
There is no limit to the number of tokens that can be used, so it is up to your imagination in terms of ways that
this could be used in your application. However, the Shiro team likes to standardize some common usages shown
above to help people get started and provide consistency in the Shiro community.</div>
<dl><dt><span class="strong">Since:</span></dt>
<dd>0.9</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../serialized-form.html#org.apache.shiro.authz.permission.WildcardPermission">Serialized Form</a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" 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>protected static boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/authz/permission/WildcardPermission.html#DEFAULT_CASE_SENSITIVE">DEFAULT_CASE_SENSITIVE</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static <a href="http://java.sun.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><strong><a href="../../../../../org/apache/shiro/authz/permission/WildcardPermission.html#PART_DIVIDER_TOKEN">PART_DIVIDER_TOKEN</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static <a href="http://java.sun.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><strong><a href="../../../../../org/apache/shiro/authz/permission/WildcardPermission.html#SUBPART_DIVIDER_TOKEN">SUBPART_DIVIDER_TOKEN</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static <a href="http://java.sun.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><strong><a href="../../../../../org/apache/shiro/authz/permission/WildcardPermission.html#WILDCARD_TOKEN">WILDCARD_TOKEN</a></strong></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" 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="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/authz/permission/WildcardPermission.html#WildcardPermission()">WildcardPermission</a></strong>()</code>
<div class="block">Default no-arg constructor for subclasses only - end-user developers instantiating Permission instances must
provide a wildcard string at a minimum, since Permission instances are immutable once instantiated.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/authz/permission/WildcardPermission.html#WildcardPermission(java.lang.String)">WildcardPermission</a></strong>(<a href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;wildcardString)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/authz/permission/WildcardPermission.html#WildcardPermission(java.lang.String, boolean)">WildcardPermission</a></strong>(<a href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;wildcardString,
boolean&nbsp;caseSensitive)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/authz/permission/WildcardPermission.html#equals(java.lang.Object)">equals</a></strong>(<a href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://java.sun.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/authz/permission/WildcardPermission.html#getParts()">getParts</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/authz/permission/WildcardPermission.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/authz/permission/WildcardPermission.html#implies(org.apache.shiro.authz.Permission)">implies</a></strong>(<a href="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz">Permission</a>&nbsp;p)</code>
<div class="block">Returns <code>true</code> if this current instance <em>implies</em> all the functionality and/or resource access
described by the specified <code>Permission</code> argument, <code>false</code> otherwise.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/authz/permission/WildcardPermission.html#setParts(java.lang.String)">setParts</a></strong>(<a href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;wildcardString)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/authz/permission/WildcardPermission.html#setParts(java.lang.String, boolean)">setParts</a></strong>(<a href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;wildcardString,
boolean&nbsp;caseSensitive)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://java.sun.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><strong><a href="../../../../../org/apache/shiro/authz/permission/WildcardPermission.html#toString()">toString</a></strong>()</code>&nbsp;</td>
</tr>
</table>
<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://java.sun.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://java.sun.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://java.sun.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://java.sun.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://java.sun.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://java.sun.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://java.sun.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://java.sun.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://java.sun.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="WILDCARD_TOKEN">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>WILDCARD_TOKEN</h4>
<pre>protected static final&nbsp;<a href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/shiro/authz/permission/WildcardPermission.html#line.112">WILDCARD_TOKEN</a></pre>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.shiro.authz.permission.WildcardPermission.WILDCARD_TOKEN">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="PART_DIVIDER_TOKEN">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PART_DIVIDER_TOKEN</h4>
<pre>protected static final&nbsp;<a href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/shiro/authz/permission/WildcardPermission.html#line.113">PART_DIVIDER_TOKEN</a></pre>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.shiro.authz.permission.WildcardPermission.PART_DIVIDER_TOKEN">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="SUBPART_DIVIDER_TOKEN">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SUBPART_DIVIDER_TOKEN</h4>
<pre>protected static final&nbsp;<a href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/shiro/authz/permission/WildcardPermission.html#line.114">SUBPART_DIVIDER_TOKEN</a></pre>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.shiro.authz.permission.WildcardPermission.SUBPART_DIVIDER_TOKEN">Constant Field Values</a></dd></dl>
</li>
</ul>
<a name="DEFAULT_CASE_SENSITIVE">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DEFAULT_CASE_SENSITIVE</h4>
<pre>protected static final&nbsp;boolean <a href="../../../../../src-html/org/apache/shiro/authz/permission/WildcardPermission.html#line.115">DEFAULT_CASE_SENSITIVE</a></pre>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../constant-values.html#org.apache.shiro.authz.permission.WildcardPermission.DEFAULT_CASE_SENSITIVE">Constant Field Values</a></dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="WildcardPermission()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>WildcardPermission</h4>
<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/shiro/authz/permission/WildcardPermission.html#line.134">WildcardPermission</a>()</pre>
<div class="block">Default no-arg constructor for subclasses only - end-user developers instantiating Permission instances must
provide a wildcard string at a minimum, since Permission instances are immutable once instantiated.
<p/>
Note that the WildcardPermission class is very robust and typically subclasses are not necessary unless you
wish to create type-safe Permission objects that would be used in your application, such as perhaps a
<code>UserPermission</code>, <code>SystemPermission</code>, <code>PrinterPermission</code>, etc. If you want such type-safe
permission usage, consider subclassing the <a href="../../../../../org/apache/shiro/authz/permission/DomainPermission.html" title="class in org.apache.shiro.authz.permission"><code>DomainPermission</code></a> class for your needs.</div>
</li>
</ul>
<a name="WildcardPermission(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>WildcardPermission</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/shiro/authz/permission/WildcardPermission.html#line.137">WildcardPermission</a>(<a href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;wildcardString)</pre>
</li>
</ul>
<a name="WildcardPermission(java.lang.String, boolean)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>WildcardPermission</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/shiro/authz/permission/WildcardPermission.html#line.141">WildcardPermission</a>(<a href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;wildcardString,
boolean&nbsp;caseSensitive)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="setParts(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setParts</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/authz/permission/WildcardPermission.html#line.145">setParts</a>(<a href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;wildcardString)</pre>
</li>
</ul>
<a name="setParts(java.lang.String, boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setParts</h4>
<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/shiro/authz/permission/WildcardPermission.html#line.149">setParts</a>(<a href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;wildcardString,
boolean&nbsp;caseSensitive)</pre>
</li>
</ul>
<a name="getParts()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParts</h4>
<pre>protected&nbsp;<a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://java.sun.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/shiro/authz/permission/WildcardPermission.html#line.186">getParts</a>()</pre>
</li>
</ul>
<a name="implies(org.apache.shiro.authz.Permission)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>implies</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/shiro/authz/permission/WildcardPermission.html#line.194">implies</a>(<a href="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz">Permission</a>&nbsp;p)</pre>
<div class="block"><strong>Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/shiro/authz/Permission.html#implies(org.apache.shiro.authz.Permission)">Permission</a></code></strong></div>
<div class="block">Returns <code>true</code> if this current instance <em>implies</em> all the functionality and/or resource access
described by the specified <code>Permission</code> argument, <code>false</code> otherwise.
<p/>
<p>That is, this current instance must be exactly equal to or a <em>superset</em> of the functionalty
and/or resource access described by the given <code>Permission</code> argument. Yet another way of saying this
would be:
<p/>
<p>If &quot;permission1 implies permission2&quot;, i.e. <code>permission1.implies(permission2)</code> ,
then any Subject granted <code>permission1</code> would have ability greater than or equal to that defined by
<code>permission2</code>.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/shiro/authz/Permission.html#implies(org.apache.shiro.authz.Permission)">implies</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz">Permission</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>p</code> - the permission to check for behavior/functionality comparison.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>true</code> if this current instance <em>implies</em> all the functionality and/or resource access
described by the specified <code>Permission</code> argument, <code>false</code> otherwise.</dd></dl>
</li>
</ul>
<a name="toString()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/shiro/authz/permission/WildcardPermission.html#line.230">toString</a>()</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="equals(java.lang.Object)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/shiro/authz/permission/WildcardPermission.html#line.241">equals</a>(<a href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;o)</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="http://java.sun.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></code>&nbsp;in class&nbsp;<code><a href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="hashCode()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>hashCode</h4>
<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/shiro/authz/permission/WildcardPermission.html#line.249">hashCode</a>()</pre>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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/WildcardPermission.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/shiro/authz/permission/RolePermissionResolverAware.html" title="interface in org.apache.shiro.authz.permission"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/shiro/authz/permission/WildcardPermissionResolver.html" title="class in org.apache.shiro.authz.permission"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/shiro/authz/permission/WildcardPermission.html" target="_top">Frames</a></li>
<li><a href="WildcardPermission.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All 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>Nested&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 &#169; 2004-2013 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p>
</body>
</html>