diff options
author | Justin Clarke Casey | 2009-04-22 23:04:32 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2009-04-22 23:04:32 +0000 |
commit | bd8e4a8892e204e2d9e7e24087f7200c16be57f0 (patch) | |
tree | c1d70399cd3f75a8bf97e09a9dcb8f652a1e8a3d | |
parent | * Resolve http://opensimulator.org/mantis/view.php?id=3509 by putting some se... (diff) | |
download | opensim-SC_OLD-bd8e4a8892e204e2d9e7e24087f7200c16be57f0.zip opensim-SC_OLD-bd8e4a8892e204e2d9e7e24087f7200c16be57f0.tar.gz opensim-SC_OLD-bd8e4a8892e204e2d9e7e24087f7200c16be57f0.tar.bz2 opensim-SC_OLD-bd8e4a8892e204e2d9e7e24087f7200c16be57f0.tar.xz |
* Fix hypergrid standalone login by overriding AddNewUserAgent in HGUserServices
5 files changed, 38 insertions, 26 deletions
diff --git a/OpenSim/ApplicationPlugins/CreateCommsManager/CreateCommsManagerPlugin.cs b/OpenSim/ApplicationPlugins/CreateCommsManager/CreateCommsManagerPlugin.cs index c5aabc6..3b98038 100644 --- a/OpenSim/ApplicationPlugins/CreateCommsManager/CreateCommsManagerPlugin.cs +++ b/OpenSim/ApplicationPlugins/CreateCommsManager/CreateCommsManagerPlugin.cs | |||
@@ -206,8 +206,11 @@ namespace OpenSim.ApplicationPlugins.CreateCommsManager | |||
206 | { | 206 | { |
207 | // Standalone mode | 207 | // Standalone mode |
208 | 208 | ||
209 | HGInventoryServiceClient inventoryService = new HGInventoryServiceClient(m_openSim.NetServersInfo.InventoryURL, null, false); | 209 | HGInventoryServiceClient inventoryService |
210 | inventoryService.AddPlugin(m_openSim.ConfigurationSettings.StandaloneInventoryPlugin, m_openSim.ConfigurationSettings.StandaloneInventorySource); | 210 | = new HGInventoryServiceClient(m_openSim.NetServersInfo.InventoryURL, null, false); |
211 | inventoryService.AddPlugin( | ||
212 | m_openSim.ConfigurationSettings.StandaloneInventoryPlugin, | ||
213 | m_openSim.ConfigurationSettings.StandaloneInventorySource); | ||
211 | 214 | ||
212 | HGGridServicesStandalone gridService | 215 | HGGridServicesStandalone gridService |
213 | = new HGGridServicesStandalone( | 216 | = new HGGridServicesStandalone( |
@@ -227,7 +230,10 @@ namespace OpenSim.ApplicationPlugins.CreateCommsManager | |||
227 | 230 | ||
228 | protected virtual void InitialiseHGGridServices(LibraryRootFolder libraryRootFolder) | 231 | protected virtual void InitialiseHGGridServices(LibraryRootFolder libraryRootFolder) |
229 | { | 232 | { |
230 | m_commsManager = new HGCommunicationsGridMode(m_openSim.NetServersInfo, m_httpServer, m_openSim.AssetCache, m_openSim.SceneManager, libraryRootFolder); | 233 | m_commsManager |
234 | = new HGCommunicationsGridMode( | ||
235 | m_openSim.NetServersInfo, m_httpServer, | ||
236 | m_openSim.AssetCache, m_openSim.SceneManager, libraryRootFolder); | ||
231 | 237 | ||
232 | HGServices = ((HGCommunicationsGridMode) m_commsManager).HGServices; | 238 | HGServices = ((HGCommunicationsGridMode) m_commsManager).HGServices; |
233 | 239 | ||
@@ -240,7 +246,8 @@ namespace OpenSim.ApplicationPlugins.CreateCommsManager | |||
240 | // provide grid info | 246 | // provide grid info |
241 | m_gridInfoService = new GridInfoService(m_openSim.ConfigSource.Source); | 247 | m_gridInfoService = new GridInfoService(m_openSim.ConfigSource.Source); |
242 | m_httpServer.AddXmlRPCHandler("get_grid_info", m_gridInfoService.XmlRpcGridInfoMethod); | 248 | m_httpServer.AddXmlRPCHandler("get_grid_info", m_gridInfoService.XmlRpcGridInfoMethod); |
243 | m_httpServer.AddStreamHandler(new RestStreamHandler("GET", "/get_grid_info", m_gridInfoService.RestGetGridInfoMethod)); | 249 | m_httpServer.AddStreamHandler( |
250 | new RestStreamHandler("GET", "/get_grid_info", m_gridInfoService.RestGetGridInfoMethod)); | ||
244 | } | 251 | } |
245 | } | 252 | } |
246 | } | 253 | } |
diff --git a/OpenSim/Framework/Communications/Services/HGLoginAuthService.cs b/OpenSim/Framework/Communications/Services/HGLoginAuthService.cs index 5e357d5..b62e4a2 100644 --- a/OpenSim/Framework/Communications/Services/HGLoginAuthService.cs +++ b/OpenSim/Framework/Communications/Services/HGLoginAuthService.cs | |||
@@ -61,7 +61,6 @@ namespace OpenSim.Framework.Communications.Services | |||
61 | /// </summary> | 61 | /// </summary> |
62 | protected ILoginServiceToRegionsConnector m_regionsConnector; | 62 | protected ILoginServiceToRegionsConnector m_regionsConnector; |
63 | 63 | ||
64 | |||
65 | public HGLoginAuthService( | 64 | public HGLoginAuthService( |
66 | UserManagerBase userManager, string welcomeMess, | 65 | UserManagerBase userManager, string welcomeMess, |
67 | IInterServiceInventoryServices interServiceInventoryService, | 66 | IInterServiceInventoryServices interServiceInventoryService, |
@@ -89,7 +88,7 @@ namespace OpenSim.Framework.Communications.Services | |||
89 | 88 | ||
90 | public override XmlRpcResponse XmlRpcLoginMethod(XmlRpcRequest request) | 89 | public override XmlRpcResponse XmlRpcLoginMethod(XmlRpcRequest request) |
91 | { | 90 | { |
92 | m_log.Info("[HGLOGIN] HGLogin called " + request.MethodName); | 91 | m_log.Info("[HGLOGIN]: HGLogin called " + request.MethodName); |
93 | XmlRpcResponse response = base.XmlRpcLoginMethod(request); | 92 | XmlRpcResponse response = base.XmlRpcLoginMethod(request); |
94 | Hashtable responseData = (Hashtable)response.Value; | 93 | Hashtable responseData = (Hashtable)response.Value; |
95 | 94 | ||
@@ -135,7 +134,6 @@ namespace OpenSim.Framework.Communications.Services | |||
135 | 134 | ||
136 | public XmlRpcResponse XmlRpcGenerateKeyMethod(XmlRpcRequest request) | 135 | public XmlRpcResponse XmlRpcGenerateKeyMethod(XmlRpcRequest request) |
137 | { | 136 | { |
138 | |||
139 | // Verify the key of who's calling | 137 | // Verify the key of who's calling |
140 | UUID userID = UUID.Zero; | 138 | UUID userID = UUID.Zero; |
141 | UUID authKey = UUID.Zero; | 139 | UUID authKey = UUID.Zero; |
@@ -254,7 +252,6 @@ namespace OpenSim.Framework.Communications.Services | |||
254 | return m_regionsConnector.RequestNeighbourInfo(homeRegionId); | 252 | return m_regionsConnector.RequestNeighbourInfo(homeRegionId); |
255 | } | 253 | } |
256 | 254 | ||
257 | |||
258 | /// <summary> | 255 | /// <summary> |
259 | /// Not really informing the region. Just filling out the response fields related to the region. | 256 | /// Not really informing the region. Just filling out the response fields related to the region. |
260 | /// </summary> | 257 | /// </summary> |
diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs index 2d0bf63..9cd7658 100644 --- a/OpenSim/Framework/Communications/UserManagerBase.cs +++ b/OpenSim/Framework/Communications/UserManagerBase.cs | |||
@@ -430,6 +430,8 @@ namespace OpenSim.Framework.Communications | |||
430 | /// <param name="request">The users loginrequest</param> | 430 | /// <param name="request">The users loginrequest</param> |
431 | public void CreateAgent(UserProfileData profile, XmlRpcRequest request) | 431 | public void CreateAgent(UserProfileData profile, XmlRpcRequest request) |
432 | { | 432 | { |
433 | //m_log.DebugFormat("[USER MANAGER]: Creating agent {0} {1}", profile.Name, profile.ID); | ||
434 | |||
433 | UserAgentData agent = new UserAgentData(); | 435 | UserAgentData agent = new UserAgentData(); |
434 | 436 | ||
435 | // User connection | 437 | // User connection |
@@ -483,6 +485,8 @@ namespace OpenSim.Framework.Communications | |||
483 | 485 | ||
484 | public void CreateAgent(UserProfileData profile, OSD request) | 486 | public void CreateAgent(UserProfileData profile, OSD request) |
485 | { | 487 | { |
488 | //m_log.DebugFormat("[USER MANAGER]: Creating agent {0} {1}", profile.Name, profile.ID); | ||
489 | |||
486 | UserAgentData agent = new UserAgentData(); | 490 | UserAgentData agent = new UserAgentData(); |
487 | 491 | ||
488 | // User connection | 492 | // User connection |
@@ -538,6 +542,8 @@ namespace OpenSim.Framework.Communications | |||
538 | /// <returns>Successful?</returns> | 542 | /// <returns>Successful?</returns> |
539 | public bool CommitAgent(ref UserProfileData profile) | 543 | public bool CommitAgent(ref UserProfileData profile) |
540 | { | 544 | { |
545 | //m_log.DebugFormat("[USER MANAGER]: Committing agent {0} {1}", profile.Name, profile.ID); | ||
546 | |||
541 | // TODO: how is this function different from setUserProfile? -> Add AddUserAgent() here and commit both tables "users" and "agents" | 547 | // TODO: how is this function different from setUserProfile? -> Add AddUserAgent() here and commit both tables "users" and "agents" |
542 | // TODO: what is the logic should be? | 548 | // TODO: what is the logic should be? |
543 | bool ret = false; | 549 | bool ret = false; |
@@ -704,7 +710,7 @@ namespace OpenSim.Framework.Communications | |||
704 | /// Add agent to DB | 710 | /// Add agent to DB |
705 | /// </summary> | 711 | /// </summary> |
706 | /// <param name="agentdata">The agent data to be added</param> | 712 | /// <param name="agentdata">The agent data to be added</param> |
707 | public bool AddUserAgent(UserAgentData agentdata) | 713 | public virtual bool AddUserAgent(UserAgentData agentdata) |
708 | { | 714 | { |
709 | foreach (IUserDataPlugin plugin in m_plugins) | 715 | foreach (IUserDataPlugin plugin in m_plugins) |
710 | { | 716 | { |
@@ -845,7 +851,7 @@ namespace OpenSim.Framework.Communications | |||
845 | 851 | ||
846 | if (userProfile != null && userProfile.CurrentAgent != null) | 852 | if (userProfile != null && userProfile.CurrentAgent != null) |
847 | { | 853 | { |
848 | m_log.DebugFormat("[USERAUTH]: Verifying session {0} for {1}; current session {2}", sessionID, userID, userProfile.CurrentAgent.SessionID); | 854 | m_log.DebugFormat("[USER AUTH]: Verifying session {0} for {1}; current session {2}", sessionID, userID, userProfile.CurrentAgent.SessionID); |
849 | if (userProfile.CurrentAgent.SessionID == sessionID) | 855 | if (userProfile.CurrentAgent.SessionID == sessionID) |
850 | { | 856 | { |
851 | return true; | 857 | return true; |
diff --git a/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs b/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs index 93d5434..8d9ca34 100644 --- a/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs +++ b/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs | |||
@@ -62,12 +62,15 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
62 | { | 62 | { |
63 | m_localUserServices = local; | 63 | m_localUserServices = local; |
64 | } | 64 | } |
65 | |||
66 | public override bool AddUserAgent(UserAgentData agentdata) | ||
67 | { | ||
68 | if (m_localUserServices != null) | ||
69 | return m_localUserServices.AddUserAgent(agentdata); | ||
70 | |||
71 | return base.AddUserAgent(agentdata); | ||
72 | } | ||
65 | 73 | ||
66 | /// <summary> | ||
67 | /// Get a user agent from the user server | ||
68 | /// </summary> | ||
69 | /// <param name="avatarID"></param> | ||
70 | /// <returns>null if the request fails</returns> | ||
71 | public override UserAgentData GetAgentByUUID(UUID userId) | 74 | public override UserAgentData GetAgentByUUID(UUID userId) |
72 | { | 75 | { |
73 | string url = string.Empty; | 76 | string url = string.Empty; |
@@ -77,14 +80,6 @@ namespace OpenSim.Region.Communications.Hypergrid | |||
77 | return base.GetAgentByUUID(userId); | 80 | return base.GetAgentByUUID(userId); |
78 | } | 81 | } |
79 | 82 | ||
80 | /// <summary> | ||
81 | /// Logs off a user on the user server | ||
82 | /// </summary> | ||
83 | /// <param name="UserID">UUID of the user</param> | ||
84 | /// <param name="regionID">UUID of the Region</param> | ||
85 | /// <param name="regionhandle">regionhandle</param> | ||
86 | /// <param name="position">final position</param> | ||
87 | /// <param name="lookat">final lookat</param> | ||
88 | public override void LogOffUser(UUID userid, UUID regionid, ulong regionhandle, Vector3 position, Vector3 lookat) | 83 | public override void LogOffUser(UUID userid, UUID regionid, ulong regionhandle, Vector3 position, Vector3 lookat) |
89 | { | 84 | { |
90 | string url = string.Empty; | 85 | string url = string.Empty; |
diff --git a/OpenSim/Region/CoreModules/Hypergrid/HGStandaloneLoginModule.cs b/OpenSim/Region/CoreModules/Hypergrid/HGStandaloneLoginModule.cs index c458b89..2c7ba93 100644 --- a/OpenSim/Region/CoreModules/Hypergrid/HGStandaloneLoginModule.cs +++ b/OpenSim/Region/CoreModules/Hypergrid/HGStandaloneLoginModule.cs | |||
@@ -54,7 +54,6 @@ namespace OpenSim.Region.CoreModules.Hypergrid | |||
54 | 54 | ||
55 | protected bool m_enabled = false; // Module is only enabled if running in standalone mode | 55 | protected bool m_enabled = false; // Module is only enabled if running in standalone mode |
56 | 56 | ||
57 | |||
58 | public bool RegionLoginsEnabled | 57 | public bool RegionLoginsEnabled |
59 | { | 58 | { |
60 | get | 59 | get |
@@ -88,7 +87,7 @@ namespace OpenSim.Region.CoreModules.Hypergrid | |||
88 | 87 | ||
89 | if (m_enabled) | 88 | if (m_enabled) |
90 | { | 89 | { |
91 | m_log.Debug("[HGLogin] HGlogin module enabled"); | 90 | m_log.Debug("[HGLogin]: HGlogin module enabled"); |
92 | bool authenticate = true; | 91 | bool authenticate = true; |
93 | string welcomeMessage = "Welcome to OpenSim"; | 92 | string welcomeMessage = "Welcome to OpenSim"; |
94 | IConfig standaloneConfig = source.Configs["StandAlone"]; | 93 | IConfig standaloneConfig = source.Configs["StandAlone"]; |
@@ -104,7 +103,15 @@ namespace OpenSim.Region.CoreModules.Hypergrid | |||
104 | IHttpServer httpServer = m_firstScene.CommsManager.HttpServer; | 103 | IHttpServer httpServer = m_firstScene.CommsManager.HttpServer; |
105 | 104 | ||
106 | //TODO: fix the casting of the user service, maybe by registering the userManagerBase with scenes, or refactoring so we just need a IUserService reference | 105 | //TODO: fix the casting of the user service, maybe by registering the userManagerBase with scenes, or refactoring so we just need a IUserService reference |
107 | m_loginService = new HGLoginAuthService((UserManagerBase)m_firstScene.CommsManager.UserAdminService, welcomeMessage, m_firstScene.CommsManager.InterServiceInventoryService, m_firstScene.CommsManager.NetworkServersInfo, authenticate, rootFolder, this); | 106 | m_loginService |
107 | = new HGLoginAuthService( | ||
108 | (UserManagerBase)m_firstScene.CommsManager.UserAdminService, | ||
109 | welcomeMessage, | ||
110 | m_firstScene.CommsManager.InterServiceInventoryService, | ||
111 | m_firstScene.CommsManager.NetworkServersInfo, | ||
112 | authenticate, | ||
113 | rootFolder, | ||
114 | this); | ||
108 | 115 | ||
109 | httpServer.AddXmlRPCHandler("hg_login", m_loginService.XmlRpcLoginMethod); | 116 | httpServer.AddXmlRPCHandler("hg_login", m_loginService.XmlRpcLoginMethod); |
110 | httpServer.AddXmlRPCHandler("hg_new_auth_key", m_loginService.XmlRpcGenerateKeyMethod); | 117 | httpServer.AddXmlRPCHandler("hg_new_auth_key", m_loginService.XmlRpcGenerateKeyMethod); |