blob: 91abe5df9f795d8f34bc32b3484d3efb6a3d6c89 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_65) on Fri Mar 04 17:58:56 EST 2016 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
DelegatingSubject (Apache Shiro 1.2.4 API)
</TITLE>
<META NAME="date" CONTENT="2016-03-04">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="DelegatingSubject (Apache Shiro 1.2.4 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/DelegatingSubject.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/apache/shiro/subject/support/DefaultSubjectContext.html" title="class in org.apache.shiro.subject.support"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/shiro/subject/support/DisabledSessionException.html" title="class in org.apache.shiro.subject.support"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/apache/shiro/subject/support/DelegatingSubject.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="DelegatingSubject.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.shiro.subject.support</FONT>
<BR>
Class DelegatingSubject</H2>
<PRE>
<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>
<IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.shiro.subject.support.DelegatingSubject</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../../org/apache/shiro/web/subject/support/WebDelegatingSubject.html" title="class in org.apache.shiro.web.subject.support">WebDelegatingSubject</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.71"><B>DelegatingSubject</B></A><DT>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><DT>implements <A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></DL>
</PRE>
<P>
Implementation of the <code>Subject</code> interface that delegates
method calls to an underlying <A HREF="../../../../../org/apache/shiro/mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt"><CODE>SecurityManager</CODE></A> instance for security checks.
It is essentially a <code>SecurityManager</code> proxy.
<p/>
This implementation does not maintain state such as roles and permissions (only <code>Subject</code>
<A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#getPrincipals()"><CODE>principals</CODE></A>, such as usernames or user primary keys) for better performance in a stateless
architecture. It instead asks the underlying <code>SecurityManager</code> every time to perform
the authorization check.
<p/>
A common misconception in using this implementation is that an EIS resource (RDBMS, etc) would
be &quot;hit&quot; every time a method is called. This is not necessarily the case and is
up to the implementation of the underlying <code>SecurityManager</code> instance. If caching of authorization
data is desired (to eliminate EIS round trips and therefore improve database performance), it is considered
much more elegant to let the underlying <code>SecurityManager</code> implementation or its delegate components
manage caching, not this class. A <code>SecurityManager</code> is considered a business-tier component,
where caching strategies are better managed.
<p/>
Applications from large and clustered to simple and JVM-local all benefit from
stateless architectures. This implementation plays a part in the stateless programming
paradigm and should be used whenever possible.
<P>
<P>
<DL>
<DT><B>Since:</B></DT>
<DD>0.1</DD>
</DL>
<HR>
<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->
<A NAME="nested_class_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Nested Class Summary</B></FONT></TH>
</TR>
</TABLE>
&nbsp;<A NAME="nested_classes_inherited_from_class_org.apache.shiro.subject.Subject"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Nested classes/interfaces inherited from interface org.apache.shiro.subject.<A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.Builder.html" title="class in org.apache.shiro.subject">Subject.Builder</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#authenticated">authenticated</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &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></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#host">host</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/shiro/subject/PrincipalCollection.html" title="interface in org.apache.shiro.subject">PrincipalCollection</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#principals">principals</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/shiro/mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#securityManager">securityManager</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#session">session</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#sessionCreationEnabled">sessionCreationEnabled</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#DelegatingSubject(org.apache.shiro.subject.PrincipalCollection, boolean, java.lang.String, org.apache.shiro.session.Session, boolean, org.apache.shiro.mgt.SecurityManager)">DelegatingSubject</A></B>(<A HREF="../../../../../org/apache/shiro/subject/PrincipalCollection.html" title="interface in org.apache.shiro.subject">PrincipalCollection</A>&nbsp;principals,
boolean&nbsp;authenticated,
<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;host,
<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session,
boolean&nbsp;sessionCreationEnabled,
<A HREF="../../../../../org/apache/shiro/mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</A>&nbsp;securityManager)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#DelegatingSubject(org.apache.shiro.subject.PrincipalCollection, boolean, java.lang.String, org.apache.shiro.session.Session, org.apache.shiro.mgt.SecurityManager)">DelegatingSubject</A></B>(<A HREF="../../../../../org/apache/shiro/subject/PrincipalCollection.html" title="interface in org.apache.shiro.subject">PrincipalCollection</A>&nbsp;principals,
boolean&nbsp;authenticated,
<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;host,
<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session,
<A HREF="../../../../../org/apache/shiro/mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</A>&nbsp;securityManager)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#DelegatingSubject(org.apache.shiro.mgt.SecurityManager)">DelegatingSubject</A></B>(<A HREF="../../../../../org/apache/shiro/mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</A>&nbsp;securityManager)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#assertAuthzCheckPossible()">assertAuthzCheckPossible</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;V&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</A>&lt;V&gt;</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#associateWith(java.util.concurrent.Callable)">associateWith</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</A>&lt;V&gt;&nbsp;callable)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a <code>Callable</code> instance matching the given argument while additionally ensuring that it will
retain and execute under this Subject's identity.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#associateWith(java.lang.Runnable)">associateWith</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>&nbsp;runnable)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a <code>Runnable</code> instance matching the given argument while additionally ensuring that it will
retain and execute under this Subject's identity.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#checkPermission(org.apache.shiro.authz.Permission)">checkPermission</A></B>(<A HREF="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz">Permission</A>&nbsp;permission)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ensures this Subject <A HREF="../../../../../org/apache/shiro/authz/Permission.html#implies(org.apache.shiro.authz.Permission)"><CODE>implies</CODE></A> the specified <code>Permission</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#checkPermission(java.lang.String)">checkPermission</A></B>(<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;permission)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ensures this Subject implies the specified permission String.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#checkPermissions(java.util.Collection)">checkPermissions</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz">Permission</A>&gt;&nbsp;permissions)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ensures this Subject
<A HREF="../../../../../org/apache/shiro/authz/Permission.html#implies(org.apache.shiro.authz.Permission)"><CODE>implies</CODE></A> all of the
specified permission strings.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#checkPermissions(java.lang.String...)">checkPermissions</A></B>(<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;permissions)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ensures this Subject
<A HREF="../../../../../org/apache/shiro/authz/Permission.html#implies(org.apache.shiro.authz.Permission)"><CODE>implies</CODE></A> all of the
specified permission strings.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#checkRole(java.lang.String)">checkRole</A></B>(<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;role)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Asserts this Subject has the specified role by returning quietly if they do or throwing an
<A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz"><CODE>AuthorizationException</CODE></A> if they do not.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#checkRoles(java.util.Collection)">checkRoles</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</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;&nbsp;roles)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Asserts this Subject has all of the specified roles by returning quietly if they do or throwing an
<A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz"><CODE>AuthorizationException</CODE></A> if they do not.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#checkRoles(java.lang.String...)">checkRoles</A></B>(<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;roleIdentifiers)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as <CODE>checkRoles(Collection<String> roleIdentifiers)</CODE> but
doesn't require a collection as a an argument.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/shiro/session/mgt/SessionContext.html" title="interface in org.apache.shiro.session.mgt">SessionContext</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#createSessionContext()">createSessionContext</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#decorate(org.apache.shiro.session.Session)">decorate</A></B>(<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;V&gt; V</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#execute(java.util.concurrent.Callable)">execute</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</A>&lt;V&gt;&nbsp;callable)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Associates the specified <code>Callable</code> with this <code>Subject</code> instance and then executes it on the
currently running thread.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#execute(java.lang.Runnable)">execute</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>&nbsp;runnable)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Associates the specified <code>Runnable</code> with this <code>Subject</code> instance and then executes it on the
currently running thread.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&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></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#getHost()">getHost</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the host name or IP associated with the client who created/is interacting with this Subject.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/shiro/subject/PrincipalCollection.html" title="interface in org.apache.shiro.subject">PrincipalCollection</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#getPreviousPrincipals()">getPreviousPrincipals</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the previous 'pre run as' identity of this <code>Subject</code> before assuming the current
<A HREF="../../../../../org/apache/shiro/subject/Subject.html#runAs(org.apache.shiro.subject.PrincipalCollection)"><CODE>runAs</CODE></A> identity, or <code>null</code> if this <code>Subject</code> is not operating under an assumed
identity (normal state).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<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></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#getPrincipal()">getPrincipal</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns this Subject's application-wide uniquely identifying principal, or <code>null</code> if this
Subject is anonymous because it doesn't yet have any associated account data (for example,
if they haven't logged in).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/shiro/subject/PrincipalCollection.html" title="interface in org.apache.shiro.subject">PrincipalCollection</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#getPrincipals()">getPrincipals</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns this Subject's principals (identifying attributes) in the form of a <code>PrincipalCollection</code> or
<code>null</code> if this Subject is anonymous because it doesn't yet have any associated account data (for example,
if they haven't logged in).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/shiro/mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#getSecurityManager()">getSecurityManager</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#getSession()">getSession</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the application <code>Session</code> associated with this Subject.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#getSession(boolean)">getSession</A></B>(boolean&nbsp;create)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the application <code>Session</code> associated with this Subject.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#hasAllRoles(java.util.Collection)">hasAllRoles</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</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;&nbsp;roleIdentifiers)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this Subject has all of the specified roles, <code>false</code> otherwise.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#hasPrincipals()">hasPrincipals</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#hasRole(java.lang.String)">hasRole</A></B>(<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;roleIdentifier)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this Subject has the specified role, <code>false</code> otherwise.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#hasRoles(java.util.List)">hasRoles</A></B>(<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/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;roleIdentifiers)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if this Subject has the specified roles, returning a boolean array indicating
which roles are associated.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#isAuthenticated()">isAuthenticated</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this Subject/user proved their identity <em>during their current session</em>
by providing valid credentials matching those known to the system, <code>false</code> otherwise.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#isPermitted(java.util.List)">isPermitted</A></B>(<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="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz">Permission</A>&gt;&nbsp;permissions)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if this Subject implies the given Permissions and returns a boolean array indicating which permissions
are implied.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#isPermitted(org.apache.shiro.authz.Permission)">isPermitted</A></B>(<A HREF="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz">Permission</A>&nbsp;permission)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this Subject is permitted to perform an action or access a resource summarized by the
specified permission.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#isPermitted(java.lang.String...)">isPermitted</A></B>(<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;permissions)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks if this Subject implies the given permission strings and returns a boolean array indicating which
permissions are implied.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#isPermitted(java.lang.String)">isPermitted</A></B>(<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;permission)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this Subject is permitted to perform an action or access a resource summarized by the
specified permission string.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#isPermittedAll(java.util.Collection)">isPermittedAll</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz">Permission</A>&gt;&nbsp;permissions)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this Subject implies all of the specified permissions, <code>false</code> otherwise.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#isPermittedAll(java.lang.String...)">isPermittedAll</A></B>(<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;permissions)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this Subject implies all of the specified permission strings, <code>false</code> otherwise.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#isRemembered()">isRemembered</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this <code>Subject</code> has an identity (it is not anonymous) and the identity
(aka <A HREF="../../../../../org/apache/shiro/subject/Subject.html#getPrincipals()"><CODE>principals</CODE></A>) is remembered from a successful authentication during a previous
session.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#isRunAs()">isRunAs</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this <code>Subject</code> is 'running as' another identity other than its original one or
<code>false</code> otherwise (normal <code>Subject</code> state).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#isSessionCreationEnabled()">isSessionCreationEnabled</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns <code>true</code> if this Subject is allowed to create sessions, <code>false</code> otherwise.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#login(org.apache.shiro.authc.AuthenticationToken)">login</A></B>(<A HREF="../../../../../org/apache/shiro/authc/AuthenticationToken.html" title="interface in org.apache.shiro.authc">AuthenticationToken</A>&nbsp;token)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs a login attempt for this Subject/user.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#logout()">logout</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Logs out this Subject and invalidates and/or removes any associated entities,
such as a <A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session"><CODE>Session</CODE></A> and authorization data.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../../org/apache/shiro/subject/PrincipalCollection.html" title="interface in org.apache.shiro.subject">PrincipalCollection</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#releaseRunAs()">releaseRunAs</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Releases the current 'run as' (assumed) identity and reverts back to the previous 'pre run as'
identity that existed before <code>#runAs runAs</code> was called.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/shiro/subject/support/DelegatingSubject.html#runAs(org.apache.shiro.subject.PrincipalCollection)">runAs</A></B>(<A HREF="../../../../../org/apache/shiro/subject/PrincipalCollection.html" title="interface in org.apache.shiro.subject">PrincipalCollection</A>&nbsp;principals)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allows this subject to 'run as' or 'assume' another identity indefinitely.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class 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></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><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#equals(java.lang.Object)" title="class or interface in java.lang">equals</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#hashCode()" title="class or interface in java.lang">hashCode</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#toString()" title="class or interface in java.lang">toString</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></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="principals"><!-- --></A><H3>
principals</H3>
<PRE>
protected <A HREF="../../../../../org/apache/shiro/subject/PrincipalCollection.html" title="interface in org.apache.shiro.subject">PrincipalCollection</A> <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.78"><B>principals</B></A></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="authenticated"><!-- --></A><H3>
authenticated</H3>
<PRE>
protected boolean <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.79"><B>authenticated</B></A></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="host"><!-- --></A><H3>
host</H3>
<PRE>
protected <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/subject/support/DelegatingSubject.html#line.80"><B>host</B></A></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="session"><!-- --></A><H3>
session</H3>
<PRE>
protected <A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A> <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.81"><B>session</B></A></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="sessionCreationEnabled"><!-- --></A><H3>
sessionCreationEnabled</H3>
<PRE>
protected boolean <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.85"><B>sessionCreationEnabled</B></A></PRE>
<DL>
<DL>
<DT><B>Since:</B></DT>
<DD>1.2</DD>
</DL>
</DL>
<HR>
<A NAME="securityManager"><!-- --></A><H3>
securityManager</H3>
<PRE>
protected transient <A HREF="../../../../../org/apache/shiro/mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</A> <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.87"><B>securityManager</B></A></PRE>
<DL>
<DL>
</DL>
</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="DelegatingSubject(org.apache.shiro.mgt.SecurityManager)"><!-- --></A><H3>
DelegatingSubject</H3>
<PRE>
public <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.89"><B>DelegatingSubject</B></A>(<A HREF="../../../../../org/apache/shiro/mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</A>&nbsp;securityManager)</PRE>
<DL>
</DL>
<HR>
<A NAME="DelegatingSubject(org.apache.shiro.subject.PrincipalCollection, boolean, java.lang.String, org.apache.shiro.session.Session, org.apache.shiro.mgt.SecurityManager)"><!-- --></A><H3>
DelegatingSubject</H3>
<PRE>
public <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.93"><B>DelegatingSubject</B></A>(<A HREF="../../../../../org/apache/shiro/subject/PrincipalCollection.html" title="interface in org.apache.shiro.subject">PrincipalCollection</A>&nbsp;principals,
boolean&nbsp;authenticated,
<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;host,
<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session,
<A HREF="../../../../../org/apache/shiro/mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</A>&nbsp;securityManager)</PRE>
<DL>
</DL>
<HR>
<A NAME="DelegatingSubject(org.apache.shiro.subject.PrincipalCollection, boolean, java.lang.String, org.apache.shiro.session.Session, boolean, org.apache.shiro.mgt.SecurityManager)"><!-- --></A><H3>
DelegatingSubject</H3>
<PRE>
public <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.99"><B>DelegatingSubject</B></A>(<A HREF="../../../../../org/apache/shiro/subject/PrincipalCollection.html" title="interface in org.apache.shiro.subject">PrincipalCollection</A>&nbsp;principals,
boolean&nbsp;authenticated,
<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;host,
<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session,
boolean&nbsp;sessionCreationEnabled,
<A HREF="../../../../../org/apache/shiro/mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</A>&nbsp;securityManager)</PRE>
<DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="decorate(org.apache.shiro.session.Session)"><!-- --></A><H3>
decorate</H3>
<PRE>
protected <A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A> <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.114"><B>decorate</B></A>(<A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A>&nbsp;session)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getSecurityManager()"><!-- --></A><H3>
getSecurityManager</H3>
<PRE>
public <A HREF="../../../../../org/apache/shiro/mgt/SecurityManager.html" title="interface in org.apache.shiro.mgt">SecurityManager</A> <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.121"><B>getSecurityManager</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="hasPrincipals()"><!-- --></A><H3>
hasPrincipals</H3>
<PRE>
protected boolean <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.125"><B>hasPrincipals</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getHost()"><!-- --></A><H3>
getHost</H3>
<PRE>
public <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/subject/support/DelegatingSubject.html#line.134"><B>getHost</B></A>()</PRE>
<DL>
<DD>Returns the host name or IP associated with the client who created/is interacting with this Subject.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the host name or IP associated with the client who created/is interacting with this Subject.</DL>
</DD>
</DL>
<HR>
<A NAME="getPrincipal()"><!-- --></A><H3>
getPrincipal</H3>
<PRE>
public <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> <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.148"><B>getPrincipal</B></A>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#getPrincipal()">Subject</A></CODE></B></DD>
<DD>Returns this Subject's application-wide uniquely identifying principal, or <code>null</code> if this
Subject is anonymous because it doesn't yet have any associated account data (for example,
if they haven't logged in).
<p/>
The term <em>principal</em> is just a fancy security term for any identifying attribute(s) of an application
user, such as a username, or user id, or public key, or anything else you might use in your application to
identify a user.
<h4>Uniqueness</h4>
Although given names and family names (first/last) are technically considered principals as well,
Shiro expects the object returned from this method to be an identifying attribute unique across
your entire application.
<p/>
This implies that things like given names and family names are usually poor
candidates as return values since they are rarely guaranteed to be unique; Things often used for this value:
<ul>
<li>A <code>long</code> RDBMS surrogate primary key</li>
<li>An application-unique username</li>
<li>A <A HREF="http://java.sun.com/javase/6/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util"><CODE>UUID</CODE></A></li>
<li>An LDAP Unique ID</li>
</ul>
or any other similar suitable unique mechanism valuable to your application.
<p/>
Most implementations will simply return
<code><A HREF="../../../../../org/apache/shiro/subject/Subject.html#getPrincipals()"><CODE>Subject.getPrincipals()</CODE></A>.<A HREF="../../../../../org/apache/shiro/subject/PrincipalCollection.html#getPrimaryPrincipal()"><CODE>getPrimaryPrincipal()</CODE></A></code>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#getPrincipal()">getPrincipal</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>this Subject's application-specific unique identity.<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/shiro/subject/Subject.html#getPrincipal()"><CODE>Subject.getPrincipal()</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getPrincipals()"><!-- --></A><H3>
getPrincipals</H3>
<PRE>
public <A HREF="../../../../../org/apache/shiro/subject/PrincipalCollection.html" title="interface in org.apache.shiro.subject">PrincipalCollection</A> <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.152"><B>getPrincipals</B></A>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#getPrincipals()">Subject</A></CODE></B></DD>
<DD>Returns this Subject's principals (identifying attributes) in the form of a <code>PrincipalCollection</code> or
<code>null</code> if this Subject is anonymous because it doesn't yet have any associated account data (for example,
if they haven't logged in).
<p/>
The word &quot;principals&quot; is nothing more than a fancy security term for identifying attributes associated
with a Subject, aka, application user. For example, user id, a surname (family/last name), given (first) name,
social security number, nickname, username, etc, are all examples of a principal.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#getPrincipals()">getPrincipals</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>all of this Subject's principals (identifying attributes).<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/shiro/subject/Subject.html#getPrincipal()"><CODE>Subject.getPrincipal()</CODE></A>,
<A HREF="../../../../../org/apache/shiro/subject/PrincipalCollection.html#getPrimaryPrincipal()"><CODE>PrincipalCollection.getPrimaryPrincipal()</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="isPermitted(java.lang.String)"><!-- --></A><H3>
isPermitted</H3>
<PRE>
public boolean <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.157"><B>isPermitted</B></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;permission)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isPermitted(java.lang.String)">Subject</A></CODE></B></DD>
<DD>Returns <code>true</code> if this Subject is permitted to perform an action or access a resource summarized by the
specified permission string.
<p/>
This is an overloaded method for the corresponding type-safe <A HREF="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz"><CODE>Permission</CODE></A> variant.
Please see the class-level JavaDoc for more information on these String-based permission methods.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isPermitted(java.lang.String)">isPermitted</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>permission</CODE> - the String representation of a Permission that is being checked.
<DT><B>Returns:</B><DD>true if this Subject is permitted, false otherwise.<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isPermitted(org.apache.shiro.authz.Permission)"><CODE>Subject.isPermitted(Permission permission)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="isPermitted(org.apache.shiro.authz.Permission)"><!-- --></A><H3>
isPermitted</H3>
<PRE>
public boolean <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.161"><B>isPermitted</B></A>(<A HREF="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz">Permission</A>&nbsp;permission)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isPermitted(org.apache.shiro.authz.Permission)">Subject</A></CODE></B></DD>
<DD>Returns <code>true</code> if this Subject is permitted to perform an action or access a resource summarized by the
specified permission.
<p/>
More specifically, this method determines if any <code>Permission</code>s associated
with the subject <A HREF="../../../../../org/apache/shiro/authz/Permission.html#implies(org.apache.shiro.authz.Permission)"><CODE>imply</CODE></A> the specified permission.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isPermitted(org.apache.shiro.authz.Permission)">isPermitted</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>permission</CODE> - the permission that is being checked.
<DT><B>Returns:</B><DD>true if this Subject is permitted, false otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="isPermitted(java.lang.String...)"><!-- --></A><H3>
isPermitted</H3>
<PRE>
public boolean[] <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.165"><B>isPermitted</B></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;permissions)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isPermitted(java.lang.String...)">Subject</A></CODE></B></DD>
<DD>Checks if this Subject implies the given permission strings and returns a boolean array indicating which
permissions are implied.
<p/>
This is an overloaded method for the corresponding type-safe <A HREF="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz"><CODE>Permission</CODE></A> variant.
Please see the class-level JavaDoc for more information on these String-based permission methods.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isPermitted(java.lang.String...)">isPermitted</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>permissions</CODE> - the String representations of the Permissions that are being checked.
<DT><B>Returns:</B><DD>a boolean array where indices correspond to the index of the
permissions in the given list. A true value at an index indicates this Subject is permitted for
for the associated <code>Permission</code> string in the list. A false value at an index
indicates otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="isPermitted(java.util.List)"><!-- --></A><H3>
isPermitted</H3>
<PRE>
public boolean[] <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.173"><B>isPermitted</B></A>(<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="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz">Permission</A>&gt;&nbsp;permissions)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isPermitted(java.util.List)">Subject</A></CODE></B></DD>
<DD>Checks if this Subject implies the given Permissions and returns a boolean array indicating which permissions
are implied.
<p/>
More specifically, this method should determine if each <code>Permission</code> in
the array is <A HREF="../../../../../org/apache/shiro/authz/Permission.html#implies(org.apache.shiro.authz.Permission)"><CODE>implied</CODE></A> by permissions
already associated with the subject.
<p/>
This is primarily a performance-enhancing method to help reduce the number of
<A HREF="../../../../../org/apache/shiro/subject/Subject.html#isPermitted(java.lang.String)"><CODE>Subject.isPermitted(java.lang.String)</CODE></A> invocations over the wire in client/server systems.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isPermitted(java.util.List)">isPermitted</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>permissions</CODE> - the permissions that are being checked.
<DT><B>Returns:</B><DD>a boolean array where indices correspond to the index of the
permissions in the given list. A true value at an index indicates this Subject is permitted for
for the associated <code>Permission</code> object in the list. A false value at an index
indicates otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="isPermittedAll(java.lang.String...)"><!-- --></A><H3>
isPermittedAll</H3>
<PRE>
public boolean <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.181"><B>isPermittedAll</B></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;permissions)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isPermittedAll(java.lang.String...)">Subject</A></CODE></B></DD>
<DD>Returns <code>true</code> if this Subject implies all of the specified permission strings, <code>false</code> otherwise.
<p/>
This is an overloaded method for the corresponding type-safe <A HREF="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz"><CODE>Permission</CODE></A>
variant. Please see the class-level JavaDoc for more information on these String-based permission methods.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isPermittedAll(java.lang.String...)">isPermittedAll</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>permissions</CODE> - the String representations of the Permissions that are being checked.
<DT><B>Returns:</B><DD>true if this Subject has all of the specified permissions, false otherwise.<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isPermittedAll(java.util.Collection)"><CODE>Subject.isPermittedAll(Collection)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="isPermittedAll(java.util.Collection)"><!-- --></A><H3>
isPermittedAll</H3>
<PRE>
public boolean <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.185"><B>isPermittedAll</B></A>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz">Permission</A>&gt;&nbsp;permissions)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isPermittedAll(java.util.Collection)">Subject</A></CODE></B></DD>
<DD>Returns <code>true</code> if this Subject implies all of the specified permissions, <code>false</code> otherwise.
<p/>
More specifically, this method determines if all of the given <code>Permission</code>s are
<A HREF="../../../../../org/apache/shiro/authz/Permission.html#implies(org.apache.shiro.authz.Permission)"><CODE>implied by</CODE></A> permissions already associated with this Subject.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isPermittedAll(java.util.Collection)">isPermittedAll</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>permissions</CODE> - the permissions to check.
<DT><B>Returns:</B><DD>true if this Subject has all of the specified permissions, false otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="assertAuthzCheckPossible()"><!-- --></A><H3>
assertAuthzCheckPossible</H3>
<PRE>
protected void <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.189"><B>assertAuthzCheckPossible</B></A>()
throws <A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="checkPermission(java.lang.String)"><!-- --></A><H3>
checkPermission</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.203"><B>checkPermission</B></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;permission)
throws <A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#checkPermission(java.lang.String)">Subject</A></CODE></B></DD>
<DD>Ensures this Subject implies the specified permission String.
<p/>
If this subject's existing associated permissions do not <A HREF="../../../../../org/apache/shiro/authz/Permission.html#implies(org.apache.shiro.authz.Permission)"><CODE>Permission.implies(Permission)</CODE></A> imply}
the given permission, an <A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz"><CODE>AuthorizationException</CODE></A> will be thrown.
<p/>
This is an overloaded method for the corresponding type-safe <A HREF="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz"><CODE>Permission</CODE></A> variant.
Please see the class-level JavaDoc for more information on these String-based permission methods.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#checkPermission(java.lang.String)">checkPermission</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>permission</CODE> - the String representation of the Permission to check.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></CODE> - if the user does not have the permission.</DL>
</DD>
</DL>
<HR>
<A NAME="checkPermission(org.apache.shiro.authz.Permission)"><!-- --></A><H3>
checkPermission</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.208"><B>checkPermission</B></A>(<A HREF="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz">Permission</A>&nbsp;permission)
throws <A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#checkPermission(org.apache.shiro.authz.Permission)">Subject</A></CODE></B></DD>
<DD>Ensures this Subject <A HREF="../../../../../org/apache/shiro/authz/Permission.html#implies(org.apache.shiro.authz.Permission)"><CODE>implies</CODE></A> the specified <code>Permission</code>.
<p/>
If this subject's existing associated permissions do not <A HREF="../../../../../org/apache/shiro/authz/Permission.html#implies(org.apache.shiro.authz.Permission)"><CODE>imply</CODE></A>
the given permission, an <A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz"><CODE>AuthorizationException</CODE></A> will be thrown.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#checkPermission(org.apache.shiro.authz.Permission)">checkPermission</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>permission</CODE> - the Permission to check.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></CODE> - if this Subject does not have the permission.</DL>
</DD>
</DL>
<HR>
<A NAME="checkPermissions(java.lang.String...)"><!-- --></A><H3>
checkPermissions</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.213"><B>checkPermissions</B></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;permissions)
throws <A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#checkPermissions(java.lang.String...)">Subject</A></CODE></B></DD>
<DD>Ensures this Subject
<A HREF="../../../../../org/apache/shiro/authz/Permission.html#implies(org.apache.shiro.authz.Permission)"><CODE>implies</CODE></A> all of the
specified permission strings.
<p/>
If this subject's existing associated permissions do not
<A HREF="../../../../../org/apache/shiro/authz/Permission.html#implies(org.apache.shiro.authz.Permission)"><CODE>imply</CODE></A> all of the given permissions,
an <A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz"><CODE>AuthorizationException</CODE></A> will be thrown.
<p/>
This is an overloaded method for the corresponding type-safe <A HREF="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz"><CODE>Permission</CODE></A> variant.
Please see the class-level JavaDoc for more information on these String-based permission methods.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#checkPermissions(java.lang.String...)">checkPermissions</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>permissions</CODE> - the string representations of Permissions to check.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></CODE> - if this Subject does not have all of the given permissions.</DL>
</DD>
</DL>
<HR>
<A NAME="checkPermissions(java.util.Collection)"><!-- --></A><H3>
checkPermissions</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.218"><B>checkPermissions</B></A>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&lt;<A HREF="../../../../../org/apache/shiro/authz/Permission.html" title="interface in org.apache.shiro.authz">Permission</A>&gt;&nbsp;permissions)
throws <A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#checkPermissions(java.util.Collection)">Subject</A></CODE></B></DD>
<DD>Ensures this Subject
<A HREF="../../../../../org/apache/shiro/authz/Permission.html#implies(org.apache.shiro.authz.Permission)"><CODE>implies</CODE></A> all of the
specified permission strings.
<p/>
If this subject's existing associated permissions do not
<A HREF="../../../../../org/apache/shiro/authz/Permission.html#implies(org.apache.shiro.authz.Permission)"><CODE>imply</CODE></A> all of the given permissions,
an <A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz"><CODE>AuthorizationException</CODE></A> will be thrown.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#checkPermissions(java.util.Collection)">checkPermissions</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>permissions</CODE> - the Permissions to check.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></CODE> - if this Subject does not have all of the given permissions.</DL>
</DD>
</DL>
<HR>
<A NAME="hasRole(java.lang.String)"><!-- --></A><H3>
hasRole</H3>
<PRE>
public boolean <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.223"><B>hasRole</B></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;roleIdentifier)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#hasRole(java.lang.String)">Subject</A></CODE></B></DD>
<DD>Returns <code>true</code> if this Subject has the specified role, <code>false</code> otherwise.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#hasRole(java.lang.String)">hasRole</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>roleIdentifier</CODE> - the application-specific role identifier (usually a role id or role name).
<DT><B>Returns:</B><DD><code>true</code> if this Subject has the specified role, <code>false</code> otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="hasRoles(java.util.List)"><!-- --></A><H3>
hasRoles</H3>
<PRE>
public boolean[] <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.227"><B>hasRoles</B></A>(<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/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&nbsp;roleIdentifiers)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#hasRoles(java.util.List)">Subject</A></CODE></B></DD>
<DD>Checks if this Subject has the specified roles, returning a boolean array indicating
which roles are associated.
<p/>
This is primarily a performance-enhancing method to help reduce the number of
<A HREF="../../../../../org/apache/shiro/subject/Subject.html#hasRole(java.lang.String)"><CODE>Subject.hasRole(java.lang.String)</CODE></A> invocations over the wire in client/server systems.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#hasRoles(java.util.List)">hasRoles</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>roleIdentifiers</CODE> - the application-specific role identifiers to check (usually role ids or role names).
<DT><B>Returns:</B><DD>a boolean array where indices correspond to the index of the
roles in the given identifiers. A true value indicates this Subject has the
role at that index. False indicates this Subject does not have the role at that index.</DL>
</DD>
</DL>
<HR>
<A NAME="hasAllRoles(java.util.Collection)"><!-- --></A><H3>
hasAllRoles</H3>
<PRE>
public boolean <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.235"><B>hasAllRoles</B></A>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</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;&nbsp;roleIdentifiers)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#hasAllRoles(java.util.Collection)">Subject</A></CODE></B></DD>
<DD>Returns <code>true</code> if this Subject has all of the specified roles, <code>false</code> otherwise.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#hasAllRoles(java.util.Collection)">hasAllRoles</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>roleIdentifiers</CODE> - the application-specific role identifiers to check (usually role ids or role names).
<DT><B>Returns:</B><DD>true if this Subject has all the roles, false otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="checkRole(java.lang.String)"><!-- --></A><H3>
checkRole</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.239"><B>checkRole</B></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;role)
throws <A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#checkRole(java.lang.String)">Subject</A></CODE></B></DD>
<DD>Asserts this Subject has the specified role by returning quietly if they do or throwing an
<A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz"><CODE>AuthorizationException</CODE></A> if they do not.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#checkRole(java.lang.String)">checkRole</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>role</CODE> - the application-specific role identifier (usually a role id or role name ).
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></CODE> - if this Subject does not have the role.</DL>
</DD>
</DL>
<HR>
<A NAME="checkRoles(java.lang.String...)"><!-- --></A><H3>
checkRoles</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.244"><B>checkRoles</B></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;roleIdentifiers)
throws <A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#checkRoles(java.lang.String...)">Subject</A></CODE></B></DD>
<DD>Same as <CODE>checkRoles(Collection<String> roleIdentifiers)</CODE> but
doesn't require a collection as a an argument.
Asserts this Subject has all of the specified roles by returning quietly if they do or throwing an
<A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz"><CODE>AuthorizationException</CODE></A> if they do not.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#checkRoles(java.lang.String...)">checkRoles</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>roleIdentifiers</CODE> - roleIdentifiers the application-specific role identifiers to check (usually role ids or role names).
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></CODE> - org.apache.shiro.authz.AuthorizationException
if this Subject does not have all of the specified roles.</DL>
</DD>
</DL>
<HR>
<A NAME="checkRoles(java.util.Collection)"><!-- --></A><H3>
checkRoles</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.249"><B>checkRoles</B></A>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</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;&nbsp;roles)
throws <A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#checkRoles(java.util.Collection)">Subject</A></CODE></B></DD>
<DD>Asserts this Subject has all of the specified roles by returning quietly if they do or throwing an
<A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz"><CODE>AuthorizationException</CODE></A> if they do not.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#checkRoles(java.util.Collection)">checkRoles</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>roles</CODE> - the application-specific role identifiers to check (usually role ids or role names).
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/shiro/authz/AuthorizationException.html" title="class in org.apache.shiro.authz">AuthorizationException</A></CODE> - if this Subject does not have all of the specified roles.</DL>
</DD>
</DL>
<HR>
<A NAME="login(org.apache.shiro.authc.AuthenticationToken)"><!-- --></A><H3>
login</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.254"><B>login</B></A>(<A HREF="../../../../../org/apache/shiro/authc/AuthenticationToken.html" title="interface in org.apache.shiro.authc">AuthenticationToken</A>&nbsp;token)
throws <A HREF="../../../../../org/apache/shiro/authc/AuthenticationException.html" title="class in org.apache.shiro.authc">AuthenticationException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#login(org.apache.shiro.authc.AuthenticationToken)">Subject</A></CODE></B></DD>
<DD>Performs a login attempt for this Subject/user. If unsuccessful,
an <A HREF="../../../../../org/apache/shiro/authc/AuthenticationException.html" title="class in org.apache.shiro.authc"><CODE>AuthenticationException</CODE></A> is thrown, the subclass of which identifies why the attempt failed.
If successful, the account data associated with the submitted principals/credentials will be
associated with this <code>Subject</code> and the method will return quietly.
<p/>
Upon returning quietly, this <code>Subject</code> instance can be considered
authenticated and <A HREF="../../../../../org/apache/shiro/subject/Subject.html#getPrincipal()"><CODE>getPrincipal()</CODE></A> will be non-null and
<A HREF="../../../../../org/apache/shiro/subject/Subject.html#isAuthenticated()"><CODE>isAuthenticated()</CODE></A> will be <code>true</code>.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#login(org.apache.shiro.authc.AuthenticationToken)">login</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>token</CODE> - the token encapsulating the subject's principals and credentials to be passed to the
Authentication subsystem for verification.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/shiro/authc/AuthenticationException.html" title="class in org.apache.shiro.authc">AuthenticationException</A></CODE> - if the authentication attempt fails.</DL>
</DD>
</DL>
<HR>
<A NAME="isAuthenticated()"><!-- --></A><H3>
isAuthenticated</H3>
<PRE>
public boolean <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.292"><B>isAuthenticated</B></A>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isAuthenticated()">Subject</A></CODE></B></DD>
<DD>Returns <code>true</code> if this Subject/user proved their identity <em>during their current session</em>
by providing valid credentials matching those known to the system, <code>false</code> otherwise.
<p/>
Note that even if this Subject's identity has been remembered via 'remember me' services, this method will
still return <code>false</code> unless the user has actually logged in with proper credentials <em>during their
current session</em>. See the <A HREF="../../../../../org/apache/shiro/subject/Subject.html#isRemembered()"><CODE>isRemembered()</CODE></A> method JavaDoc for more.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isAuthenticated()">isAuthenticated</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD><code>true</code> if this Subject proved their identity during their current session
by providing valid credentials matching those known to the system, <code>false</code> otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="isRemembered()"><!-- --></A><H3>
isRemembered</H3>
<PRE>
public boolean <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.296"><B>isRemembered</B></A>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isRemembered()">Subject</A></CODE></B></DD>
<DD>Returns <code>true</code> if this <code>Subject</code> has an identity (it is not anonymous) and the identity
(aka <A HREF="../../../../../org/apache/shiro/subject/Subject.html#getPrincipals()"><CODE>principals</CODE></A>) is remembered from a successful authentication during a previous
session.
<p/>
Although the underlying implementation determines exactly how this method functions, most implementations have
this method act as the logical equivalent to this code:
<pre>
<A HREF="../../../../../org/apache/shiro/subject/Subject.html#getPrincipal()"><CODE>getPrincipal()</CODE></A> != null && !<A HREF="../../../../../org/apache/shiro/subject/Subject.html#isAuthenticated()"><CODE>isAuthenticated()</CODE></A></pre>
<p/>
Note as indicated by the above code example, if a <code>Subject</code> is remembered, they are
<em>NOT</em> considered authenticated. A check against <A HREF="../../../../../org/apache/shiro/subject/Subject.html#isAuthenticated()"><CODE>isAuthenticated()</CODE></A> is a more
strict check than that reflected by this method. For example, a check to see if a subject can access financial
information should almost always depend on <A HREF="../../../../../org/apache/shiro/subject/Subject.html#isAuthenticated()"><CODE>isAuthenticated()</CODE></A> to <em>guarantee</em> a
verified identity, and not this method.
<p/>
Once the subject is authenticated, they are no longer considered only remembered because their identity would
have been verified during the current session.
<h4>Remembered vs Authenticated</h4>
Authentication is the process of <em>proving</em> you are who you say you are. When a user is only remembered,
the remembered identity gives the system an idea who that user probably is, but in reality, has no way of
absolutely <em>guaranteeing</em> if the remembered <code>Subject</code> represents the user currently
using the application.
<p/>
So although many parts of the application can still perform user-specific logic based on the remembered
<A HREF="../../../../../org/apache/shiro/subject/Subject.html#getPrincipals()"><CODE>principals</CODE></A>, such as customized views, it should never perform highly-sensitive
operations until the user has legitimately verified their identity by executing a successful authentication
attempt.
<p/>
We see this paradigm all over the web, and we will use <a href="http://www.amazon.com">Amazon.com</a> as an
example:
<p/>
When you visit Amazon.com and perform a login and ask it to 'remember me', it will set a cookie with your
identity. If you don't log out and your session expires, and you come back, say the next day, Amazon still knows
who you <em>probably</em> are: you still see all of your book and movie recommendations and similar user-specific
features since these are based on your (remembered) user id.
<p/>
BUT, if you try to do something sensitive, such as access your account's billing data, Amazon forces you
to do an actual log-in, requiring your username and password.
<p/>
This is because although amazon.com assumed your identity from 'remember me', it recognized that you were not
actually authenticated. The only way to really guarantee you are who you say you are, and therefore allow you
access to sensitive account data, is to force you to perform an actual successful authentication. You can
check this guarantee via the <A HREF="../../../../../org/apache/shiro/subject/Subject.html#isAuthenticated()"><CODE>isAuthenticated()</CODE></A> method and not via this method.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isRemembered()">isRemembered</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD><code>true</code> if this <code>Subject</code>'s identity (aka <A HREF="../../../../../org/apache/shiro/subject/Subject.html#getPrincipals()"><CODE>principals</CODE></A>) is
remembered from a successful authentication during a previous session, <code>false</code> otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="isSessionCreationEnabled()"><!-- --></A><H3>
isSessionCreationEnabled</H3>
<PRE>
protected boolean <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.307"><B>isSessionCreationEnabled</B></A>()</PRE>
<DL>
<DD>Returns <code>true</code> if this Subject is allowed to create sessions, <code>false</code> otherwise.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD><code>true</code> if this Subject is allowed to create sessions, <code>false</code> otherwise.<DT><B>Since:</B></DT>
<DD>1.2</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="getSession()"><!-- --></A><H3>
getSession</H3>
<PRE>
public <A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A> <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.311"><B>getSession</B></A>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#getSession()">Subject</A></CODE></B></DD>
<DD>Returns the application <code>Session</code> associated with this Subject. If no session exists when this
method is called, a new session will be created, associated with this Subject, and then returned.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#getSession()">getSession</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the application <code>Session</code> associated with this Subject.<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/shiro/subject/Subject.html#getSession(boolean)"><CODE>Subject.getSession(boolean)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getSession(boolean)"><!-- --></A><H3>
getSession</H3>
<PRE>
public <A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session">Session</A> <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.315"><B>getSession</B></A>(boolean&nbsp;create)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#getSession(boolean)">Subject</A></CODE></B></DD>
<DD>Returns the application <code>Session</code> associated with this Subject. Based on the boolean argument,
this method functions as follows:
<ul>
<li>If there is already an existing session associated with this <code>Subject</code>, it is returned and
the <code>create</code> argument is ignored.</li>
<li>If no session exists and <code>create</code> is <code>true</code>, a new session will be created, associated with
this <code>Subject</code> and then returned.</li>
<li>If no session exists and <code>create</code> is <code>false</code>, <code>null</code> is returned.</li>
</ul>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#getSession(boolean)">getSession</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>create</CODE> - boolean argument determining if a new session should be created or not if there is no existing session.
<DT><B>Returns:</B><DD>the application <code>Session</code> associated with this <code>Subject</code> or <code>null</code> based
on the above described logic.</DL>
</DD>
</DL>
<HR>
<A NAME="createSessionContext()"><!-- --></A><H3>
createSessionContext</H3>
<PRE>
protected <A HREF="../../../../../org/apache/shiro/session/mgt/SessionContext.html" title="interface in org.apache.shiro.session.mgt">SessionContext</A> <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.342"><B>createSessionContext</B></A>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="logout()"><!-- --></A><H3>
logout</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.360"><B>logout</B></A>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#logout()">Subject</A></CODE></B></DD>
<DD>Logs out this Subject and invalidates and/or removes any associated entities,
such as a <A HREF="../../../../../org/apache/shiro/session/Session.html" title="interface in org.apache.shiro.session"><CODE>Session</CODE></A> and authorization data. After this method is called, the Subject is
considered 'anonymous' and may continue to be used for another log-in if desired.
<h3>Web Environment Warning</h3>
Calling this method in web environments will usually remove any associated session cookie as part of
session invalidation. Because cookies are part of the HTTP header, and headers can only be set before the
response body (html, image, etc) is sent, this method in web environments must be called before <em>any</em>
content has been rendered.
<p/>
The typical approach most applications use in this scenario is to redirect the user to a different
location (e.g. home page) immediately after calling this method. This is an effect of the HTTP protocol
itself and not a reflection of Shiro's implementation.
<p/>
Non-HTTP environments may of course use a logged-out subject for login again if desired.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#logout()">logout</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="execute(java.util.concurrent.Callable)"><!-- --></A><H3>
execute</H3>
<PRE>
public &lt;V&gt; V <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.380"><B>execute</B></A>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</A>&lt;V&gt;&nbsp;callable)
throws <A HREF="../../../../../org/apache/shiro/subject/ExecutionException.html" title="class in org.apache.shiro.subject">ExecutionException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#execute(java.util.concurrent.Callable)">Subject</A></CODE></B></DD>
<DD>Associates the specified <code>Callable</code> with this <code>Subject</code> instance and then executes it on the
currently running thread. If you want to execute the <code>Callable</code> on a different thread, it is better to
use the <A HREF="../../../../../org/apache/shiro/subject/Subject.html#associateWith(java.util.concurrent.Callable)"><CODE>Subject.associateWith(Callable)</CODE></A> method instead.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#execute(java.util.concurrent.Callable)">execute</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>V</CODE> - the type of return value the <code>Callable</code> will return<DT><B>Parameters:</B><DD><CODE>callable</CODE> - the Callable to associate with this subject and then execute.
<DT><B>Returns:</B><DD>the resulting object returned by the <code>Callable</code>'s execution.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../org/apache/shiro/subject/ExecutionException.html" title="class in org.apache.shiro.subject">ExecutionException</A></CODE> - if the <code>Callable</code>'s <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Callable.html?is-external=true#call()" title="class or interface in java.util.concurrent"><CODE>call</CODE></A> method throws an exception.</DL>
</DD>
</DL>
<HR>
<A NAME="execute(java.lang.Runnable)"><!-- --></A><H3>
execute</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.389"><B>execute</B></A>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>&nbsp;runnable)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#execute(java.lang.Runnable)">Subject</A></CODE></B></DD>
<DD>Associates the specified <code>Runnable</code> with this <code>Subject</code> instance and then executes it on the
currently running thread. If you want to execute the <code>Runnable</code> on a different thread, it is better to
use the <A HREF="../../../../../org/apache/shiro/subject/Subject.html#associateWith(java.lang.Runnable)"><CODE>Subject.associateWith(Runnable)</CODE></A> method instead.
<p/>
<b>Note</b>: This method is primarily provided to execute existing/legacy Runnable implementations. It is better
for new code to use <A HREF="../../../../../org/apache/shiro/subject/Subject.html#execute(java.util.concurrent.Callable)"><CODE>Subject.execute(Callable)</CODE></A> since that supports the ability to return values and catch
exceptions.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#execute(java.lang.Runnable)">execute</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>runnable</CODE> - the <code>Runnable</code> to associate with this <code>Subject</code> and then execute.</DL>
</DD>
</DL>
<HR>
<A NAME="associateWith(java.util.concurrent.Callable)"><!-- --></A><H3>
associateWith</H3>
<PRE>
public &lt;V&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</A>&lt;V&gt; <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.394"><B>associateWith</B></A>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</A>&lt;V&gt;&nbsp;callable)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#associateWith(java.util.concurrent.Callable)">Subject</A></CODE></B></DD>
<DD>Returns a <code>Callable</code> instance matching the given argument while additionally ensuring that it will
retain and execute under this Subject's identity. The returned object can be used with an
<A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent"><CODE>ExecutorService</CODE></A> to execute as this Subject.
<p/>
This will effectively ensure that any calls to
<code>SecurityUtils</code>.<A HREF="../../../../../org/apache/shiro/SecurityUtils.html#getSubject()"><CODE>getSubject()</CODE></A> and related functionality will continue
to function properly on any thread that executes the returned <code>Callable</code> instance.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#associateWith(java.util.concurrent.Callable)">associateWith</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>V</CODE> - the <code>Callable</code>s return value type<DT><B>Parameters:</B><DD><CODE>callable</CODE> - the callable to execute as this <code>Subject</code>
<DT><B>Returns:</B><DD>a <code>Callable</code> that can be run as this <code>Subject</code>.</DL>
</DD>
</DL>
<HR>
<A NAME="associateWith(java.lang.Runnable)"><!-- --></A><H3>
associateWith</H3>
<PRE>
public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A> <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.398"><B>associateWith</B></A>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</A>&nbsp;runnable)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#associateWith(java.lang.Runnable)">Subject</A></CODE></B></DD>
<DD>Returns a <code>Runnable</code> instance matching the given argument while additionally ensuring that it will
retain and execute under this Subject's identity. The returned object can be used with an
<A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Executor.html?is-external=true" title="class or interface in java.util.concurrent"><CODE>Executor</CODE></A> or another thread to execute as this Subject.
<p/>
This will effectively ensure that any calls to
<code>SecurityUtils</code>.<A HREF="../../../../../org/apache/shiro/SecurityUtils.html#getSubject()"><CODE>getSubject()</CODE></A> and related functionality will continue
to function properly on any thread that executes the returned <code>Runnable</code> instance.
<p/>
*Note that if you need a return value to be returned as a result of the runnable's execution or if you need to
react to any Exceptions, it is highly recommended to use the
<A HREF="../../../../../org/apache/shiro/subject/Subject.html#associateWith(java.util.concurrent.Callable)"><CODE>createCallable</CODE></A> method instead of this one.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#associateWith(java.lang.Runnable)">associateWith</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>runnable</CODE> - the runnable to execute as this <code>Subject</code>
<DT><B>Returns:</B><DD>a <code>Runnable</code> that can be run as this <code>Subject</code> on another thread.<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/shiro/subject/Subject.html#associateWith(java.util.concurrent.Callable)"><CODE>(java.util.concurrent.Callable)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="runAs(org.apache.shiro.subject.PrincipalCollection)"><!-- --></A><H3>
runAs</H3>
<PRE>
public void <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.429"><B>runAs</B></A>(<A HREF="../../../../../org/apache/shiro/subject/PrincipalCollection.html" title="interface in org.apache.shiro.subject">PrincipalCollection</A>&nbsp;principals)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#runAs(org.apache.shiro.subject.PrincipalCollection)">Subject</A></CODE></B></DD>
<DD>Allows this subject to 'run as' or 'assume' another identity indefinitely. This can only be
called when the <code>Subject</code> instance already has an identity (i.e. they are remembered from a previous
log-in or they have authenticated during their current session).
<p/>
Some notes about <code>runAs</code>:
<ul>
<li>You can tell if a <code>Subject</code> is 'running as' another identity by calling the
<A HREF="../../../../../org/apache/shiro/subject/Subject.html#isRunAs()"><CODE>isRunAs()</CODE></A> method.</li>
<li>If running as another identity, you can determine what the previous 'pre run as' identity
was by calling the <A HREF="../../../../../org/apache/shiro/subject/Subject.html#getPreviousPrincipals()"><CODE>getPreviousPrincipals()</CODE></A> method.</li>
<li>When you want a <code>Subject</code> to stop running as another identity, you can return to its previous
'pre run as' identity by calling the <A HREF="../../../../../org/apache/shiro/subject/Subject.html#releaseRunAs()"><CODE>releaseRunAs()</CODE></A> method.</li>
</ul>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#runAs(org.apache.shiro.subject.PrincipalCollection)">runAs</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>principals</CODE> - the identity to 'run as', aka the identity to <em>assume</em> indefinitely.</DL>
</DD>
</DL>
<HR>
<A NAME="isRunAs()"><!-- --></A><H3>
isRunAs</H3>
<PRE>
public boolean <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.440"><B>isRunAs</B></A>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isRunAs()">Subject</A></CODE></B></DD>
<DD>Returns <code>true</code> if this <code>Subject</code> is 'running as' another identity other than its original one or
<code>false</code> otherwise (normal <code>Subject</code> state). See the <A HREF="../../../../../org/apache/shiro/subject/Subject.html#runAs(org.apache.shiro.subject.PrincipalCollection)"><CODE>runAs</CODE></A> method for more
information.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#isRunAs()">isRunAs</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD><code>true</code> if this <code>Subject</code> is 'running as' another identity other than its original one or
<code>false</code> otherwise (normal <code>Subject</code> state).<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/shiro/subject/Subject.html#runAs(org.apache.shiro.subject.PrincipalCollection)"><CODE>Subject.runAs(org.apache.shiro.subject.PrincipalCollection)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getPreviousPrincipals()"><!-- --></A><H3>
getPreviousPrincipals</H3>
<PRE>
public <A HREF="../../../../../org/apache/shiro/subject/PrincipalCollection.html" title="interface in org.apache.shiro.subject">PrincipalCollection</A> <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.445"><B>getPreviousPrincipals</B></A>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#getPreviousPrincipals()">Subject</A></CODE></B></DD>
<DD>Returns the previous 'pre run as' identity of this <code>Subject</code> before assuming the current
<A HREF="../../../../../org/apache/shiro/subject/Subject.html#runAs(org.apache.shiro.subject.PrincipalCollection)"><CODE>runAs</CODE></A> identity, or <code>null</code> if this <code>Subject</code> is not operating under an assumed
identity (normal state). See the <A HREF="../../../../../org/apache/shiro/subject/Subject.html#runAs(org.apache.shiro.subject.PrincipalCollection)"><CODE>runAs</CODE></A> method for more information.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#getPreviousPrincipals()">getPreviousPrincipals</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the previous 'pre run as' identity of this <code>Subject</code> before assuming the current
<A HREF="../../../../../org/apache/shiro/subject/Subject.html#runAs(org.apache.shiro.subject.PrincipalCollection)"><CODE>runAs</CODE></A> identity, or <code>null</code> if this <code>Subject</code> is not operating under an assumed
identity (normal state).<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/shiro/subject/Subject.html#runAs(org.apache.shiro.subject.PrincipalCollection)"><CODE>Subject.runAs(org.apache.shiro.subject.PrincipalCollection)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="releaseRunAs()"><!-- --></A><H3>
releaseRunAs</H3>
<PRE>
public <A HREF="../../../../../org/apache/shiro/subject/PrincipalCollection.html" title="interface in org.apache.shiro.subject">PrincipalCollection</A> <A HREF="../../../../../src-html/org/apache/shiro/subject/support/DelegatingSubject.html#line.461"><B>releaseRunAs</B></A>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#releaseRunAs()">Subject</A></CODE></B></DD>
<DD>Releases the current 'run as' (assumed) identity and reverts back to the previous 'pre run as'
identity that existed before <code>#runAs runAs</code> was called.
<p/>
This method returne 'run as' (assumed) identity being released or <code>null</code> if this <code>Subject</code> is not
operating under an assumed identity.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html#releaseRunAs()">releaseRunAs</A></CODE> in interface <CODE><A HREF="../../../../../org/apache/shiro/subject/Subject.html" title="interface in org.apache.shiro.subject">Subject</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the 'run as' (assumed) identity being released or <code>null</code> if this <code>Subject</code> is not operating
under an assumed identity.<DT><B>See Also:</B><DD><A HREF="../../../../../org/apache/shiro/subject/Subject.html#runAs(org.apache.shiro.subject.PrincipalCollection)"><CODE>Subject.runAs(org.apache.shiro.subject.PrincipalCollection)</CODE></A></DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/DelegatingSubject.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../org/apache/shiro/subject/support/DefaultSubjectContext.html" title="class in org.apache.shiro.subject.support"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../org/apache/shiro/subject/support/DisabledSessionException.html" title="class in org.apache.shiro.subject.support"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../index.html?org/apache/shiro/subject/support/DelegatingSubject.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="DelegatingSubject.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2004-2016 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>