diff options
Diffstat (limited to 'OpenSim/Services/LLLoginService/LLLoginService.cs')
-rw-r--r-- | OpenSim/Services/LLLoginService/LLLoginService.cs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/OpenSim/Services/LLLoginService/LLLoginService.cs b/OpenSim/Services/LLLoginService/LLLoginService.cs index abda98f..351c1ac 100644 --- a/OpenSim/Services/LLLoginService/LLLoginService.cs +++ b/OpenSim/Services/LLLoginService/LLLoginService.cs | |||
@@ -145,7 +145,8 @@ namespace OpenSim.Services.LLLoginService | |||
145 | Object[] args = new Object[] { config }; | 145 | Object[] args = new Object[] { config }; |
146 | m_UserAccountService = ServerUtils.LoadPlugin<IUserAccountService>(accountService, args); | 146 | m_UserAccountService = ServerUtils.LoadPlugin<IUserAccountService>(accountService, args); |
147 | m_GridUserService = ServerUtils.LoadPlugin<IGridUserService>(gridUserService, args); | 147 | m_GridUserService = ServerUtils.LoadPlugin<IGridUserService>(gridUserService, args); |
148 | m_AuthenticationService = ServerUtils.LoadPlugin<IAuthenticationService>(authService, args); | 148 | Object[] authArgs = new Object[] { config, m_UserAccountService }; |
149 | m_AuthenticationService = ServerUtils.LoadPlugin<IAuthenticationService>(authService, authArgs); | ||
149 | m_InventoryService = ServerUtils.LoadPlugin<IInventoryService>(invService, args); | 150 | m_InventoryService = ServerUtils.LoadPlugin<IInventoryService>(invService, args); |
150 | 151 | ||
151 | if (gridService != string.Empty) | 152 | if (gridService != string.Empty) |
@@ -294,6 +295,12 @@ namespace OpenSim.Services.LLLoginService | |||
294 | return LLFailedLoginResponse.UserProblem; | 295 | return LLFailedLoginResponse.UserProblem; |
295 | } | 296 | } |
296 | 297 | ||
298 | if (account.UserLevel < 0) | ||
299 | { | ||
300 | m_log.InfoFormat("[LLOGIN SERVICE]: Login failed, reason: Unverified account"); | ||
301 | return LLFailedLoginResponse.UnverifiedAccountProblem; | ||
302 | } | ||
303 | |||
297 | if (account.UserLevel < m_MinLoginLevel) | 304 | if (account.UserLevel < m_MinLoginLevel) |
298 | { | 305 | { |
299 | m_log.InfoFormat( | 306 | m_log.InfoFormat( |
@@ -325,7 +332,8 @@ namespace OpenSim.Services.LLLoginService | |||
325 | if (!passwd.StartsWith("$1$")) | 332 | if (!passwd.StartsWith("$1$")) |
326 | passwd = "$1$" + Util.Md5Hash(passwd); | 333 | passwd = "$1$" + Util.Md5Hash(passwd); |
327 | passwd = passwd.Remove(0, 3); //remove $1$ | 334 | passwd = passwd.Remove(0, 3); //remove $1$ |
328 | string token = m_AuthenticationService.Authenticate(account.PrincipalID, passwd, 30); | 335 | UUID realID; |
336 | string token = m_AuthenticationService.Authenticate(account.PrincipalID, passwd, 30, out realID); | ||
329 | UUID secureSession = UUID.Zero; | 337 | UUID secureSession = UUID.Zero; |
330 | if ((token == string.Empty) || (token != string.Empty && !UUID.TryParse(token, out secureSession))) | 338 | if ((token == string.Empty) || (token != string.Empty && !UUID.TryParse(token, out secureSession))) |
331 | { | 339 | { |
@@ -458,7 +466,7 @@ namespace OpenSim.Services.LLLoginService | |||
458 | account, aCircuit, guinfo, destination, inventorySkel, friendsList, m_LibraryService, | 466 | account, aCircuit, guinfo, destination, inventorySkel, friendsList, m_LibraryService, |
459 | where, startLocation, position, lookAt, gestures, m_WelcomeMessage, home, clientIP, | 467 | where, startLocation, position, lookAt, gestures, m_WelcomeMessage, home, clientIP, |
460 | m_MapTileURL, m_ProfileURL, m_OpenIDURL, m_SearchURL, m_Currency, m_DSTZone, | 468 | m_MapTileURL, m_ProfileURL, m_OpenIDURL, m_SearchURL, m_Currency, m_DSTZone, |
461 | m_DestinationGuide, m_AvatarPicker); | 469 | m_DestinationGuide, m_AvatarPicker, realID); |
462 | 470 | ||
463 | m_log.DebugFormat("[LLOGIN SERVICE]: All clear. Sending login response to {0} {1}", firstName, lastName); | 471 | m_log.DebugFormat("[LLOGIN SERVICE]: All clear. Sending login response to {0} {1}", firstName, lastName); |
464 | 472 | ||