diff options
author | Rob Smart | 2009-09-10 20:15:50 +0100 |
---|---|---|
committer | Diva Canto | 2009-09-10 17:53:05 -0700 |
commit | b5c8925fdf17db87df6118449f2f84adb1326225 (patch) | |
tree | 6e332f052221028039c7f80d919227d1b4d95289 /OpenSim/Server | |
parent | adding in working functionality for the remote connector (diff) | |
download | opensim-SC_OLD-b5c8925fdf17db87df6118449f2f84adb1326225.zip opensim-SC_OLD-b5c8925fdf17db87df6118449f2f84adb1326225.tar.gz opensim-SC_OLD-b5c8925fdf17db87df6118449f2f84adb1326225.tar.bz2 opensim-SC_OLD-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')
-rw-r--r-- | OpenSim/Server/Handlers/Authorization/AuthorizationServerConnector.cs | 2 | ||||
-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 @@ | |||
28 | using Nini.Config; | 28 | using Nini.Config; |
29 | using log4net; | 29 | using log4net; |
30 | using System; | 30 | using System; |
31 | using System.IO; | ||
32 | using System.Reflection; | 31 | using System.Reflection; |
32 | using System.IO; | ||
33 | using System.Net; | 33 | using System.Net; |
34 | using System.Text; | 34 | using System.Text; |
35 | using System.Text.RegularExpressions; | 35 | using System.Text.RegularExpressions; |
@@ -42,54 +42,29 @@ using OpenSim.Framework.Servers.HttpServer; | |||
42 | 42 | ||
43 | namespace OpenSim.Server.Handlers.Authorization | 43 | namespace 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 | } |