protected void stopSession(Subject subject) {
        Session s = subject.getSession(false);
        if (s != null) {
            s.stop();
        }
    }
Attempts to resolve an identity (a {@link PrincipalCollection}) for the context using heuristics.  This
implementation functions as follows:
<ol>
<li>Check the context to see if it can already {@link SubjectContext#resolvePrincipals resolve an identity}.  If
so, this method does nothing and returns the method argument unaltered.</li>
<li>Check for a RememberMe identity by calling {@link #getRememberedIdentity}.  If that method returns a
non-null value, place the remembered {@link PrincipalCollection} in the context.</li>
</ol>

@param context the subject context data that may provide (directly or indirectly through one of its values) a
               {@link PrincipalCollection} identity.
@return The Subject context to use to pass to a {@link SubjectFactory} for subject creation.
@since 1.0
core/src/main/java/org/apache/shiro/mgt/DefaultSecurityManager.java