From 7870152d23db4cb6f5834d4921fac17feb717220 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 24 Sep 2009 14:54:12 +0100
Subject: Allow load/save iar password checks to be done in grid mode This
should allow load/save iar to work for grid mode as long as the grid user
service is later than this revision Grid services of earlier revisions will
always erroneously report incorrect password. This will be addressed
shortly.
---
.../Framework/Communications/UserManagerBase.cs | 32 +++++++++++++++++++---
1 file changed, 28 insertions(+), 4 deletions(-)
(limited to 'OpenSim/Framework/Communications/UserManagerBase.cs')
diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs
index 58174a0..1abd733 100644
--- a/OpenSim/Framework/Communications/UserManagerBase.cs
+++ b/OpenSim/Framework/Communications/UserManagerBase.cs
@@ -44,7 +44,8 @@ namespace OpenSim.Framework.Communications
///
/// Base class for user management (create, read, etc)
///
- public abstract class UserManagerBase : IUserService, IUserAdminService, IAvatarService, IMessagingService, IAuthentication
+ public abstract class UserManagerBase
+ : IUserService, IUserAdminService, IAvatarService, IMessagingService, IAuthentication
{
private static readonly ILog m_log
= LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@@ -93,9 +94,9 @@ namespace OpenSim.Framework.Communications
public void AddPlugin(string provider, string connect)
{
m_plugins.AddRange(DataPluginFactory.LoadDataPlugins(provider, connect));
- }
+ }
- #region UserProfile
+ #region UserProfile
public virtual void AddTemporaryUserProfile(UserProfileData userProfile)
{
@@ -891,7 +892,10 @@ namespace OpenSim.Framework.Communications
if (userProfile != null && userProfile.CurrentAgent != null)
{
- m_log.DebugFormat("[USER AUTH]: Verifying session {0} for {1}; current session {2}", sessionID, userID, userProfile.CurrentAgent.SessionID);
+ m_log.DebugFormat(
+ "[USER AUTH]: Verifying session {0} for {1}; current session {2}",
+ sessionID, userID, userProfile.CurrentAgent.SessionID);
+
if (userProfile.CurrentAgent.SessionID == sessionID)
{
return true;
@@ -901,6 +905,26 @@ namespace OpenSim.Framework.Communications
return false;
}
+ public virtual bool AuthenticateUserByPassword(UUID userID, string password)
+ {
+// m_log.DebugFormat("[USER AUTH]: Authenticating user {0} given password {1}", userID, password);
+
+ UserProfileData userProfile = GetUserProfile(userID);
+
+ if (null == userProfile)
+ return false;
+
+ string md5PasswordHash = Util.Md5Hash(Util.Md5Hash(password) + ":" + userProfile.PasswordSalt);
+
+// m_log.DebugFormat(
+// "[USER AUTH]: Submitted hash {0}, stored hash {1}", md5PasswordHash, userProfile.PasswordHash);
+
+ if (md5PasswordHash == userProfile.PasswordHash)
+ return true;
+ else
+ return false;
+ }
+
#endregion
}
}
--
cgit v1.1