A {@code ConnectionSubjectFactory} creates a {@code Subject} instance that represents the connection client's identity.
Most implementations will simply use the {@link Subject.Builder Subject.Builder} to create an anonymous{@code Subject} instance and let a downstream {@link org.apache.activemq.shiro.authc.AuthenticationFilter} authenticate the {@code Subject} based onany credentials associated with the connection. After authentication, the {@code Subject} will have an identity, andthis is the expected flow for most connection clients.
However, if there is some other data associated with the connection that can be inspected to create a {@code Subject} instance beyond what the {@link DefaultConnectionSubjectFactory} provides, this interface allows thatlogic to be plugged in as necessary.
@see DefaultConnectionSubjectFactory
@since 5.10.0