public int onDoStartTag() throws JspException {
        if (getSubject() == null || getSubject().getPrincipal() == null) {
            if (LOGGER.isTraceEnabled()) {
                LOGGER.trace("Subject does not exist or does not have a known identity (aka 'principal').  "
                        + "Tag body will be evaluated.");
            }
            return TagSupport.EVAL_BODY_INCLUDE;
        } else {
            if (LOGGER.isTraceEnabled()) {
                LOGGER.trace("Subject exists or has a known identity (aka 'principal').  "
                        + " Tag body will not be evaluated.");
            }
            return TagSupport.SKIP_BODY;
        }
    }
JSP tag that renders the tag body if the current user <em>is not</em> known to the system, either because they
haven't logged in yet, or because they have no 'RememberMe' identity.

<p>The logically opposite tag of this one is the {@link UserTag}.  Please read that class's JavaDoc as it explains
more about the differences between Authenticated/Unauthenticated and User/Guest semantic differences.

@since 0.9
web/src/main/java/org/apache/shiro/web/tags/GuestTag.java