<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<div class="sourceContainer">
<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
<span class="sourceLineNo">009</span> *<a name="line.9"></a>
<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
<span class="sourceLineNo">011</span> *<a name="line.11"></a>
<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing,<a name="line.12"></a>
<span class="sourceLineNo">013</span> * software distributed under the License is distributed on an<a name="line.13"></a>
<span class="sourceLineNo">014</span> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY<a name="line.14"></a>
<span class="sourceLineNo">015</span> * KIND, either express or implied.  See the License for the<a name="line.15"></a>
<span class="sourceLineNo">016</span> * specific language governing permissions and limitations<a name="line.16"></a>
<span class="sourceLineNo">017</span> * under the License.<a name="line.17"></a>
<span class="sourceLineNo">018</span> */<a name="line.18"></a>
<span class="sourceLineNo">019</span>package org.apache.shiro.mgt;<a name="line.19"></a>
<span class="sourceLineNo">020</span><a name="line.20"></a>
<span class="sourceLineNo">021</span>import org.apache.shiro.authc.AuthenticationException;<a name="line.21"></a>
<span class="sourceLineNo">022</span>import org.apache.shiro.authc.AuthenticationToken;<a name="line.22"></a>
<span class="sourceLineNo">023</span>import org.apache.shiro.authc.Authenticator;<a name="line.23"></a>
<span class="sourceLineNo">024</span>import org.apache.shiro.authz.Authorizer;<a name="line.24"></a>
<span class="sourceLineNo">025</span>import org.apache.shiro.session.mgt.SessionManager;<a name="line.25"></a>
<span class="sourceLineNo">026</span>import org.apache.shiro.subject.Subject;<a name="line.26"></a>
<span class="sourceLineNo">027</span>import org.apache.shiro.subject.SubjectContext;<a name="line.27"></a>
<span class="sourceLineNo">028</span><a name="line.28"></a>
<span class="sourceLineNo">029</span><a name="line.29"></a>
<span class="sourceLineNo">030</span>/**<a name="line.30"></a>
<span class="sourceLineNo">031</span> * A {@code SecurityManager} executes all security operations for &lt;em&gt;all&lt;/em&gt; Subjects (aka users) across a<a name="line.31"></a>
<span class="sourceLineNo">032</span> * single application.<a name="line.32"></a>
<span class="sourceLineNo">033</span> * &lt;p/&gt;<a name="line.33"></a>
<span class="sourceLineNo">034</span> * The interface itself primarily exists as a convenience - it extends the {@link org.apache.shiro.authc.Authenticator},<a name="line.34"></a>
<span class="sourceLineNo">035</span> * {@link Authorizer}, and {@link SessionManager} interfaces, thereby consolidating<a name="line.35"></a>
<span class="sourceLineNo">036</span> * these behaviors into a single point of reference.  For most Shiro usages, this simplifies configuration and<a name="line.36"></a>
<span class="sourceLineNo">037</span> * tends to be a more convenient approach than referencing {@code Authenticator}, {@code Authorizer}, and<a name="line.37"></a>
<span class="sourceLineNo">038</span> * {@code SessionManager} instances separately;  instead one only needs to interact with a single<a name="line.38"></a>
<span class="sourceLineNo">039</span> * {@code SecurityManager} instance.<a name="line.39"></a>
<span class="sourceLineNo">040</span> * &lt;p/&gt;<a name="line.40"></a>
<span class="sourceLineNo">041</span> * In addition to the above three interfaces, this interface provides a number of methods supporting<a name="line.41"></a>
<span class="sourceLineNo">042</span> * {@link Subject} behavior. A {@link org.apache.shiro.subject.Subject Subject} executes<a name="line.42"></a>
<span class="sourceLineNo">043</span> * authentication, authorization, and session operations for a &lt;em&gt;single&lt;/em&gt; user, and as such can only be<a name="line.43"></a>
<span class="sourceLineNo">044</span> * managed by {@code A SecurityManager} which is aware of all three functions.  The three parent interfaces on the<a name="line.44"></a>
<span class="sourceLineNo">045</span> * other hand do not 'know' about {@code Subject}s to ensure a clean separation of concerns.<a name="line.45"></a>
<span class="sourceLineNo">046</span> * &lt;p/&gt;<a name="line.46"></a>
<span class="sourceLineNo">047</span> * &lt;b&gt;Usage Note&lt;/b&gt;: In actuality the large majority of application programmers won't interact with a SecurityManager<a name="line.47"></a>
<span class="sourceLineNo">048</span> * very often, if at all.  &lt;em&gt;Most&lt;/em&gt; application programmers only care about security operations for the currently<a name="line.48"></a>
<span class="sourceLineNo">049</span> * executing user, usually attained by calling<a name="line.49"></a>
<span class="sourceLineNo">050</span> * {@link org.apache.shiro.SecurityUtils#getSubject() SecurityUtils.getSubject()}.<a name="line.50"></a>
<span class="sourceLineNo">051</span> * &lt;p/&gt;<a name="line.51"></a>
<span class="sourceLineNo">052</span> * Framework developers on the other hand might find working with an actual SecurityManager useful.<a name="line.52"></a>
<span class="sourceLineNo">053</span> *<a name="line.53"></a>
<span class="sourceLineNo">054</span> * @see org.apache.shiro.mgt.DefaultSecurityManager<a name="line.54"></a>
<span class="sourceLineNo">055</span> * @since 0.2<a name="line.55"></a>
<span class="sourceLineNo">056</span> */<a name="line.56"></a>
<span class="sourceLineNo">057</span>public interface SecurityManager extends Authenticator, Authorizer, SessionManager {<a name="line.57"></a>
<span class="sourceLineNo">058</span><a name="line.58"></a>
<span class="sourceLineNo">059</span>    /**<a name="line.59"></a>
<span class="sourceLineNo">060</span>     * Logs in the specified Subject using the given {@code authenticationToken}, returning an updated Subject<a name="line.60"></a>
<span class="sourceLineNo">061</span>     * instance reflecting the authenticated state if successful or throwing {@code AuthenticationException} if it is<a name="line.61"></a>
<span class="sourceLineNo">062</span>     * not.<a name="line.62"></a>
<span class="sourceLineNo">063</span>     * &lt;p/&gt;<a name="line.63"></a>
<span class="sourceLineNo">064</span>     * Note that most application developers should probably not call this method directly unless they have a good<a name="line.64"></a>
<span class="sourceLineNo">065</span>     * reason for doing so.  The preferred way to log in a Subject is to call<a name="line.65"></a>
<span class="sourceLineNo">066</span>     * &lt;code&gt;subject.{@link org.apache.shiro.subject.Subject#login login(authenticationToken)}&lt;/code&gt; (usually after<a name="line.66"></a>
<span class="sourceLineNo">067</span>     * acquiring the Subject by calling {@link org.apache.shiro.SecurityUtils#getSubject() SecurityUtils.getSubject()}).<a name="line.67"></a>
<span class="sourceLineNo">068</span>     * &lt;p/&gt;<a name="line.68"></a>
<span class="sourceLineNo">069</span>     * Framework developers on the other hand might find calling this method directly useful in certain cases.<a name="line.69"></a>
<span class="sourceLineNo">070</span>     *<a name="line.70"></a>
<span class="sourceLineNo">071</span>     * @param subject             the subject against which the authentication attempt will occur<a name="line.71"></a>
<span class="sourceLineNo">072</span>     * @param authenticationToken the token representing the Subject's principal(s) and credential(s)<a name="line.72"></a>
<span class="sourceLineNo">073</span>     * @return the subject instance reflecting the authenticated state after a successful attempt<a name="line.73"></a>
<span class="sourceLineNo">074</span>     * @throws AuthenticationException if the login attempt failed.<a name="line.74"></a>
<span class="sourceLineNo">075</span>     * @since 1.0<a name="line.75"></a>
<span class="sourceLineNo">076</span>     */<a name="line.76"></a>
<span class="sourceLineNo">077</span>    Subject login(Subject subject, AuthenticationToken authenticationToken) throws AuthenticationException;<a name="line.77"></a>
<span class="sourceLineNo">078</span><a name="line.78"></a>
<span class="sourceLineNo">079</span>    /**<a name="line.79"></a>
<span class="sourceLineNo">080</span>     * Logs out the specified Subject from the system.<a name="line.80"></a>
<span class="sourceLineNo">081</span>     * &lt;p/&gt;<a name="line.81"></a>
<span class="sourceLineNo">082</span>     * Note that most application developers should not call this method unless they have a good reason for doing<a name="line.82"></a>
<span class="sourceLineNo">083</span>     * so.  The preferred way to logout a Subject is to call<a name="line.83"></a>
<span class="sourceLineNo">084</span>     * &lt;code&gt;{@link org.apache.shiro.subject.Subject#logout Subject.logout()}&lt;/code&gt;, not the<a name="line.84"></a>
<span class="sourceLineNo">085</span>     * {@code SecurityManager} directly.<a name="line.85"></a>
<span class="sourceLineNo">086</span>     * &lt;p/&gt;<a name="line.86"></a>
<span class="sourceLineNo">087</span>     * Framework developers on the other hand might find calling this method directly useful in certain cases.<a name="line.87"></a>
<span class="sourceLineNo">088</span>     *<a name="line.88"></a>
<span class="sourceLineNo">089</span>     * @param subject the subject to log out.<a name="line.89"></a>
<span class="sourceLineNo">090</span>     * @since 1.0<a name="line.90"></a>
<span class="sourceLineNo">091</span>     */<a name="line.91"></a>
<span class="sourceLineNo">092</span>    void logout(Subject subject);<a name="line.92"></a>
<span class="sourceLineNo">093</span><a name="line.93"></a>
<span class="sourceLineNo">094</span>    /**<a name="line.94"></a>
<span class="sourceLineNo">095</span>     * Creates a {@code Subject} instance reflecting the specified contextual data.<a name="line.95"></a>
<span class="sourceLineNo">096</span>     * &lt;p/&gt;<a name="line.96"></a>
<span class="sourceLineNo">097</span>     * The context can be anything needed by this {@code SecurityManager} to construct a {@code Subject} instance.<a name="line.97"></a>
<span class="sourceLineNo">098</span>     * Most Shiro end-users will never call this method - it exists primarily for<a name="line.98"></a>
<span class="sourceLineNo">099</span>     * framework development and to support any underlying custom {@link SubjectFactory SubjectFactory} implementations<a name="line.99"></a>
<span class="sourceLineNo">100</span>     * that may be used by the {@code SecurityManager}.<a name="line.100"></a>
<span class="sourceLineNo">101</span>     * &lt;h4&gt;Usage&lt;/h4&gt;<a name="line.101"></a>
<span class="sourceLineNo">102</span>     * After calling this method, the returned instance is &lt;em&gt;not&lt;/em&gt; bound to the application for further use.<a name="line.102"></a>
<span class="sourceLineNo">103</span>     * Callers are expected to know that {@code Subject} instances have local scope only and any<a name="line.103"></a>
<span class="sourceLineNo">104</span>     * other further use beyond the calling method must be managed explicitly.<a name="line.104"></a>
<span class="sourceLineNo">105</span>     *<a name="line.105"></a>
<span class="sourceLineNo">106</span>     * @param context any data needed to direct how the Subject should be constructed.<a name="line.106"></a>
<span class="sourceLineNo">107</span>     * @return the {@code Subject} instance reflecting the specified initialization data.<a name="line.107"></a>
<span class="sourceLineNo">108</span>     * @see SubjectFactory#createSubject(SubjectContext)<a name="line.108"></a>
<span class="sourceLineNo">109</span>     * @see Subject.Builder<a name="line.109"></a>
<span class="sourceLineNo">110</span>     * @since 1.0<a name="line.110"></a>
<span class="sourceLineNo">111</span>     */<a name="line.111"></a>
<span class="sourceLineNo">112</span>    Subject createSubject(SubjectContext context);<a name="line.112"></a>
<span class="sourceLineNo">113</span><a name="line.113"></a>
<span class="sourceLineNo">114</span>}<a name="line.114"></a>




























































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