<!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_25) on Wed May 25 23:25:57 EDT 2016 -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>Uses of Class org.apache.shiro.aop.AnnotationHandler (Apache Shiro 1.2.5 API)</title>
<meta name="date" content="2016-05-25">
<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="Uses of Class org.apache.shiro.aop.AnnotationHandler (Apache Shiro 1.2.5 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><a href="../../../../../org/apache/shiro/aop/AnnotationHandler.html" title="class in org.apache.shiro.aop">Class</a></li>
<li class="navBarCell1Rev">Use</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>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/shiro/aop/class-use/AnnotationHandler.html" target="_top">Frames</a></li>
<li><a href="AnnotationHandler.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>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class org.apache.shiro.aop.AnnotationHandler" class="title">Uses of Class<br>org.apache.shiro.aop.AnnotationHandler</h2>
</div>
<div class="classUseContainer">
<ul class="blockList">
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
<caption><span>Packages that use <a href="../../../../../org/apache/shiro/aop/AnnotationHandler.html" title="class in org.apache.shiro.aop">AnnotationHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Package</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="#org.apache.shiro.aop">org.apache.shiro.aop</a></td>
<td class="colLast">
<div class="block">Components used to support the framework's AOP/interception support classes.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.shiro.authz.aop">org.apache.shiro.authz.aop</a></td>
<td class="colLast">
<div class="block">Contains AOP implementation support classes specifically used for authorization operations, particularly supporting
 AOP Method Interceptors and JSR-175 metadata Annotations.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<ul class="blockList">
<li class="blockList"><a name="org.apache.shiro.aop">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../org/apache/shiro/aop/AnnotationHandler.html" title="class in org.apache.shiro.aop">AnnotationHandler</a> in <a href="../../../../../org/apache/shiro/aop/package-summary.html">org.apache.shiro.aop</a></h3>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Methods in <a href="../../../../../org/apache/shiro/aop/package-summary.html">org.apache.shiro.aop</a> that return <a href="../../../../../org/apache/shiro/aop/AnnotationHandler.html" title="class in org.apache.shiro.aop">AnnotationHandler</a></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>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/shiro/aop/AnnotationHandler.html" title="class in org.apache.shiro.aop">AnnotationHandler</a></code></td>
<td class="colLast"><span class="strong">AnnotationMethodInterceptor.</span><code><strong><a href="../../../../../org/apache/shiro/aop/AnnotationMethodInterceptor.html#getHandler()">getHandler</a></strong>()</code>
<div class="block">Returns the <code>AnnotationHandler</code> used to perform authorization behavior based on
 an annotation discovered at runtime.</div>
</td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Methods in <a href="../../../../../org/apache/shiro/aop/package-summary.html">org.apache.shiro.aop</a> with parameters of type <a href="../../../../../org/apache/shiro/aop/AnnotationHandler.html" title="class in org.apache.shiro.aop">AnnotationHandler</a></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>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><span class="strong">AnnotationMethodInterceptor.</span><code><strong><a href="../../../../../org/apache/shiro/aop/AnnotationMethodInterceptor.html#setHandler(org.apache.shiro.aop.AnnotationHandler)">setHandler</a></strong>(<a href="../../../../../org/apache/shiro/aop/AnnotationHandler.html" title="class in org.apache.shiro.aop">AnnotationHandler</a>&nbsp;handler)</code>
<div class="block">Sets the <code>AnnotationHandler</code> used to perform authorization behavior based on
 an annotation discovered at runtime.</div>
</td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
<caption><span>Constructors in <a href="../../../../../org/apache/shiro/aop/package-summary.html">org.apache.shiro.aop</a> with parameters of type <a href="../../../../../org/apache/shiro/aop/AnnotationHandler.html" title="class in org.apache.shiro.aop">AnnotationHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/aop/AnnotationMethodInterceptor.html#AnnotationMethodInterceptor(org.apache.shiro.aop.AnnotationHandler)">AnnotationMethodInterceptor</a></strong>(<a href="../../../../../org/apache/shiro/aop/AnnotationHandler.html" title="class in org.apache.shiro.aop">AnnotationHandler</a>&nbsp;handler)</code>
<div class="block">Constructs an <code>AnnotationMethodInterceptor</code> with the
 <a href="../../../../../org/apache/shiro/aop/AnnotationHandler.html" title="class in org.apache.shiro.aop"><code>AnnotationHandler</code></a> that will be used to process annotations of a
 corresponding type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/aop/AnnotationMethodInterceptor.html#AnnotationMethodInterceptor(org.apache.shiro.aop.AnnotationHandler, org.apache.shiro.aop.AnnotationResolver)">AnnotationMethodInterceptor</a></strong>(<a href="../../../../../org/apache/shiro/aop/AnnotationHandler.html" title="class in org.apache.shiro.aop">AnnotationHandler</a>&nbsp;handler,
                                                      <a href="../../../../../org/apache/shiro/aop/AnnotationResolver.html" title="interface in org.apache.shiro.aop">AnnotationResolver</a>&nbsp;resolver)</code>
<div class="block">Constructs an <code>AnnotationMethodInterceptor</code> with the
 <a href="../../../../../org/apache/shiro/aop/AnnotationHandler.html" title="class in org.apache.shiro.aop"><code>AnnotationHandler</code></a> that will be used to process annotations of a
 corresponding type, using the specified <code>AnnotationResolver</code> to acquire annotations
 at runtime.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.shiro.authz.aop">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../org/apache/shiro/aop/AnnotationHandler.html" title="class in org.apache.shiro.aop">AnnotationHandler</a> in <a href="../../../../../org/apache/shiro/authz/aop/package-summary.html">org.apache.shiro.authz.aop</a></h3>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
<caption><span>Subclasses of <a href="../../../../../org/apache/shiro/aop/AnnotationHandler.html" title="class in org.apache.shiro.aop">AnnotationHandler</a> in <a href="../../../../../org/apache/shiro/authz/aop/package-summary.html">org.apache.shiro.authz.aop</a></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>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/authz/aop/AuthenticatedAnnotationHandler.html" title="class in org.apache.shiro.authz.aop">AuthenticatedAnnotationHandler</a></strong></code>
<div class="block">Handles <a href="../../../../../org/apache/shiro/authz/annotation/RequiresAuthentication.html" title="annotation in org.apache.shiro.authz.annotation"><code>RequiresAuthentication</code></a> annotations and ensures the calling subject is
 authenticated before allowing access.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/authz/aop/AuthorizingAnnotationHandler.html" title="class in org.apache.shiro.authz.aop">AuthorizingAnnotationHandler</a></strong></code>
<div class="block">An AnnotationHandler that executes authorization (access control) behavior based on directive(s) found in a
 JSR-175 Annotation.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/authz/aop/GuestAnnotationHandler.html" title="class in org.apache.shiro.authz.aop">GuestAnnotationHandler</a></strong></code>
<div class="block">Checks to see if a @<a href="../../../../../org/apache/shiro/authz/annotation/RequiresGuest.html" title="annotation in org.apache.shiro.authz.annotation"><code>RequiresGuest</code></a> annotation
 is declared, and if so, ensures the calling <code>Subject</code> does <em>not</em>
 have an <a href="../../../../../org/apache/shiro/subject/Subject.html#getPrincipal()"><code>identity</code></a> before invoking the method.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/authz/aop/PermissionAnnotationHandler.html" title="class in org.apache.shiro.authz.aop">PermissionAnnotationHandler</a></strong></code>
<div class="block">Checks to see if a @<a href="../../../../../org/apache/shiro/authz/annotation/RequiresPermissions.html" title="annotation in org.apache.shiro.authz.annotation"><code>RequiresPermissions</code></a> annotation is
 declared, and if so, performs a permission check to see if the calling <code>Subject</code> is allowed continued
 access.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/authz/aop/RoleAnnotationHandler.html" title="class in org.apache.shiro.authz.aop">RoleAnnotationHandler</a></strong></code>
<div class="block">Checks to see if a @<a href="../../../../../org/apache/shiro/authz/annotation/RequiresRoles.html" title="annotation in org.apache.shiro.authz.annotation"><code>RequiresRoles</code></a> annotation is declared, and if so, performs
 a role check to see if the calling <code>Subject</code> is allowed to proceed.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>class&nbsp;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/shiro/authz/aop/UserAnnotationHandler.html" title="class in org.apache.shiro.authz.aop">UserAnnotationHandler</a></strong></code>
<div class="block">Checks to see if a @<a href="../../../../../org/apache/shiro/authz/annotation/RequiresUser.html" title="annotation in org.apache.shiro.authz.annotation"><code>RequiresUser</code></a> annotation
 is declared, and if so, ensures the calling <code>Subject</code> is <em>either</em>
 <a href="../../../../../org/apache/shiro/subject/Subject.html#isAuthenticated()"><code>authenticated</code></a> <b><em>or</em></b> remembered via remember
 me services before allowing access.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</li>
</ul>
</div>
<!-- ======= 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><a href="../../../../../org/apache/shiro/aop/AnnotationHandler.html" title="class in org.apache.shiro.aop">Class</a></li>
<li class="navBarCell1Rev">Use</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>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/shiro/aop/class-use/AnnotationHandler.html" target="_top">Frames</a></li>
<li><a href="AnnotationHandler.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>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2004-2016 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</small></p>
</body>
</html>
