aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Services')
-rw-r--r--OpenSim/Services/AuthenticationService/AuthenticationServiceBase.cs47
-rw-r--r--OpenSim/Services/Connectors/Authentication/AuthenticationServiceConnector.cs12
-rw-r--r--OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs10
-rw-r--r--OpenSim/Services/Interfaces/IAuthenticationService.cs26
4 files changed, 94 insertions, 1 deletions
diff --git a/OpenSim/Services/AuthenticationService/AuthenticationServiceBase.cs b/OpenSim/Services/AuthenticationService/AuthenticationServiceBase.cs
index edc1097..229f557 100644
--- a/OpenSim/Services/AuthenticationService/AuthenticationServiceBase.cs
+++ b/OpenSim/Services/AuthenticationService/AuthenticationServiceBase.cs
@@ -30,9 +30,10 @@ using OpenMetaverse;
30using log4net; 30using log4net;
31using Nini.Config; 31using Nini.Config;
32using System.Reflection; 32using System.Reflection;
33using OpenSim.Services.Base;
34using OpenSim.Data; 33using OpenSim.Data;
35using OpenSim.Framework; 34using OpenSim.Framework;
35using OpenSim.Services.Base;
36using OpenSim.Services.Interfaces;
36 37
37namespace OpenSim.Services.AuthenticationService 38namespace OpenSim.Services.AuthenticationService
38{ 39{
@@ -126,6 +127,50 @@ namespace OpenSim.Services.AuthenticationService
126 m_log.InfoFormat("[AUTHENTICATION DB]: Set password for principalID {0}", principalID); 127 m_log.InfoFormat("[AUTHENTICATION DB]: Set password for principalID {0}", principalID);
127 return true; 128 return true;
128 } 129 }
130
131 public virtual AuthInfo GetAuthInfo(UUID principalID)
132 {
133 AuthenticationData data = m_Database.Get(principalID);
134
135 if (data == null)
136 {
137 return null;
138 }
139 else
140 {
141 AuthInfo info
142 = new AuthInfo()
143 {
144 PrincipalID = data.PrincipalID,
145 AccountType = data.Data["accountType"] as string,
146 PasswordHash = data.Data["passwordHash"] as string,
147 PasswordSalt = data.Data["passwordSalt"] as string,
148 WebLoginKey = data.Data["webLoginKey"] as string
149 };
150
151 return info;
152 }
153 }
154
155 public virtual bool SetAuthInfo(AuthInfo info)
156 {
157 AuthenticationData auth = new AuthenticationData();
158 auth.PrincipalID = info.PrincipalID;
159 auth.Data = new System.Collections.Generic.Dictionary<string, object>();
160 auth.Data["accountType"] = info.AccountType;
161 auth.Data["webLoginKey"] = info.WebLoginKey;
162 auth.Data["passwordHash"] = info.PasswordHash;
163 auth.Data["passwordSalt"] = info.PasswordSalt;
164
165 if (!m_Database.Store(auth))
166 {
167 m_log.ErrorFormat("[AUTHENTICATION DB]: Failed to store authentication info.");
168 return false;
169 }
170
171 m_log.DebugFormat("[AUTHENTICATION DB]: Set authentication info for principalID {0}", info.PrincipalID);
172 return true;
173 }
129 174
130 protected string GetToken(UUID principalID, int lifetime) 175 protected string GetToken(UUID principalID, int lifetime)
131 { 176 {
diff --git a/OpenSim/Services/Connectors/Authentication/AuthenticationServiceConnector.cs b/OpenSim/Services/Connectors/Authentication/AuthenticationServiceConnector.cs
index c04e7a4..2b77154 100644
--- a/OpenSim/Services/Connectors/Authentication/AuthenticationServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Authentication/AuthenticationServiceConnector.cs
@@ -151,5 +151,17 @@ namespace OpenSim.Services.Connectors
151 // nope, we don't do this 151 // nope, we don't do this
152 return false; 152 return false;
153 } 153 }
154
155 public AuthInfo GetAuthInfo(UUID principalID)
156 {
157 // not done from remote simulators
158 return null;
159 }
160
161 public bool SetAuthInfo(AuthInfo info)
162 {
163 // not done from remote simulators
164 return false;
165 }
154 } 166 }
155} 167}
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs
index 51a09f8..69f6ed2 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs
@@ -236,6 +236,16 @@ namespace OpenSim.Services.Connectors.SimianGrid
236 return false; 236 return false;
237 } 237 }
238 238
239 public AuthInfo GetAuthInfo(UUID principalID)
240 {
241 throw new NotImplementedException();
242 }
243
244 public bool SetAuthInfo(AuthInfo info)
245 {
246 throw new NotImplementedException();
247 }
248
239 private bool CheckPassword(UUID userID, string password, string simianGridCredential, out string authorizeResult) 249 private bool CheckPassword(UUID userID, string password, string simianGridCredential, out string authorizeResult)
240 { 250 {
241 if (simianGridCredential.Contains(":")) 251 if (simianGridCredential.Contains(":"))
diff --git a/OpenSim/Services/Interfaces/IAuthenticationService.cs b/OpenSim/Services/Interfaces/IAuthenticationService.cs
index 9de261b..cee8bc0 100644
--- a/OpenSim/Services/Interfaces/IAuthenticationService.cs
+++ b/OpenSim/Services/Interfaces/IAuthenticationService.cs
@@ -26,10 +26,32 @@
26 */ 26 */
27 27
28using System; 28using System;
29using System.Collections.Generic;
29using OpenMetaverse; 30using OpenMetaverse;
30 31
31namespace OpenSim.Services.Interfaces 32namespace OpenSim.Services.Interfaces
32{ 33{
34 public class AuthInfo
35 {
36 public UUID PrincipalID { get; set; }
37 public string AccountType { get; set; }
38 public string PasswordHash { get; set; }
39 public string PasswordSalt { get; set; }
40 public string WebLoginKey { get; set; }
41
42 public Dictionary<string, object> ToKeyValuePairs()
43 {
44 Dictionary<string, object> result = new Dictionary<string, object>();
45 result["PrincipalID"] = PrincipalID;
46 result["AccountType"] = AccountType;
47 result["PasswordHash"] = PasswordHash;
48 result["PasswordSalt"] = PasswordSalt;
49 result["WebLoginKey"] = WebLoginKey;
50
51 return result;
52 }
53 }
54
33 // Generic Authentication service used for identifying 55 // Generic Authentication service used for identifying
34 // and authenticating principals. 56 // and authenticating principals.
35 // Principals may be clients acting on users' behalf, 57 // Principals may be clients acting on users' behalf,
@@ -76,6 +98,10 @@ namespace OpenSim.Services.Interfaces
76 // 98 //
77 bool SetPassword(UUID principalID, string passwd); 99 bool SetPassword(UUID principalID, string passwd);
78 100
101 AuthInfo GetAuthInfo(UUID principalID);
102
103 bool SetAuthInfo(AuthInfo info);
104
79 ////////////////////////////////////////////////////// 105 //////////////////////////////////////////////////////
80 // Grid 106 // Grid
81 // 107 //