aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie2010-06-16 04:10:55 +0100
committerMelanie2010-06-16 04:10:55 +0100
commit0b75f759b49d11beb49f456c04fa52ee367797a6 (patch)
tree54b7ec0551afd65c9eaf04a3ec5b5e7802c6826e /OpenSim
parentAdd "alert dialog" for sending dialogs to users from the console (diff)
parent* Support salted and unsalted password hashes in SimianAuthenticationServiceC... (diff)
downloadopensim-SC_OLD-0b75f759b49d11beb49f456c04fa52ee367797a6.zip
opensim-SC_OLD-0b75f759b49d11beb49f456c04fa52ee367797a6.tar.gz
opensim-SC_OLD-0b75f759b49d11beb49f456c04fa52ee367797a6.tar.bz2
opensim-SC_OLD-0b75f759b49d11beb49f456c04fa52ee367797a6.tar.xz
Merge branch 'master' into careminster-presence-refactor
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Data/MySQL/Resources/RegionStore.migrations2
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs2
-rw-r--r--OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs53
-rw-r--r--OpenSim/Services/Interfaces/IUserAccountService.cs4
4 files changed, 51 insertions, 10 deletions
diff --git a/OpenSim/Data/MySQL/Resources/RegionStore.migrations b/OpenSim/Data/MySQL/Resources/RegionStore.migrations
index c884eb4..88ee748 100644
--- a/OpenSim/Data/MySQL/Resources/RegionStore.migrations
+++ b/OpenSim/Data/MySQL/Resources/RegionStore.migrations
@@ -787,8 +787,6 @@ CREATE TABLE `regionwindlight` (
787 PRIMARY KEY (`region_id`) 787 PRIMARY KEY (`region_id`)
788); 788);
789 789
790ALTER TABLE estate_settings AUTO_INCREMENT = 100;
791COMMIT;
792 790
793:VERSION 33 #--------------------- 791:VERSION 33 #---------------------
794 792
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 82d4759..ef662f3 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1362,6 +1362,8 @@ namespace OpenSim.Region.Framework.Scenes
1362 m_regInfo.EstateSettings.EstateOwner = account.PrincipalID; 1362 m_regInfo.EstateSettings.EstateOwner = account.PrincipalID;
1363 m_regInfo.EstateSettings.Save(); 1363 m_regInfo.EstateSettings.Save();
1364 } 1364 }
1365 else
1366 m_log.ErrorFormat("[SCENE]: Unable to store account. If this simulator is connected to a grid,\n you must create the estate owner account first.");
1365 } 1367 }
1366 else 1368 else
1367 { 1369 {
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs
index de3ee4e..3c784f2 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs
@@ -114,10 +114,9 @@ namespace OpenSim.Services.Connectors.SimianGrid
114 { 114 {
115 if (identity["Type"].AsString() == "md5hash") 115 if (identity["Type"].AsString() == "md5hash")
116 { 116 {
117 string credential = identity["Credential"].AsString(); 117 string authorizeResult;
118 118 if (CheckPassword(principalID, password, identity["Credential"].AsString(), out authorizeResult))
119 if (password == credential || "$1$" + password == credential || "$1$" + Utils.MD5String(password) == credential || Utils.MD5String(password) == credential) 119 return authorizeResult;
120 return Authorize(principalID);
121 120
122 md5hashFound = true; 121 md5hashFound = true;
123 break; 122 break;
@@ -125,9 +124,7 @@ namespace OpenSim.Services.Connectors.SimianGrid
125 } 124 }
126 } 125 }
127 126
128 if (md5hashFound) 127 if (!md5hashFound)
129 m_log.Warn("[SIMIAN AUTH CONNECTOR]: Authentication failed for " + principalID + " using md5hash $1$" + Utils.MD5String(password));
130 else
131 m_log.Warn("[SIMIAN AUTH CONNECTOR]: Authentication failed for " + principalID + ", no md5hash identity found"); 128 m_log.Warn("[SIMIAN AUTH CONNECTOR]: Authentication failed for " + principalID + ", no md5hash identity found");
132 } 129 }
133 else 130 else
@@ -228,6 +225,48 @@ namespace OpenSim.Services.Connectors.SimianGrid
228 return false; 225 return false;
229 } 226 }
230 227
228 private bool CheckPassword(UUID userID, string password, string simianGridCredential, out string authorizeResult)
229 {
230 if (simianGridCredential.Contains(":"))
231 {
232 // Salted version
233 int idx = simianGridCredential.IndexOf(':');
234 string finalhash = simianGridCredential.Substring(0, idx);
235 string salt = simianGridCredential.Substring(idx + 1);
236
237 if (finalhash == Utils.MD5String(password + ":" + salt))
238 {
239 authorizeResult = Authorize(userID);
240 return true;
241 }
242 else
243 {
244 m_log.Warn("[SIMIAN AUTH CONNECTOR]: Authentication failed for " + userID +
245 " using md5hash " + Utils.MD5String(password) + ":" + salt);
246 }
247 }
248 else
249 {
250 // Unsalted version
251 if (password == simianGridCredential ||
252 "$1$" + password == simianGridCredential ||
253 "$1$" + Utils.MD5String(password) == simianGridCredential ||
254 Utils.MD5String(password) == simianGridCredential)
255 {
256 authorizeResult = Authorize(userID);
257 return true;
258 }
259 else
260 {
261 m_log.Warn("[SIMIAN AUTH CONNECTOR]: Authentication failed for " + userID +
262 " using md5hash $1$" + Utils.MD5String(password));
263 }
264 }
265
266 authorizeResult = null;
267 return false;
268 }
269
231 private string Authorize(UUID userID) 270 private string Authorize(UUID userID)
232 { 271 {
233 NameValueCollection requestArgs = new NameValueCollection 272 NameValueCollection requestArgs = new NameValueCollection
diff --git a/OpenSim/Services/Interfaces/IUserAccountService.cs b/OpenSim/Services/Interfaces/IUserAccountService.cs
index 09d1d87..c580078 100644
--- a/OpenSim/Services/Interfaces/IUserAccountService.cs
+++ b/OpenSim/Services/Interfaces/IUserAccountService.cs
@@ -29,6 +29,8 @@ using System;
29using System.Collections.Generic; 29using System.Collections.Generic;
30using OpenMetaverse; 30using OpenMetaverse;
31 31
32using OpenSim.Framework;
33
32namespace OpenSim.Services.Interfaces 34namespace OpenSim.Services.Interfaces
33{ 35{
34 public class UserAccount 36 public class UserAccount
@@ -50,7 +52,7 @@ namespace OpenSim.Services.Interfaces
50 LastName = lastName; 52 LastName = lastName;
51 Email = email; 53 Email = email;
52 ServiceURLs = new Dictionary<string, object>(); 54 ServiceURLs = new Dictionary<string, object>();
53 // Created = ??? 55 Created = Util.UnixTimeSinceEpoch();
54 } 56 }
55 57
56 public string FirstName; 58 public string FirstName;