Example #1
0
        public CommunicationsLocal(
            ConfigSettings configSettings,
            NetworkServersInfo serversInfo,
            BaseHttpServer httpServer,
            IAssetCache assetCache,
            LibraryRootFolder libraryRootFolder)
            : base(serversInfo, httpServer, assetCache, libraryRootFolder)
        {
            PluginLoader <IInventoryStoragePlugin> loader = new PluginLoader <IInventoryStoragePlugin>();

            loader.Add("/OpenSim/InventoryStorage", new PluginProviderFilter(configSettings.InventoryPlugin));
            loader.Load();

            loader.Plugin.Initialize(configSettings);


            LocalUserServices lus
                = new LocalUserServices(
                      serversInfo.DefaultHomeLocX, serversInfo.DefaultHomeLocY, this);

            //lus.AddPlugin(new TemporaryUserProfilePlugin());
            lus.AddPlugin(configSettings.StandaloneUserPlugin, configSettings.StandaloneUserSource);
            m_userService      = lus;
            m_userAdminService = lus;
            m_avatarService    = lus;
            m_messageService   = lus;

            m_gridService = new LocalBackEndServices();
        }
        public CommunicationsOGS1(
            NetworkServersInfo serversInfo, BaseHttpServer httpServer,
            IAssetCache assetCache, LibraryRootFolder libraryRootFolder)
            : base(serversInfo, httpServer, assetCache, false, libraryRootFolder)
        {
            OGS1GridServices gridInterComms = new OGS1GridServices(serversInfo, httpServer);

            m_gridService = gridInterComms;

            if (serversInfo.secureInventoryServer)
            {
                OGS1SecureInventoryService invService = new OGS1SecureInventoryService(serversInfo.InventoryURL);
                AddSecureInventoryService(invService);
                m_defaultInventoryHost = invService.Host;
            }
            else
            {
                OGS1InventoryService invService = new OGS1InventoryService(serversInfo.InventoryURL);
                AddInventoryService(invService);
                m_defaultInventoryHost = invService.Host;
            }

            // This plugin arrangement could eventually be configurable rather than hardcoded here.
            OGS1UserServices userServices = new OGS1UserServices(this);

            userServices.AddPlugin(new TemporaryUserProfilePlugin());
            userServices.AddPlugin(new OGS1UserDataPlugin(this));

            m_userService    = userServices;
            m_messageService = userServices;
            m_avatarService  = (IAvatarService)m_userService;
        }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="serversInfo"></param>
 /// <param name="httpServer"></param>
 /// <param name="assetCache"></param>
 /// <param name="dumpAssetsToFile"></param>
 public CommunicationsManager(NetworkServersInfo serversInfo, IHttpServer httpServer, IAssetCache assetCache,
     bool dumpAssetsToFile, LibraryRootFolder libraryRootFolder)
 {
     m_networkServersInfo = serversInfo;
     m_userProfileCacheService = new UserProfileCacheService(this, libraryRootFolder);
     m_httpServer = httpServer;
 }
        public CommunicationsOGS1(
            NetworkServersInfo serversInfo, BaseHttpServer httpServer,
            IAssetCache assetCache, LibraryRootFolder libraryRootFolder,
            ConfigSettings configSettings)
            : base(serversInfo, httpServer, assetCache, libraryRootFolder)
        {
            OGS1GridServices gridInterComms = new OGS1GridServices(serversInfo, httpServer);

            m_gridService = gridInterComms;

            // This plugin arrangement could eventually be configurable rather than hardcoded here.
            OGS1UserServices userServices = new OGS1UserServices(this);

            //userServices.AddPlugin(new TemporaryUserProfilePlugin());
            userServices.AddPlugin(new OGS1UserDataPlugin(this, configSettings));

            m_userService    = userServices;
            m_messageService = userServices;
            m_avatarService  = (IAvatarService)m_userService;

            PluginLoader <IInventoryStoragePlugin> loader = new PluginLoader <IInventoryStoragePlugin>();

            loader.Add("/OpenSim/InventoryStorage", new PluginProviderFilter(configSettings.InventoryPlugin));
            loader.Load();

            loader.Plugin.Initialize(configSettings);
        }
        protected void InitializeCommsManager(OpenSimBase openSim)
        {
            LibraryRootFolder libraryRootFolder = new LibraryRootFolder(m_openSim.ConfigurationSettings.LibrariesXMLFile, m_openSim.ConfigurationSettings.LibraryName);

            InitializeStandardServices(libraryRootFolder);

            openSim.CommunicationsManager = m_commsManager;
        }
        /// <summary>
        /// Initializes the backend services for standalone mode, and registers some http handlers
        /// </summary>
        /// <param name="libraryRootFolder"></param>
        protected virtual void InitializeStandaloneServices(LibraryRootFolder libraryRootFolder)
        {
            m_commsManager
                = new CommunicationsLocal(
                      m_openSim.ConfigurationSettings, m_openSim.NetServersInfo,
                      m_httpServer, m_openSim.AssetCache, libraryRootFolder);

            CreateGridInfoService();
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="serversInfo"></param>
        /// <param name="httpServer"></param>
        /// <param name="assetCache"></param>
        public CommunicationsManager(NetworkServersInfo serversInfo, IHttpServer httpServer, IAssetCache assetCache,
                                     LibraryRootFolder libraryRootFolder)
        {
            m_networkServersInfo = serversInfo;
            m_assetCache         = assetCache;
            m_httpServer         = httpServer;
            LibraryRoot          = libraryRootFolder;

            Preload();
        }
Example #8
0
 public UserLoginService(
     OpenSim.Framework.Communications.UserProfileManager userManager,
     LibraryRootFolder libraryRootFolder, string mapServerURI, string profileServerURI,
     UserConfig config, string welcomeMess, IRegionProfileRouter regionProfileService)
     : base(userManager, libraryRootFolder, welcomeMess, mapServerURI, profileServerURI)
 {
     m_config               = config;
     m_defaultHomeX         = m_config.DefaultX;
     m_defaultHomeY         = m_config.DefaultY;
     m_regionProfileService = regionProfileService;
 }
Example #9
0
        protected virtual void InitialiseGridServices(LibraryRootFolder libraryRootFolder)
        {
            m_commsManager
                = new CommunicationsOGS1(m_openSim.NetServersInfo, m_httpServer, m_openSim.AssetCache, libraryRootFolder);

            m_httpServer.AddStreamHandler(new OpenSim.SimStatusHandler());
            m_httpServer.AddStreamHandler(new OpenSim.XSimStatusHandler(m_openSim));
            if (m_openSim.userStatsURI != String.Empty)
            {
                m_httpServer.AddStreamHandler(new OpenSim.UXSimStatusHandler(m_openSim));
            }
        }
        public HGCommunicationsStandalone(
            ConfigSettings configSettings,
            NetworkServersInfo serversInfo,
            BaseHttpServer httpServer,
            IAssetCache assetCache,
            HGGridServices gridService,
            LibraryRootFolder libraryRootFolder,
            bool dumpAssetsToFile)
            : base(serversInfo, httpServer, assetCache, dumpAssetsToFile, libraryRootFolder)
        {
            LocalUserServices localUserService =
                new LocalUserServices(
                    serversInfo.DefaultHomeLocX, serversInfo.DefaultHomeLocY, this);

            localUserService.AddPlugin(configSettings.StandaloneUserPlugin, configSettings.StandaloneUserSource);

            HGInventoryServiceClient inventoryService
                = new HGInventoryServiceClient(serversInfo.InventoryURL, null, false);
            List <IInventoryDataPlugin> plugins
                = DataPluginFactory.LoadDataPlugins <IInventoryDataPlugin>(
                      configSettings.StandaloneInventoryPlugin,
                      configSettings.StandaloneInventorySource);

            foreach (IInventoryDataPlugin plugin in plugins)
            {
                // Using the OSP wrapper plugin should be made configurable at some point
                inventoryService.AddPlugin(new OspInventoryWrapperPlugin(plugin, this));
            }

            AddInventoryService(inventoryService);
            m_defaultInventoryHost            = inventoryService.Host;
            m_interServiceInventoryService    = inventoryService;
            inventoryService.UserProfileCache = UserProfileCacheService;

            m_assetCache = assetCache;
            // Let's swap to always be secure access to inventory
            AddSecureInventoryService((ISecureInventoryService)inventoryService);
            m_inventoryServices = null;

            HGUserServices hgUserService = new HGUserServices(this, localUserService);

            // This plugin arrangement could eventually be configurable rather than hardcoded here.
            hgUserService.AddPlugin(new TemporaryUserProfilePlugin());
            hgUserService.AddPlugin(new OGS1UserDataPlugin(this));

            m_userService      = hgUserService;
            m_userAdminService = hgUserService;
            m_avatarService    = hgUserService;
            m_messageService   = hgUserService;

            gridService.UserProfileCache = m_userProfileCacheService;
            m_gridService = gridService;
        }
 public UserLoginService(
     UserManagerBase userManager, IInterServiceInventoryServices inventoryService,
     LibraryRootFolder libraryRootFolder,
     UserConfig config, string welcomeMess, IRegionProfileRouter regionProfileService)
     : base(userManager, libraryRootFolder, welcomeMess)
 {
     m_config                = config;
     m_defaultHomeX          = m_config.DefaultX;
     m_defaultHomeY          = m_config.DefaultY;
     m_interInventoryService = inventoryService;
     m_regionProfileService  = regionProfileService;
 }
Example #12
0
        public void Initialise(Scene scene, IConfigSource source)
        {
            if (m_firstScene == null)
            {
                m_firstScene = scene;

                IConfig startupConfig = source.Configs["Startup"];
                if (startupConfig != null)
                {
                    m_enabled = !startupConfig.GetBoolean("gridmode", false);
                }

                if (m_enabled)
                {
                    m_log.Debug("[HGLogin]: HGlogin module enabled");
                    bool    authenticate     = true;
                    string  welcomeMessage   = "Welcome to OpenSim";
                    IConfig standaloneConfig = source.Configs["StandAlone"];
                    if (standaloneConfig != null)
                    {
                        authenticate   = standaloneConfig.GetBoolean("accounts_authenticate", true);
                        welcomeMessage = standaloneConfig.GetString("welcome_message");
                    }

                    //TODO: fix casting.
                    LibraryRootFolder rootFolder = m_firstScene.CommsManager.UserProfileCacheService.LibraryRoot as LibraryRootFolder;

                    IHttpServer httpServer = m_firstScene.CommsManager.HttpServer;

                    //TODO: fix the casting of the user service, maybe by registering the userManagerBase with scenes, or refactoring so we just need a IUserService reference
                    m_loginService
                        = new HGLoginAuthService(
                              (UserManagerBase)m_firstScene.CommsManager.UserAdminService,
                              welcomeMessage,
                              m_firstScene.CommsManager.InterServiceInventoryService,
                              m_firstScene.CommsManager.NetworkServersInfo,
                              authenticate,
                              rootFolder,
                              this);

                    httpServer.AddXmlRPCHandler("hg_login", m_loginService.XmlRpcLoginMethod);
                    httpServer.AddXmlRPCHandler("hg_new_auth_key", m_loginService.XmlRpcGenerateKeyMethod);
                    httpServer.AddXmlRPCHandler("hg_verify_auth_key", m_loginService.XmlRpcVerifyKeyMethod);
                    httpServer.AddXmlRPCHandler("check_auth_session", m_loginService.XmlRPCCheckAuthSession, false);
                }
            }

            if (m_enabled)
            {
                AddScene(scene);
            }
        }
        public LLStandaloneLoginService(
            UserProfileManager userManager, string welcomeMess, string mapServerURI, string profileServerURI,
            NetworkServersInfo serversInfo,
            bool authenticate, LibraryRootFolder libraryRootFolder, ILoginServiceToRegionsConnector regionsConnector)
            : base(userManager, libraryRootFolder, welcomeMess, mapServerURI, profileServerURI)
        {
            this.m_serversInfo = serversInfo;
            m_defaultHomeX     = this.m_serversInfo.DefaultHomeLocX;
            m_defaultHomeY     = this.m_serversInfo.DefaultHomeLocY;
            m_authUsers        = authenticate;

            m_regionsConnector = regionsConnector;
        }
 protected void InitializeStandardServices(LibraryRootFolder libraryRootFolder)
 {
     // Standalone mode is determined by !startupConfig.GetBoolean("gridmode", false)
     if (m_openSim.ConfigurationSettings.Standalone)
     {
         InitializeStandaloneServices(libraryRootFolder);
     }
     else
     {
         // We are in grid mode
         InitializeGridServices(libraryRootFolder);
     }
 }
        protected virtual void InitializeGridServices(LibraryRootFolder libraryRootFolder)
        {
            m_commsManager
                = new CommunicationsOGS1(m_openSim.NetServersInfo, m_httpServer, m_openSim.AssetCache, libraryRootFolder,
                                         m_openSim.ConfigurationSettings);

            m_httpServer.AddStreamHandler(new OpenSim.SimStatusHandler());
            m_httpServer.AddStreamHandler(new OpenSim.XSimStatusHandler(m_openSim));
            if (!String.IsNullOrEmpty(m_openSim.userStatsURI))
            {
                m_httpServer.AddStreamHandler(new OpenSim.UXSimStatusHandler(m_openSim));
            }
        }
        protected virtual void InitialiseHGStandaloneServices(LibraryRootFolder libraryRootFolder)
        {
            HGGridServicesStandalone gridService = new HGGridServicesStandalone(m_openSim.NetServersInfo, m_httpServer, m_openSim.AssetCache, m_openSim.SceneManager);

            m_commsManager
                = new HGCommunicationsStandalone(
                      m_openSim.ConfigurationSettings, m_openSim.NetServersInfo, m_httpServer, m_openSim.AssetCache,
                      gridService,
                      libraryRootFolder, m_openSim.ConfigurationSettings.DumpAssetsToFile);

            HGServices = gridService;

            CreateGridInfoService();
        }
Example #17
0
 protected void InitialiseHGServices(OpenSimBase openSim, LibraryRootFolder libraryRootFolder)
 {
     // Standalone mode is determined by !startupConfig.GetBoolean("gridmode", false)
     if (m_openSim.ConfigurationSettings.Standalone)
     {
         InitialiseHGStandaloneServices(libraryRootFolder);
     }
     else
     {
         // We are in grid mode
         InitialiseHGGridServices(libraryRootFolder);
     }
     HGCommands.HGServices = HGServices;
 }
        public void Initialize(Scene scene, IConfigSource source)
        {
            if (m_firstScene == null)
            {
                m_firstScene = scene;

                IConfig startupConfig = source.Configs["Startup"];
                if (startupConfig != null)
                {
                    m_enabled = !startupConfig.GetBoolean("gridmode", false);
                }

                if (m_enabled)
                {
                    bool    authenticate = true;
                    string  welcomeMessage = "Welcome to InWorldz", mapServerURI = String.Empty, profileServerURI = String.Empty;
                    IConfig standaloneConfig = source.Configs["StandAlone"];
                    if (standaloneConfig != null)
                    {
                        authenticate     = standaloneConfig.GetBoolean("accounts_authenticate", true);
                        welcomeMessage   = standaloneConfig.GetString("welcome_message");
                        mapServerURI     = standaloneConfig.GetString("map_server_uri", String.Empty);
                        profileServerURI = standaloneConfig.GetString("profile_server_uri", String.Empty);
                    }

                    //TODO: fix casting.
                    LibraryRootFolder rootFolder
                        = m_firstScene.CommsManager.LibraryRoot as LibraryRootFolder;

                    IHttpServer httpServer = m_firstScene.CommsManager.HttpServer;

                    //TODO: fix the casting of the user service, maybe by registering the userManagerBase with scenes, or refactoring so we just need a IUserService reference
                    m_loginService = new LLStandaloneLoginService((UserProfileManager)m_firstScene.CommsManager.UserAdminService, mapServerURI, profileServerURI, welcomeMessage, m_firstScene.CommsManager.NetworkServersInfo, authenticate, rootFolder, this);

                    httpServer.AddXmlRPCHandler("login_to_simulator", m_loginService.XmlRpcLoginMethod);

                    // New Style
                    httpServer.AddStreamHandler(new XmlRpcStreamHandler("POST", Util.XmlRpcRequestPrefix("login_to_simulator"), m_loginService.XmlRpcLoginMethod));

                    // provides the web form login
                    httpServer.AddHTTPHandler("login", m_loginService.ProcessHTMLLogin);
                }
            }

            if (m_enabled)
            {
                AddScene(scene);
            }
        }
Example #19
0
        public LLStandaloneLoginService(
            UserManagerBase userManager, string welcomeMess,
            IInterServiceInventoryServices interServiceInventoryService,
            NetworkServersInfo serversInfo,
            bool authenticate, LibraryRootFolder libraryRootFolder, ILoginServiceToRegionsConnector regionsConnector)
            : base(userManager, libraryRootFolder, welcomeMess)
        {
            this.m_serversInfo = serversInfo;
            m_defaultHomeX     = this.m_serversInfo.DefaultHomeLocX;
            m_defaultHomeY     = this.m_serversInfo.DefaultHomeLocY;
            m_authUsers        = authenticate;

            m_inventoryService = interServiceInventoryService;
            m_regionsConnector = regionsConnector;
        }
Example #20
0
        public void Initialise(Scene scene, IConfigSource source)
        {
            if (m_firstScene == null)
            {
                m_firstScene = scene;

                IConfig startupConfig = source.Configs["Startup"];
                if (startupConfig != null)
                {
                    m_enabled = !startupConfig.GetBoolean("gridmode", false);
                }

                if (m_enabled)
                {
                    bool    authenticate     = true;
                    string  welcomeMessage   = "Welcome to OpenSim";
                    IConfig standaloneConfig = source.Configs["StandAlone"];
                    if (standaloneConfig != null)
                    {
                        authenticate   = standaloneConfig.GetBoolean("accounts_authenticate", true);
                        welcomeMessage = standaloneConfig.GetString("welcome_message");
                    }

                    //TODO: fix casting.
                    LibraryRootFolder rootFolder
                        = m_firstScene.CommsManager.UserProfileCacheService.LibraryRoot as LibraryRootFolder;

                    IHttpServer httpServer = m_firstScene.CommsManager.HttpServer;

                    //TODO: fix the casting of the user service, maybe by registering the userManagerBase with scenes, or refactoring so we just need a IUserService reference
                    m_loginService = new LLStandaloneLoginService((UserManagerBase)m_firstScene.CommsManager.UserAdminService, welcomeMessage, m_firstScene.CommsManager.InterServiceInventoryService, m_firstScene.CommsManager.NetworkServersInfo, authenticate, rootFolder, this);

                    httpServer.AddXmlRPCHandler("login_to_simulator", m_loginService.XmlRpcLoginMethod);

                    // provides the web form login
                    httpServer.AddHTTPHandler("login", m_loginService.ProcessHTMLLogin);

                    // Provides the LLSD login
                    httpServer.SetDefaultLLSDHandler(m_loginService.LLSDLoginMethod);
                }
            }

            if (m_enabled)
            {
                AddScene(scene);
            }
        }
Example #21
0
        protected void InitialiseCommsManager(OpenSimBase openSim)
        {
            LibraryRootFolder libraryRootFolder = new LibraryRootFolder(m_openSim.ConfigurationSettings.LibrariesXMLFile);

            bool hgrid = m_openSim.ConfigSource.Source.Configs["Startup"].GetBoolean("hypergrid", false);

            if (hgrid)
            {
                InitialiseHGServices(openSim, libraryRootFolder);
            }
            else
            {
                InitialiseStandardServices(libraryRootFolder);
            }

            openSim.CommunicationsManager = m_commsManager;
        }
Example #22
0
        public LLStandaloneLoginService(
            UserManagerBase userManager, string welcomeMess,
            IInventoryService interServiceInventoryService,
            NetworkServersInfo serversInfo,
            bool authenticate, LibraryRootFolder libraryRootFolder, ILoginServiceToRegionsConnector regionsConnector)
            : base(userManager, libraryRootFolder, welcomeMess)
        {
            this.m_serversInfo = serversInfo;
            m_defaultHomeX     = this.m_serversInfo.DefaultHomeLocX;
            m_defaultHomeY     = this.m_serversInfo.DefaultHomeLocY;
            m_authUsers        = authenticate;

            m_InventoryService = interServiceInventoryService;
            m_regionsConnector = regionsConnector;
            // Standard behavior: In StandAlone, silent logout of last hung session
            m_warn_already_logged = false;
        }
Example #23
0
        public UserLoginAuthService(
            UserManagerBase userManager, IInterServiceInventoryServices inventoryService,
            LibraryRootFolder libraryRootFolder,
            UserConfig config, string welcomeMess, IRegionProfileRouter regionProfileService)
            : base(userManager, welcomeMess, inventoryService, null, true, libraryRootFolder, null)
        {
            m_config               = config;
            m_defaultHomeX         = m_config.DefaultX;
            m_defaultHomeY         = m_config.DefaultY;
            m_inventoryService     = inventoryService;
            m_regionProfileService = regionProfileService;

            NetworkServersInfo serversinfo = new NetworkServersInfo(1000, 1000);

            serversinfo.GridRecvKey  = m_config.GridRecvKey;
            serversinfo.GridSendKey  = m_config.GridSendKey;
            serversinfo.GridURL      = m_config.GridServerURL.ToString();
            serversinfo.InventoryURL = m_config.InventoryUrl.ToString();
            serversinfo.UserURL      = m_config.AuthUrl.ToString();
            SetServersInfo(serversinfo);
        }
        public CommunicationsLocal(
            ConfigSettings configSettings,
            NetworkServersInfo serversInfo,
            BaseHttpServer httpServer,
            IAssetCache assetCache,
            LibraryRootFolder libraryRootFolder,
            bool dumpAssetsToFile)
            : base(serversInfo, httpServer, assetCache, dumpAssetsToFile, libraryRootFolder)
        {
            LocalInventoryService       inventoryService = new LocalInventoryService();
            List <IInventoryDataPlugin> plugins
                = DataPluginFactory.LoadDataPlugins <IInventoryDataPlugin>(
                      configSettings.StandaloneInventoryPlugin,
                      configSettings.StandaloneInventorySource);

            foreach (IInventoryDataPlugin plugin in plugins)
            {
                // Using the OSP wrapper plugin for database plugins should be made configurable at some point
                inventoryService.AddPlugin(new OspInventoryWrapperPlugin(plugin, this));
            }

            AddInventoryService(inventoryService);
            m_defaultInventoryHost         = inventoryService.Host;
            m_interServiceInventoryService = inventoryService;

            LocalUserServices lus
                = new LocalUserServices(
                      serversInfo.DefaultHomeLocX, serversInfo.DefaultHomeLocY, this);

            lus.AddPlugin(new TemporaryUserProfilePlugin());
            lus.AddPlugin(configSettings.StandaloneUserPlugin, configSettings.StandaloneUserSource);
            m_userService      = lus;
            m_userAdminService = lus;
            m_avatarService    = lus;
            m_messageService   = lus;

            m_gridService = new LocalBackEndServices();

            //LocalLoginService loginService = CreateLoginService(libraryRootFolder, inventoryService, userService, backendService);
        }
        public void RegionLoaded(Scene scene)
        {
            if (m_firstScene == null)
            {
                m_firstScene = scene;

                if (m_enabled)
                {
                    //TODO: fix casting.
                    LibraryRootFolder rootFolder
                        = m_firstScene.CommsManager.UserProfileCacheService.LibraryRoot as LibraryRootFolder;

                    IHttpServer httpServer = m_firstScene.CommsManager.HttpServer;

                    //TODO: fix the casting of the user service, maybe by registering the userManagerBase with scenes, or refactoring so we just need a IUserService reference
                    m_loginService
                        = new LLStandaloneLoginService(
                              (UserManagerBase)m_firstScene.CommsManager.UserAdminService, welcomeMessage,
                              m_firstScene.InventoryService, m_firstScene.CommsManager.NetworkServersInfo, authenticate,
                              rootFolder, this);

                    httpServer.AddXmlRPCHandler("login_to_simulator", m_loginService.XmlRpcLoginMethod);

                    // provides the web form login
                    httpServer.AddHTTPHandler("login", m_loginService.ProcessHTMLLogin);

                    // Provides the LLSD login
                    httpServer.SetDefaultLLSDHandler(m_loginService.LLSDLoginMethod);
                }
            }

            if (m_enabled)
            {
                AddScene(scene);
            }
        }
Example #26
0
        public HGCommunicationsGridMode(
            NetworkServersInfo serversInfo, BaseHttpServer httpServer,
            IAssetCache assetCache, SceneManager sman, LibraryRootFolder libraryRootFolder)
            : base(serversInfo, httpServer, assetCache, false, libraryRootFolder)
        {
            // From constructor at CommunicationsOGS1
            HGGridServices gridInterComms = new HGGridServicesGridMode(serversInfo, httpServer, assetCache, sman, m_userProfileCacheService);

            m_gridService = gridInterComms;
            m_osw         = gridInterComms;

            // The HG InventoryService always uses secure handlers
            HGInventoryServiceClient invService = new HGInventoryServiceClient(serversInfo.InventoryURL, this.m_userProfileCacheService, true);

            invService.UserProfileCache = m_userProfileCacheService;
            AddSecureInventoryService(invService);
            m_defaultInventoryHost = invService.Host;
            if (SecureInventoryService != null)
            {
                m_log.Info("[HG]: SecureInventoryService.");
            }
            else
            {
                m_log.Info("[HG]: Non-secureInventoryService.");
            }

            HGUserServices userServices = new HGUserServices(this);

            // This plugin arrangement could eventually be configurable rather than hardcoded here.
            userServices.AddPlugin(new TemporaryUserProfilePlugin());
            userServices.AddPlugin(new OGS1UserDataPlugin(this));

            m_userService    = userServices;
            m_messageService = userServices;
            m_avatarService  = userServices;
        }