def do_create_subject(self, subject_context):
        """
        By the time this method is invoked, all possible
        ``SubjectContext`` data (session, identifiers, et. al.) has been made
        accessible using all known heuristics.

        :returns: a Subject instance reflecting the data in the specified
                  SubjectContext data map
        """
        if not isinstance(subject_context, web_subject_abcs.WebSubjectContext):
            return super().do_create_subject(subject_context=subject_context)

        security_manager = subject_context.resolve_security_manager()
        session = subject_context.resolve_session()
        session_creation_enabled = subject_context.session_creation_enabled

        # passing the session arg is new to yosai, eliminating redunant
        # get_session calls:
        identifiers = subject_context.resolve_identifiers(session)
        authenticated = subject_context.resolve_authenticated(session)
        host = subject_context.resolve_host(session)

        # must run after resolve_identifiers:
        remembered = getattr(subject_context, 'remembered', None)

        return WebDelegatingSubject(identifiers=identifiers,
                                    remembered=remembered,
                                    authenticated=authenticated,
                                    host=host,
                                    session=session,
                                    session_creation_enabled=session_creation_enabled,
                                    security_manager=security_manager,
                                    web_registry=subject_context.web_registry)
By the time this method is invoked, all possible
        ``SubjectContext`` data (session, identifiers, et. al.) has been made
        accessible using all known heuristics.

        :returns: a Subject instance reflecting the data in the specified
                  SubjectContext data map