diff options
Diffstat (limited to 'OpenSim/Server/Handlers/Authentication')
-rw-r--r-- | OpenSim/Server/Handlers/Authentication/HGAuthServerConnector.cs | 124 | ||||
-rw-r--r-- | OpenSim/Server/Handlers/Authentication/HGAuthenticationHandlers.cs | 234 |
2 files changed, 179 insertions, 179 deletions
diff --git a/OpenSim/Server/Handlers/Authentication/HGAuthServerConnector.cs b/OpenSim/Server/Handlers/Authentication/HGAuthServerConnector.cs index 2b4c380..2d31564 100644 --- a/OpenSim/Server/Handlers/Authentication/HGAuthServerConnector.cs +++ b/OpenSim/Server/Handlers/Authentication/HGAuthServerConnector.cs | |||
@@ -1,62 +1,62 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSimulator Project nor the | 12 | * * Neither the name of the OpenSimulator Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using Nini.Config; | 29 | using Nini.Config; |
30 | using OpenSim.Server.Base; | 30 | using OpenSim.Server.Base; |
31 | using OpenSim.Services.Interfaces; | 31 | using OpenSim.Services.Interfaces; |
32 | using OpenSim.Framework.Servers.HttpServer; | 32 | using OpenSim.Framework.Servers.HttpServer; |
33 | using OpenSim.Server.Handlers.Base; | 33 | using OpenSim.Server.Handlers.Base; |
34 | 34 | ||
35 | namespace OpenSim.Server.Handlers.Authentication | 35 | namespace OpenSim.Server.Handlers.Authentication |
36 | { | 36 | { |
37 | public class HGAuthServiceInConnector : ServiceConnector | 37 | public class HGAuthServiceInConnector : ServiceConnector |
38 | { | 38 | { |
39 | private IAuthenticationService m_AuthenticationService; | 39 | private IAuthenticationService m_AuthenticationService; |
40 | 40 | ||
41 | public HGAuthServiceInConnector(IConfigSource config, IHttpServer server) : | 41 | public HGAuthServiceInConnector(IConfigSource config, IHttpServer server) : |
42 | base(config, server) | 42 | base(config, server) |
43 | { | 43 | { |
44 | IConfig serverConfig = config.Configs["AuthenticationService"]; | 44 | IConfig serverConfig = config.Configs["AuthenticationService"]; |
45 | if (serverConfig == null) | 45 | if (serverConfig == null) |
46 | throw new Exception("No section 'AuthenticationService' in config file"); | 46 | throw new Exception("No section 'AuthenticationService' in config file"); |
47 | 47 | ||
48 | string authenticationService = serverConfig.GetString("LocalServiceModule", | 48 | string authenticationService = serverConfig.GetString("LocalServiceModule", |
49 | String.Empty); | 49 | String.Empty); |
50 | 50 | ||
51 | if (authenticationService == String.Empty) | 51 | if (authenticationService == String.Empty) |
52 | throw new Exception("No AuthenticationService in config file"); | 52 | throw new Exception("No AuthenticationService in config file"); |
53 | 53 | ||
54 | Object[] args = new Object[] { config }; | 54 | Object[] args = new Object[] { config }; |
55 | m_AuthenticationService = ServerUtils.LoadPlugin<IAuthenticationService>(authenticationService, args); | 55 | m_AuthenticationService = ServerUtils.LoadPlugin<IAuthenticationService>(authenticationService, args); |
56 | 56 | ||
57 | HGAuthenticationHandlers m_handlers = new HGAuthenticationHandlers(m_AuthenticationService); | 57 | HGAuthenticationHandlers m_handlers = new HGAuthenticationHandlers(m_AuthenticationService); |
58 | server.AddXmlRPCHandler("hg_new_auth_key", m_handlers.GenerateKeyMethod); | 58 | server.AddXmlRPCHandler("hg_new_auth_key", m_handlers.GenerateKeyMethod); |
59 | server.AddXmlRPCHandler("hg_verify_auth_key", m_handlers.VerifyKeyMethod); | 59 | server.AddXmlRPCHandler("hg_verify_auth_key", m_handlers.VerifyKeyMethod); |
60 | } | 60 | } |
61 | } | 61 | } |
62 | } | 62 | } |
diff --git a/OpenSim/Server/Handlers/Authentication/HGAuthenticationHandlers.cs b/OpenSim/Server/Handlers/Authentication/HGAuthenticationHandlers.cs index 1bcbaf5..58a1823 100644 --- a/OpenSim/Server/Handlers/Authentication/HGAuthenticationHandlers.cs +++ b/OpenSim/Server/Handlers/Authentication/HGAuthenticationHandlers.cs | |||
@@ -1,117 +1,117 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSimulator Project nor the | 12 | * * Neither the name of the OpenSimulator Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Collections; | 29 | using System.Collections; |
30 | using System.IO; | 30 | using System.IO; |
31 | using System.Reflection; | 31 | using System.Reflection; |
32 | using System.Net; | 32 | using System.Net; |
33 | using System.Text; | 33 | using System.Text; |
34 | 34 | ||
35 | using OpenSim.Server.Base; | 35 | using OpenSim.Server.Base; |
36 | using OpenSim.Server.Handlers.Base; | 36 | using OpenSim.Server.Handlers.Base; |
37 | using OpenSim.Services.Interfaces; | 37 | using OpenSim.Services.Interfaces; |
38 | using OpenSim.Framework; | 38 | using OpenSim.Framework; |
39 | using OpenSim.Framework.Servers.HttpServer; | 39 | using OpenSim.Framework.Servers.HttpServer; |
40 | 40 | ||
41 | using OpenMetaverse; | 41 | using OpenMetaverse; |
42 | using OpenMetaverse.StructuredData; | 42 | using OpenMetaverse.StructuredData; |
43 | using Nwc.XmlRpc; | 43 | using Nwc.XmlRpc; |
44 | using Nini.Config; | 44 | using Nini.Config; |
45 | using log4net; | 45 | using log4net; |
46 | 46 | ||
47 | namespace OpenSim.Server.Handlers.Authentication | 47 | namespace OpenSim.Server.Handlers.Authentication |
48 | { | 48 | { |
49 | public class HGAuthenticationHandlers | 49 | public class HGAuthenticationHandlers |
50 | { | 50 | { |
51 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 51 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
52 | 52 | ||
53 | private IAuthenticationService m_LocalService; | 53 | private IAuthenticationService m_LocalService; |
54 | 54 | ||
55 | public HGAuthenticationHandlers(IAuthenticationService service) | 55 | public HGAuthenticationHandlers(IAuthenticationService service) |
56 | { | 56 | { |
57 | m_LocalService = service; | 57 | m_LocalService = service; |
58 | } | 58 | } |
59 | 59 | ||
60 | 60 | ||
61 | public XmlRpcResponse GenerateKeyMethod(XmlRpcRequest request, IPEndPoint remoteClient) | 61 | public XmlRpcResponse GenerateKeyMethod(XmlRpcRequest request, IPEndPoint remoteClient) |
62 | { | 62 | { |
63 | XmlRpcResponse response = new XmlRpcResponse(); | 63 | XmlRpcResponse response = new XmlRpcResponse(); |
64 | 64 | ||
65 | if (request.Params.Count < 2) | 65 | if (request.Params.Count < 2) |
66 | { | 66 | { |
67 | response.IsFault = true; | 67 | response.IsFault = true; |
68 | response.SetFault(-1, "Invalid parameters"); | 68 | response.SetFault(-1, "Invalid parameters"); |
69 | return response; | 69 | return response; |
70 | } | 70 | } |
71 | 71 | ||
72 | // Verify the key of who's calling | 72 | // Verify the key of who's calling |
73 | UUID userID = UUID.Zero; | 73 | UUID userID = UUID.Zero; |
74 | string authKey = string.Empty; | 74 | string authKey = string.Empty; |
75 | UUID.TryParse((string)request.Params[0], out userID); | 75 | UUID.TryParse((string)request.Params[0], out userID); |
76 | authKey = (string)request.Params[1]; | 76 | authKey = (string)request.Params[1]; |
77 | 77 | ||
78 | m_log.InfoFormat("[AUTH HANDLER] GenerateKey called with authToken {0}", authKey); | 78 | m_log.InfoFormat("[AUTH HANDLER] GenerateKey called with authToken {0}", authKey); |
79 | string newKey = string.Empty; | 79 | string newKey = string.Empty; |
80 | 80 | ||
81 | newKey = m_LocalService.GetKey(userID, authKey.ToString()); | 81 | newKey = m_LocalService.GetKey(userID, authKey.ToString()); |
82 | 82 | ||
83 | response.Value = (string)newKey; | 83 | response.Value = (string)newKey; |
84 | return response; | 84 | return response; |
85 | } | 85 | } |
86 | 86 | ||
87 | public XmlRpcResponse VerifyKeyMethod(XmlRpcRequest request, IPEndPoint remoteClient) | 87 | public XmlRpcResponse VerifyKeyMethod(XmlRpcRequest request, IPEndPoint remoteClient) |
88 | { | 88 | { |
89 | bool success = false; | 89 | bool success = false; |
90 | XmlRpcResponse response = new XmlRpcResponse(); | 90 | XmlRpcResponse response = new XmlRpcResponse(); |
91 | 91 | ||
92 | if (request.Params.Count != 2) | 92 | if (request.Params.Count != 2) |
93 | { | 93 | { |
94 | response.IsFault = true; | 94 | response.IsFault = true; |
95 | response.SetFault(-1, "Invalid parameters"); | 95 | response.SetFault(-1, "Invalid parameters"); |
96 | return response; | 96 | return response; |
97 | } | 97 | } |
98 | 98 | ||
99 | // Verify the key of who's calling | 99 | // Verify the key of who's calling |
100 | UUID userID = UUID.Zero; | 100 | UUID userID = UUID.Zero; |
101 | string authKey = string.Empty; | 101 | string authKey = string.Empty; |
102 | if (UUID.TryParse((string)request.Params[0], out userID)) | 102 | if (UUID.TryParse((string)request.Params[0], out userID)) |
103 | { | 103 | { |
104 | authKey = (string)request.Params[1]; | 104 | authKey = (string)request.Params[1]; |
105 | 105 | ||
106 | m_log.InfoFormat("[AUTH HANDLER] VerifyKey called with key {0}", authKey); | 106 | m_log.InfoFormat("[AUTH HANDLER] VerifyKey called with key {0}", authKey); |
107 | 107 | ||
108 | success = m_LocalService.VerifyKey(userID, authKey); | 108 | success = m_LocalService.VerifyKey(userID, authKey); |
109 | } | 109 | } |
110 | 110 | ||
111 | m_log.DebugFormat("[AUTH HANDLER]: Response to VerifyKey is {0}", success); | 111 | m_log.DebugFormat("[AUTH HANDLER]: Response to VerifyKey is {0}", success); |
112 | response.Value = success; | 112 | response.Value = success; |
113 | return response; | 113 | return response; |
114 | } | 114 | } |
115 | 115 | ||
116 | } | 116 | } |
117 | } | 117 | } |