aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Addons/Groups/Remote/GroupsServiceRemoteConnector.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Addons/Groups/Remote/GroupsServiceRemoteConnector.cs')
-rw-r--r--OpenSim/Addons/Groups/Remote/GroupsServiceRemoteConnector.cs33
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;
32using System.Text; 32using System.Text;
33 33
34using OpenSim.Framework; 34using OpenSim.Framework;
35using OpenSim.Framework.ServiceAuth;
35using OpenSim.Server.Base; 36using OpenSim.Server.Base;
36 37
37using OpenMetaverse; 38using OpenMetaverse;
38using log4net; 39using log4net;
40using Nini.Config;
39 41
40namespace OpenSim.Groups 42namespace 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;