diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Addons/Groups/Remote/GroupsServiceRemoteConnector.cs | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/OpenSim/Addons/Groups/Remote/GroupsServiceRemoteConnector.cs b/OpenSim/Addons/Groups/Remote/GroupsServiceRemoteConnector.cs index 1425a23..7450c14 100644 --- a/OpenSim/Addons/Groups/Remote/GroupsServiceRemoteConnector.cs +++ b/OpenSim/Addons/Groups/Remote/GroupsServiceRemoteConnector.cs | |||
@@ -32,29 +32,47 @@ using System.Reflection; | |||
32 | using System.Text; | 32 | using System.Text; |
33 | 33 | ||
34 | using OpenSim.Framework; | 34 | using OpenSim.Framework; |
35 | using OpenSim.Framework.ServiceAuth; | ||
35 | using OpenSim.Server.Base; | 36 | using OpenSim.Server.Base; |
36 | 37 | ||
37 | using OpenMetaverse; | 38 | using OpenMetaverse; |
38 | using log4net; | 39 | using log4net; |
40 | using Nini.Config; | ||
39 | 41 | ||
40 | namespace OpenSim.Groups | 42 | namespace OpenSim.Groups |
41 | { | 43 | { |
42 | public class GroupsServiceRemoteConnector | 44 | public class GroupsServiceRemoteConnector |
43 | { | 45 | { |
44 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 46 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
45 | 47 | ||
46 | private string m_ServerURI; | 48 | private string m_ServerURI; |
47 | private string m_SecretKey; | 49 | private IServiceAuth m_Auth; |
48 | private object m_Lock = new object(); | 50 | private object m_Lock = new object(); |
49 | 51 | ||
50 | public GroupsServiceRemoteConnector(string url, string secret) | 52 | public GroupsServiceRemoteConnector(IConfigSource config) |
51 | { | 53 | { |
54 | IConfig groupsConfig = config.Configs["Groups"]; | ||
55 | string url = groupsConfig.GetString("GroupsServerURI", string.Empty); | ||
56 | if (!Uri.IsWellFormedUriString(url, UriKind.Absolute)) | ||
57 | throw new Exception(string.Format("[Groups.RemoteConnector]: Malformed groups server URL {0}. Fix it or disable the Groups feature.", url)); | ||
58 | |||
52 | m_ServerURI = url; | 59 | m_ServerURI = url; |
53 | if (!m_ServerURI.EndsWith("/")) | 60 | if (!m_ServerURI.EndsWith("/")) |
54 | m_ServerURI += "/"; | 61 | m_ServerURI += "/"; |
55 | 62 | ||
56 | m_SecretKey = secret; | 63 | /// This is from BaseServiceConnector |
57 | m_log.DebugFormat("[Groups.RemoteConnector]: Groups server at {0}, secret key {1}", m_ServerURI, m_SecretKey); | 64 | string authType = Util.GetConfigVarFromSections<string>(config, "AuthType", new string[] { "Network", "Groups" }, "None"); |
65 | |||
66 | switch (authType) | ||
67 | { | ||
68 | case "BasicHttpAuthentication": | ||
69 | m_Auth = new BasicHttpAuthentication(config, "Groups"); | ||
70 | break; | ||
71 | } | ||
72 | /// | ||
73 | |||
74 | m_log.DebugFormat("[Groups.RemoteConnector]: Groups server at {0}, authentication {1}", | ||
75 | m_ServerURI, (m_Auth == null ? "None" : m_Auth.GetType().ToString())); | ||
58 | } | 76 | } |
59 | 77 | ||
60 | public ExtendedGroupRecord CreateGroup(string RequestingAgentID, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment, | 78 | public ExtendedGroupRecord CreateGroup(string RequestingAgentID, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment, |
@@ -656,14 +674,13 @@ namespace OpenSim.Groups | |||
656 | private Dictionary<string, object> MakeRequest(string method, Dictionary<string, object> sendData) | 674 | private Dictionary<string, object> MakeRequest(string method, Dictionary<string, object> sendData) |
657 | { | 675 | { |
658 | sendData["METHOD"] = method; | 676 | sendData["METHOD"] = method; |
659 | if (m_SecretKey != string.Empty) | ||
660 | sendData["KEY"] = m_SecretKey; | ||
661 | 677 | ||
662 | string reply = string.Empty; | 678 | string reply = string.Empty; |
663 | lock (m_Lock) | 679 | lock (m_Lock) |
664 | reply = SynchronousRestFormsRequester.MakeRequest("POST", | 680 | reply = SynchronousRestFormsRequester.MakeRequest("POST", |
665 | m_ServerURI + "groups", | 681 | m_ServerURI + "groups", |
666 | ServerUtils.BuildQueryString(sendData)); | 682 | ServerUtils.BuildQueryString(sendData), |
683 | m_Auth); | ||
667 | 684 | ||
668 | if (reply == string.Empty) | 685 | if (reply == string.Empty) |
669 | return null; | 686 | return null; |