<!DOCTYPE HTML>
<html lang="en">
<head>
<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
</head>
<body>
<main role="main">
<div class="sourceContainer">
<pre><span class="sourceLineNo">001</span><a id="line.1">/*</a>
<span class="sourceLineNo">002</span><a id="line.2"> * Licensed to the Apache Software Foundation (ASF) under one</a>
<span class="sourceLineNo">003</span><a id="line.3"> * or more contributor license agreements.  See the NOTICE file</a>
<span class="sourceLineNo">004</span><a id="line.4"> * distributed with this work for additional information</a>
<span class="sourceLineNo">005</span><a id="line.5"> * regarding copyright ownership.  The ASF licenses this file</a>
<span class="sourceLineNo">006</span><a id="line.6"> * to you under the Apache License, Version 2.0 (the</a>
<span class="sourceLineNo">007</span><a id="line.7"> * "License"); you may not use this file except in compliance</a>
<span class="sourceLineNo">008</span><a id="line.8"> * with the License.  You may obtain a copy of the License at</a>
<span class="sourceLineNo">009</span><a id="line.9"> *</a>
<span class="sourceLineNo">010</span><a id="line.10"> *     http://www.apache.org/licenses/LICENSE-2.0</a>
<span class="sourceLineNo">011</span><a id="line.11"> *</a>
<span class="sourceLineNo">012</span><a id="line.12"> * Unless required by applicable law or agreed to in writing,</a>
<span class="sourceLineNo">013</span><a id="line.13"> * software distributed under the License is distributed on an</a>
<span class="sourceLineNo">014</span><a id="line.14"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</a>
<span class="sourceLineNo">015</span><a id="line.15"> * KIND, either express or implied.  See the License for the</a>
<span class="sourceLineNo">016</span><a id="line.16"> * specific language governing permissions and limitations</a>
<span class="sourceLineNo">017</span><a id="line.17"> * under the License.</a>
<span class="sourceLineNo">018</span><a id="line.18"> */</a>
<span class="sourceLineNo">019</span><a id="line.19">package org.apache.shiro.authz.aop;</a>
<span class="sourceLineNo">020</span><a id="line.20"></a>
<span class="sourceLineNo">021</span><a id="line.21">import java.lang.annotation.Annotation;</a>
<span class="sourceLineNo">022</span><a id="line.22"></a>
<span class="sourceLineNo">023</span><a id="line.23">import org.apache.shiro.aop.AnnotationHandler;</a>
<span class="sourceLineNo">024</span><a id="line.24">import org.apache.shiro.authz.AuthorizationException;</a>
<span class="sourceLineNo">025</span><a id="line.25"></a>
<span class="sourceLineNo">026</span><a id="line.26">/**</a>
<span class="sourceLineNo">027</span><a id="line.27"> * An AnnotationHandler that executes authorization (access control) behavior based on directive(s) found in a</a>
<span class="sourceLineNo">028</span><a id="line.28"> * JSR-175 Annotation.</a>
<span class="sourceLineNo">029</span><a id="line.29"> *</a>
<span class="sourceLineNo">030</span><a id="line.30"> * @since 0.9.0</a>
<span class="sourceLineNo">031</span><a id="line.31"> */</a>
<span class="sourceLineNo">032</span><a id="line.32">public abstract class AuthorizingAnnotationHandler extends AnnotationHandler {</a>
<span class="sourceLineNo">033</span><a id="line.33"></a>
<span class="sourceLineNo">034</span><a id="line.34">    /**</a>
<span class="sourceLineNo">035</span><a id="line.35">     * Constructs an &lt;code&gt;AuthorizingAnnotationHandler&lt;/code&gt; who processes annotations of the</a>
<span class="sourceLineNo">036</span><a id="line.36">     * specified type.  Immediately calls &lt;code&gt;super(annotationClass)&lt;/code&gt;.</a>
<span class="sourceLineNo">037</span><a id="line.37">     *</a>
<span class="sourceLineNo">038</span><a id="line.38">     * @param annotationClass the type of annotation this handler will process.</a>
<span class="sourceLineNo">039</span><a id="line.39">     */</a>
<span class="sourceLineNo">040</span><a id="line.40">    public AuthorizingAnnotationHandler(Class&lt;? extends Annotation&gt; annotationClass) {</a>
<span class="sourceLineNo">041</span><a id="line.41">        super(annotationClass);</a>
<span class="sourceLineNo">042</span><a id="line.42">    }</a>
<span class="sourceLineNo">043</span><a id="line.43"></a>
<span class="sourceLineNo">044</span><a id="line.44">    /**</a>
<span class="sourceLineNo">045</span><a id="line.45">     * Ensures the calling Subject is authorized to execute based on the directive(s) found in the given</a>
<span class="sourceLineNo">046</span><a id="line.46">     * annotation.</a>
<span class="sourceLineNo">047</span><a id="line.47">     * &lt;p/&gt;</a>
<span class="sourceLineNo">048</span><a id="line.48">     * As this is an AnnotationMethodInterceptor, the implementations of this method typically inspect the annotation</a>
<span class="sourceLineNo">049</span><a id="line.49">     * and perform a corresponding authorization check based.</a>
<span class="sourceLineNo">050</span><a id="line.50">     *</a>
<span class="sourceLineNo">051</span><a id="line.51">     * @param a the &lt;code&gt;Annotation&lt;/code&gt; to check for performing an authorization check.</a>
<span class="sourceLineNo">052</span><a id="line.52">     * @throws org.apache.shiro.authz.AuthorizationException if the class/instance/method is not allowed to proceed/execute.</a>
<span class="sourceLineNo">053</span><a id="line.53">     */</a>
<span class="sourceLineNo">054</span><a id="line.54">    public abstract void assertAuthorized(Annotation a) throws AuthorizationException;</a>
<span class="sourceLineNo">055</span><a id="line.55">}</a>




























































</pre>
</div>
</main>
</body>
</html>
