diff options
Diffstat (limited to 'OpenSim/Services')
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; | |||
30 | using log4net; | 30 | using log4net; |
31 | using Nini.Config; | 31 | using Nini.Config; |
32 | using System.Reflection; | 32 | using System.Reflection; |
33 | using OpenSim.Services.Base; | ||
34 | using OpenSim.Data; | 33 | using OpenSim.Data; |
35 | using OpenSim.Framework; | 34 | using OpenSim.Framework; |
35 | using OpenSim.Services.Base; | ||
36 | using OpenSim.Services.Interfaces; | ||
36 | 37 | ||
37 | namespace OpenSim.Services.AuthenticationService | 38 | namespace 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 | ||
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | ||
29 | using OpenMetaverse; | 30 | using OpenMetaverse; |
30 | 31 | ||
31 | namespace OpenSim.Services.Interfaces | 32 | namespace 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 | // |