This implementation functions as follows:
<p/>
<ol>
<li>Ensures the {@code SubjectContext} is as populated as it can be, using heuristics to acquire
data that may not have already been available to it (such as a referenced session or remembered principals).</li>
<li>Calls {@link #doCreateSubject(hunt.shiro.subject.SubjectContext)} to actually perform the
{@code Subject} instance creation.</li>
<li>calls {@link #save(hunt.shiro.subject.Subject) save(subject)} to ensure the constructed
{@code Subject}'s state is accessible for future requests/invocations if necessary.</li>
<li>returns the constructed {@code Subject} instance.</li>
</ol>
@param subjectContext any data needed to direct how the Subject should be constructed.
@return the {@code Subject} instance reflecting the specified contextual data.
@see #ensureSecurityManager(hunt.shiro.subject.SubjectContext)
@see #resolveSession(hunt.shiro.subject.SubjectContext)
@see #resolvePrincipals(hunt.shiro.subject.SubjectContext)
@see #doCreateSubject(hunt.shiro.subject.SubjectContext)
@see #save(hunt.shiro.subject.Subject)
This implementation functions as follows: <p/> <ol> <li>Ensures the {@code SubjectContext} is as populated as it can be, using heuristics to acquire data that may not have already been available to it (such as a referenced session or remembered principals).</li> <li>Calls {@link #doCreateSubject(hunt.shiro.subject.SubjectContext)} to actually perform the {@code Subject} instance creation.</li> <li>calls {@link #save(hunt.shiro.subject.Subject) save(subject)} to ensure the constructed {@code Subject}'s state is accessible for future requests/invocations if necessary.</li> <li>returns the constructed {@code Subject} instance.</li> </ol>
@param subjectContext any data needed to direct how the Subject should be constructed. @return the {@code Subject} instance reflecting the specified contextual data. @see #ensureSecurityManager(hunt.shiro.subject.SubjectContext) @see #resolveSession(hunt.shiro.subject.SubjectContext) @see #resolvePrincipals(hunt.shiro.subject.SubjectContext) @see #doCreateSubject(hunt.shiro.subject.SubjectContext) @see #save(hunt.shiro.subject.Subject)