aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie2009-09-19 18:06:25 +0100
committerMelanie2009-09-19 18:06:25 +0100
commit2f624800d37bae36cecf1bff191b646d59d86746 (patch)
tree4ece499924c10bbf8ea8f225fede0e59beab9da1
parentAdd the skeleton of the authentication connector and the forms data requester (diff)
downloadopensim-SC-2f624800d37bae36cecf1bff191b646d59d86746.zip
opensim-SC-2f624800d37bae36cecf1bff191b646d59d86746.tar.gz
opensim-SC-2f624800d37bae36cecf1bff191b646d59d86746.tar.bz2
opensim-SC-2f624800d37bae36cecf1bff191b646d59d86746.tar.xz
Adding the deserializer for server form/xml replies
-rw-r--r--OpenSim/Server/Base/ServerUtils.cs42
-rw-r--r--OpenSim/Server/Handlers/Authentication/AuthenticationServerPostHandler.cs6
-rw-r--r--OpenSim/Services/Connectors/Authentication/AuthenticationServiceConnector.cs12
3 files changed, 57 insertions, 3 deletions
diff --git a/OpenSim/Server/Base/ServerUtils.cs b/OpenSim/Server/Base/ServerUtils.cs
index ae7ec0f..6c2b3ed 100644
--- a/OpenSim/Server/Base/ServerUtils.cs
+++ b/OpenSim/Server/Base/ServerUtils.cs
@@ -255,5 +255,47 @@ namespace OpenSim.Server.Base
255 parent.AppendChild(elem); 255 parent.AppendChild(elem);
256 } 256 }
257 } 257 }
258
259 public static Dictionary<string, object> ParseXmlResponse(string data)
260 {
261 Dictionary<string, object> ret = new Dictionary<string, object>();
262
263 XmlDocument doc = new XmlDocument();
264
265 doc.LoadXml(data);
266
267 XmlNodeList rootL = doc.GetElementsByTagName("ServerResponse");
268
269 if (rootL.Count != 1)
270 return ret;
271
272 XmlNode rootNode = rootL[0];
273
274 ret = ParseElement(rootNode);
275
276 return ret;
277 }
278
279 private static Dictionary<string, object> ParseElement(XmlNode element)
280 {
281 Dictionary<string, object> ret = new Dictionary<string, object>();
282
283 XmlNodeList partL = element.ChildNodes;
284
285 foreach (XmlNode part in partL)
286 {
287 XmlNode type = part.Attributes.GetNamedItem("Type");
288 if (type == null || type.Value != "List")
289 {
290 ret[part.Name] = part.InnerText;
291 }
292 else
293 {
294 ret[part.Name] = ParseElement(part);
295 }
296 }
297
298 return ret;
299 }
258 } 300 }
259} 301}
diff --git a/OpenSim/Server/Handlers/Authentication/AuthenticationServerPostHandler.cs b/OpenSim/Server/Handlers/Authentication/AuthenticationServerPostHandler.cs
index 6cf7d56..490a13a 100644
--- a/OpenSim/Server/Handlers/Authentication/AuthenticationServerPostHandler.cs
+++ b/OpenSim/Server/Handlers/Authentication/AuthenticationServerPostHandler.cs
@@ -157,7 +157,7 @@ namespace OpenSim.Server.Handlers.Authentication
157 157
158 doc.AppendChild(xmlnode); 158 doc.AppendChild(xmlnode);
159 159
160 XmlElement rootElement = doc.CreateElement("", "Authentication", 160 XmlElement rootElement = doc.CreateElement("", "ServerResponse",
161 ""); 161 "");
162 162
163 doc.AppendChild(rootElement); 163 doc.AppendChild(rootElement);
@@ -179,7 +179,7 @@ namespace OpenSim.Server.Handlers.Authentication
179 179
180 doc.AppendChild(xmlnode); 180 doc.AppendChild(xmlnode);
181 181
182 XmlElement rootElement = doc.CreateElement("", "Authentication", 182 XmlElement rootElement = doc.CreateElement("", "ServerResponse",
183 ""); 183 "");
184 184
185 doc.AppendChild(rootElement); 185 doc.AppendChild(rootElement);
@@ -201,7 +201,7 @@ namespace OpenSim.Server.Handlers.Authentication
201 201
202 doc.AppendChild(xmlnode); 202 doc.AppendChild(xmlnode);
203 203
204 XmlElement rootElement = doc.CreateElement("", "Authentication", 204 XmlElement rootElement = doc.CreateElement("", "ServerResponse",
205 ""); 205 "");
206 206
207 doc.AppendChild(rootElement); 207 doc.AppendChild(rootElement);
diff --git a/OpenSim/Services/Connectors/Authentication/AuthenticationServiceConnector.cs b/OpenSim/Services/Connectors/Authentication/AuthenticationServiceConnector.cs
index 053d27c..35f96a1 100644
--- a/OpenSim/Services/Connectors/Authentication/AuthenticationServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Authentication/AuthenticationServiceConnector.cs
@@ -35,6 +35,7 @@ using OpenSim.Framework;
35using OpenSim.Framework.Communications; 35using OpenSim.Framework.Communications;
36using OpenSim.Framework.Servers.HttpServer; 36using OpenSim.Framework.Servers.HttpServer;
37using OpenSim.Services.Interfaces; 37using OpenSim.Services.Interfaces;
38using OpenSim.Server.Base;
38using OpenMetaverse; 39using OpenMetaverse;
39 40
40namespace OpenSim.Services.Connectors 41namespace OpenSim.Services.Connectors
@@ -83,6 +84,17 @@ namespace OpenSim.Services.Connectors
83 84
84 public string Authenticate(UUID principalID, string password, int lifetime) 85 public string Authenticate(UUID principalID, string password, int lifetime)
85 { 86 {
87 Dictionary<string, string> sendData = new Dictionary<string, string>();
88 sendData["LIFETIME"] = lifetime.ToString();
89 sendData["PRINCIPAL"] = principalID.ToString();
90 sendData["PASSWORD"] = password;
91
92 sendData["METHOD"] = "authenticate";
93
94 string reply = SynchronousRestFormsRequester.MakeRequest("POST",
95 m_ServerURI + "/auth/plain",
96 ServerUtils.BuildQueryString(sendData));
97
86 return String.Empty; 98 return String.Empty;
87 } 99 }
88 100