<!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;</a>
<span class="sourceLineNo">020</span><a id="line.20"></a>
<span class="sourceLineNo">021</span><a id="line.21">import java.io.Serializable;</a>
<span class="sourceLineNo">022</span><a id="line.22">import java.util.Collection;</a>
<span class="sourceLineNo">023</span><a id="line.23"></a>
<span class="sourceLineNo">024</span><a id="line.24">/**</a>
<span class="sourceLineNo">025</span><a id="line.25"> * &lt;code&gt;AuthorizationInfo&lt;/code&gt; represents a single Subject's stored authorization data (roles, permissions, etc)</a>
<span class="sourceLineNo">026</span><a id="line.26"> * used during authorization (access control) checks only.</a>
<span class="sourceLineNo">027</span><a id="line.27"> * &lt;p/&gt;</a>
<span class="sourceLineNo">028</span><a id="line.28"> * Roles are represented as a &lt;code&gt;Collection&lt;/code&gt; of Strings</a>
<span class="sourceLineNo">029</span><a id="line.29"> * ({@link java.util.Collection Collection}&lt;{@link String String}&gt;), typically each element being the Role name.</a>
<span class="sourceLineNo">030</span><a id="line.30"> * &lt;p/&gt;</a>
<span class="sourceLineNo">031</span><a id="line.31"> * {@link Permission Permission}s are provided in two ways:</a>
<span class="sourceLineNo">032</span><a id="line.32"> * &lt;ul&gt;</a>
<span class="sourceLineNo">033</span><a id="line.33"> * &lt;li&gt;A &lt;code&gt;Collection&lt;/code&gt; of Strings, where each String can usually be converted into &lt;code&gt;Permission&lt;/code&gt;</a>
<span class="sourceLineNo">034</span><a id="line.34"> * objects by a &lt;code&gt;Realm&lt;/code&gt;'s</a>
<span class="sourceLineNo">035</span><a id="line.35"> * {@link org.apache.shiro.authz.permission.PermissionResolver PermissionResolver}&lt;/li&gt;</a>
<span class="sourceLineNo">036</span><a id="line.36"> * &lt;li&gt;A &lt;code&gt;Collection&lt;/code&gt; of {@link Permission Permission} objects&lt;/li&gt;</a>
<span class="sourceLineNo">037</span><a id="line.37"> * &lt;/ul&gt;</a>
<span class="sourceLineNo">038</span><a id="line.38"> * Both permission collections together represent the total aggregate collection of permissions.  You may use one</a>
<span class="sourceLineNo">039</span><a id="line.39"> * or both depending on your preference and needs.</a>
<span class="sourceLineNo">040</span><a id="line.40"> * &lt;p/&gt;</a>
<span class="sourceLineNo">041</span><a id="line.41"> * Because the act of authorization (access control) is orthogonal to authentication (log-in), this interface is</a>
<span class="sourceLineNo">042</span><a id="line.42"> * intended to represent only the account data needed by Shiro during an access control check</a>
<span class="sourceLineNo">043</span><a id="line.43"> * (role, permission, etc).  Shiro also has a parallel</a>
<span class="sourceLineNo">044</span><a id="line.44"> * {@link org.apache.shiro.authc.AuthenticationInfo AuthenticationInfo} interface for use during the authentication</a>
<span class="sourceLineNo">045</span><a id="line.45"> * process that represents identity data such as principals and credentials.</a>
<span class="sourceLineNo">046</span><a id="line.46"> * &lt;p/&gt;</a>
<span class="sourceLineNo">047</span><a id="line.47"> * Because many if not most {@link org.apache.shiro.realm.Realm Realm}s store both sets of data for a Subject, it might be</a>
<span class="sourceLineNo">048</span><a id="line.48"> * convenient for a &lt;code&gt;Realm&lt;/code&gt; implementation to utilize an implementation of the</a>
<span class="sourceLineNo">049</span><a id="line.49"> * {@link org.apache.shiro.authc.Account Account} interface instead, which is a convenience interface that combines both</a>
<span class="sourceLineNo">050</span><a id="line.50"> * &lt;code&gt;AuthenticationInfo&lt;/code&gt; and &lt;code&gt;AuthorizationInfo&lt;/code&gt;.  Whether you choose to implement these two</a>
<span class="sourceLineNo">051</span><a id="line.51"> * interfaces separately or implement the one &lt;code&gt;Account&lt;/code&gt; interface for a given &lt;code&gt;Realm&lt;/code&gt; is</a>
<span class="sourceLineNo">052</span><a id="line.52"> * entirely based on your application's needs or your preferences.</a>
<span class="sourceLineNo">053</span><a id="line.53"> *</a>
<span class="sourceLineNo">054</span><a id="line.54"> * @see org.apache.shiro.authc.AuthenticationInfo AuthenticationInfo</a>
<span class="sourceLineNo">055</span><a id="line.55"> * @see org.apache.shiro.authc.Account</a>
<span class="sourceLineNo">056</span><a id="line.56"> * @since 0.9</a>
<span class="sourceLineNo">057</span><a id="line.57"> */</a>
<span class="sourceLineNo">058</span><a id="line.58">public interface AuthorizationInfo extends Serializable {</a>
<span class="sourceLineNo">059</span><a id="line.59"></a>
<span class="sourceLineNo">060</span><a id="line.60">    /**</a>
<span class="sourceLineNo">061</span><a id="line.61">     * Returns the names of all roles assigned to a corresponding Subject.</a>
<span class="sourceLineNo">062</span><a id="line.62">     *</a>
<span class="sourceLineNo">063</span><a id="line.63">     * @return the names of all roles assigned to a corresponding Subject.</a>
<span class="sourceLineNo">064</span><a id="line.64">     */</a>
<span class="sourceLineNo">065</span><a id="line.65">    Collection&lt;String&gt; getRoles();</a>
<span class="sourceLineNo">066</span><a id="line.66"></a>
<span class="sourceLineNo">067</span><a id="line.67">    /**</a>
<span class="sourceLineNo">068</span><a id="line.68">     * Returns all string-based permissions assigned to the corresponding Subject.  The permissions here plus those</a>
<span class="sourceLineNo">069</span><a id="line.69">     * returned from {@link #getObjectPermissions() getObjectPermissions()} represent the total set of permissions</a>
<span class="sourceLineNo">070</span><a id="line.70">     * assigned.  The aggregate set is used to perform a permission authorization check.</a>
<span class="sourceLineNo">071</span><a id="line.71">     * &lt;p/&gt;</a>
<span class="sourceLineNo">072</span><a id="line.72">     * This method is a convenience mechanism that allows Realms to represent permissions as Strings if they choose.</a>
<span class="sourceLineNo">073</span><a id="line.73">     * When performing a security check, a &lt;code&gt;Realm&lt;/code&gt; usually converts these strings to object</a>
<span class="sourceLineNo">074</span><a id="line.74">     * {@link Permission Permission}s via an internal</a>
<span class="sourceLineNo">075</span><a id="line.75">     * {@link org.apache.shiro.authz.permission.PermissionResolver PermissionResolver}</a>
<span class="sourceLineNo">076</span><a id="line.76">     * in order to perform the actual permission check.  This is not a requirement of course, since &lt;code&gt;Realm&lt;/code&gt;s</a>
<span class="sourceLineNo">077</span><a id="line.77">     * can perform security checks in whatever manner deemed necessary, but this explains the conversion mechanism that</a>
<span class="sourceLineNo">078</span><a id="line.78">     * most Shiro Realms execute for string-based permission checks.</a>
<span class="sourceLineNo">079</span><a id="line.79">     *</a>
<span class="sourceLineNo">080</span><a id="line.80">     * @return all string-based permissions assigned to the corresponding Subject.</a>
<span class="sourceLineNo">081</span><a id="line.81">     */</a>
<span class="sourceLineNo">082</span><a id="line.82">    Collection&lt;String&gt; getStringPermissions();</a>
<span class="sourceLineNo">083</span><a id="line.83"></a>
<span class="sourceLineNo">084</span><a id="line.84">    /**</a>
<span class="sourceLineNo">085</span><a id="line.85">     * Returns all type-safe {@link Permission Permission}s assigned to the corresponding Subject.  The permissions</a>
<span class="sourceLineNo">086</span><a id="line.86">     * returned from this method plus any returned from {@link #getStringPermissions() getStringPermissions()}</a>
<span class="sourceLineNo">087</span><a id="line.87">     * represent the total set of permissions.  The aggregate set is used to perform a permission authorization check.</a>
<span class="sourceLineNo">088</span><a id="line.88">     *</a>
<span class="sourceLineNo">089</span><a id="line.89">     * @return all type-safe {@link Permission Permission}s assigned to the corresponding Subject.</a>
<span class="sourceLineNo">090</span><a id="line.90">     */</a>
<span class="sourceLineNo">091</span><a id="line.91">    Collection&lt;Permission&gt; getObjectPermissions();</a>
<span class="sourceLineNo">092</span><a id="line.92">}</a>




























































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