aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Server/Handlers/Authorization
diff options
context:
space:
mode:
authorRob Smart2009-09-10 20:15:50 +0100
committerDiva Canto2009-09-10 17:53:05 -0700
commitb5c8925fdf17db87df6118449f2f84adb1326225 (patch)
tree6e332f052221028039c7f80d919227d1b4d95289 /OpenSim/Server/Handlers/Authorization
parentadding in working functionality for the remote connector (diff)
downloadopensim-SC-b5c8925fdf17db87df6118449f2f84adb1326225.zip
opensim-SC-b5c8925fdf17db87df6118449f2f84adb1326225.tar.gz
opensim-SC-b5c8925fdf17db87df6118449f2f84adb1326225.tar.bz2
opensim-SC-b5c8925fdf17db87df6118449f2f84adb1326225.tar.xz
added AuthorizationRequest and AuthorizationResponse objects for passing Authorization messages over http. Added handling code for these in the AuthorizationServerConnector and AuthorizationServicesConnector
Diffstat (limited to 'OpenSim/Server/Handlers/Authorization')
-rw-r--r--OpenSim/Server/Handlers/Authorization/AuthorizationServerConnector.cs2
-rw-r--r--OpenSim/Server/Handlers/Authorization/AuthorizationServerPostHandler.cs (renamed from OpenSim/Server/Handlers/Authorization/AuthorizationServerGetHandler.cs)49
2 files changed, 13 insertions, 38 deletions
diff --git a/OpenSim/Server/Handlers/Authorization/AuthorizationServerConnector.cs b/OpenSim/Server/Handlers/Authorization/AuthorizationServerConnector.cs
index 725cf78..0d9f239 100644
--- a/OpenSim/Server/Handlers/Authorization/AuthorizationServerConnector.cs
+++ b/OpenSim/Server/Handlers/Authorization/AuthorizationServerConnector.cs
@@ -55,7 +55,7 @@ namespace OpenSim.Server.Handlers.Authorization
55 m_AuthorizationService = 55 m_AuthorizationService =
56 ServerUtils.LoadPlugin<IAuthorizationService>(authorizationService, args); 56 ServerUtils.LoadPlugin<IAuthorizationService>(authorizationService, args);
57 57
58 server.AddStreamHandler(new AuthorizationServerGetHandler(m_AuthorizationService)); 58 server.AddStreamHandler(new AuthorizationServerPostHandler(m_AuthorizationService));
59 } 59 }
60 } 60 }
61} 61}
diff --git a/OpenSim/Server/Handlers/Authorization/AuthorizationServerGetHandler.cs b/OpenSim/Server/Handlers/Authorization/AuthorizationServerPostHandler.cs
index 9e4c00e..407a18a 100644
--- a/OpenSim/Server/Handlers/Authorization/AuthorizationServerGetHandler.cs
+++ b/OpenSim/Server/Handlers/Authorization/AuthorizationServerPostHandler.cs
@@ -28,8 +28,8 @@
28using Nini.Config; 28using Nini.Config;
29using log4net; 29using log4net;
30using System; 30using System;
31using System.IO;
32using System.Reflection; 31using System.Reflection;
32using System.IO;
33using System.Net; 33using System.Net;
34using System.Text; 34using System.Text;
35using System.Text.RegularExpressions; 35using System.Text.RegularExpressions;
@@ -42,54 +42,29 @@ using OpenSim.Framework.Servers.HttpServer;
42 42
43namespace OpenSim.Server.Handlers.Authorization 43namespace OpenSim.Server.Handlers.Authorization
44{ 44{
45 public class AuthorizationServerGetHandler : BaseStreamHandler 45 public class AuthorizationServerPostHandler : BaseStreamHandler
46 { 46 {
47 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 47 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
48 48
49 private IAuthorizationService m_AuthorizationService;
49 50
50 public AuthorizationServerGetHandler(IAuthorizationService service) : 51 public AuthorizationServerPostHandler(IAuthorizationService service) :
51 base("GET", "/authorization") 52 base("POST", "/authorization")
52 { 53 {
54 m_AuthorizationService = service;
53 } 55 }
54 56
55 public override byte[] Handle(string path, Stream request, 57 public override byte[] Handle(string path, Stream request,
56 OSHttpRequest httpRequest, OSHttpResponse httpResponse) 58 OSHttpRequest httpRequest, OSHttpResponse httpResponse)
57 { 59 {
58 // always return success for now, this is just stub functionality 60 XmlSerializer xs = new XmlSerializer(typeof (AuthorizationRequest));
59 return SuccessResult(); 61 AuthorizationRequest Authorization = (AuthorizationRequest) xs.Deserialize(request);
60 }
61
62 private byte[] SuccessResult()
63 {
64 XmlDocument doc = new XmlDocument();
65
66 XmlNode xmlnode = doc.CreateNode(XmlNodeType.XmlDeclaration,
67 "", "");
68
69 doc.AppendChild(xmlnode);
70 62
71 XmlElement rootElement = doc.CreateElement("", "Authorization", 63 AuthorizationResponse result = new AuthorizationResponse(true,Authorization.FirstName + " " + Authorization.SurName + " has been authorized");
72 "");
73
74 doc.AppendChild(rootElement);
75
76 XmlElement result = doc.CreateElement("", "Result", "");
77 result.AppendChild(doc.CreateTextNode("success"));
78
79 rootElement.AppendChild(result);
80
81 return DocToBytes(doc);
82 }
83
84 private byte[] DocToBytes(XmlDocument doc)
85 {
86 MemoryStream ms = new MemoryStream();
87 XmlTextWriter xw = new XmlTextWriter(ms, null);
88 xw.Formatting = Formatting.Indented;
89 doc.WriteTo(xw);
90 xw.Flush();
91 64
92 return ms.GetBuffer(); 65 xs = new XmlSerializer(typeof(AuthorizationResponse));
66 return ServerUtils.SerializeResult(xs, result);
67
93 } 68 }
94 } 69 }
95} 70}