A {@code SubjectDAO} is responsible for persisting a Subject instance's internal state such that the Subject instance can be recreated at a later time if necessary. <p/> Shiro's default {@code SecurityManager} implementations typically use a {@code SubjectDAO} in conjunction with a {@link SubjectFactory}: after the {@code SubjectFactory} creates a {@code Subject} instance, the {@code SubjectDAO} is used to persist that subject's state such that it can be accessed later if necessary. <h3>Usage</h3> It should be noted that this component is used by {@code SecurityManager} implementations to manage Subject state persistence. It does <em>not</em> make Subject instances accessible to the application (e.g. via {@link hunt.shiro.SecurityUtils#getSubject() SecurityUtils.getSubject()}).