docs: def create_manager(self, yosai, settings, session_attributes):
          """
          Order of execution matters.  The sac must be set before the cache_handler is
          instantiated so that the cache_handler's serialization manager instance
          registers the sac.
          """
          mgr_settings = SecurityManagerSettings(settings)
          attributes = mgr_settings.attributes
  
          realms = self._init_realms(settings, attributes['realms'])
  
          session_attributes = self._init_session_attributes(session_attributes, attributes)
  
          serialization_manager =\
              SerializationManager(session_attributes,
                                   serializer_scheme=attributes['serializer'])
  
          # the cache_handler doesn't initialize a cache_realm until it gets
          # a serialization manager, which is assigned within the SecurityManager
          cache_handler = self._init_cache_handler(settings,
                                                   attributes['cache_handler'],
                                                   serialization_manager)
  
          manager = mgr_settings.security_manager(yosai,
                                                  settings,
                                                  realms=realms,
                                                  cache_handler=cache_handler,
                                                  serialization_manager=serialization_manager)
  
          return manager