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 fe43582..faf7f71 100644 --- a/OpenSim/Services/LLLoginService/LLLoginService.cs +++ b/OpenSim/Services/LLLoginService/LLLoginService.cs | |||
@@ -147,7 +147,8 @@ namespace OpenSim.Services.LLLoginService | |||
147 | Object[] args = new Object[] { config }; | 147 | Object[] args = new Object[] { config }; |
148 | m_UserAccountService = ServerUtils.LoadPlugin<IUserAccountService>(accountService, args); | 148 | m_UserAccountService = ServerUtils.LoadPlugin<IUserAccountService>(accountService, args); |
149 | m_GridUserService = ServerUtils.LoadPlugin<IGridUserService>(gridUserService, args); | 149 | m_GridUserService = ServerUtils.LoadPlugin<IGridUserService>(gridUserService, args); |
150 | m_AuthenticationService = ServerUtils.LoadPlugin<IAuthenticationService>(authService, args); | 150 | Object[] authArgs = new Object[] { config, m_UserAccountService }; |
151 | m_AuthenticationService = ServerUtils.LoadPlugin<IAuthenticationService>(authService, authArgs); | ||
151 | m_InventoryService = ServerUtils.LoadPlugin<IInventoryService>(invService, args); | 152 | m_InventoryService = ServerUtils.LoadPlugin<IInventoryService>(invService, args); |
152 | 153 | ||
153 | if (gridService != string.Empty) | 154 | if (gridService != string.Empty) |
@@ -296,6 +297,12 @@ namespace OpenSim.Services.LLLoginService | |||
296 | return LLFailedLoginResponse.UserProblem; | 297 | return LLFailedLoginResponse.UserProblem; |
297 | } | 298 | } |
298 | 299 | ||
300 | if (account.UserLevel < 0) | ||
301 | { | ||
302 | m_log.InfoFormat("[LLOGIN SERVICE]: Login failed, reason: Unverified account"); | ||
303 | return LLFailedLoginResponse.UnverifiedAccountProblem; | ||
304 | } | ||
305 | |||
299 | if (account.UserLevel < m_MinLoginLevel) | 306 | if (account.UserLevel < m_MinLoginLevel) |
300 | { | 307 | { |
301 | m_log.InfoFormat( | 308 | m_log.InfoFormat( |
@@ -327,7 +334,8 @@ namespace OpenSim.Services.LLLoginService | |||
327 | if (!passwd.StartsWith("$1$")) | 334 | if (!passwd.StartsWith("$1$")) |
328 | passwd = "$1$" + Util.Md5Hash(passwd); | 335 | passwd = "$1$" + Util.Md5Hash(passwd); |
329 | passwd = passwd.Remove(0, 3); //remove $1$ | 336 | passwd = passwd.Remove(0, 3); //remove $1$ |
330 | string token = m_AuthenticationService.Authenticate(account.PrincipalID, passwd, 30); | 337 | UUID realID; |
338 | string token = m_AuthenticationService.Authenticate(account.PrincipalID, passwd, 30, out realID); | ||
331 | UUID secureSession = UUID.Zero; | 339 | UUID secureSession = UUID.Zero; |
332 | if ((token == string.Empty) || (token != string.Empty && !UUID.TryParse(token, out secureSession))) | 340 | if ((token == string.Empty) || (token != string.Empty && !UUID.TryParse(token, out secureSession))) |
333 | { | 341 | { |
@@ -460,7 +468,7 @@ namespace OpenSim.Services.LLLoginService | |||
460 | account, aCircuit, guinfo, destination, inventorySkel, friendsList, m_LibraryService, | 468 | account, aCircuit, guinfo, destination, inventorySkel, friendsList, m_LibraryService, |
461 | where, startLocation, position, lookAt, gestures, m_WelcomeMessage, home, clientIP, | 469 | where, startLocation, position, lookAt, gestures, m_WelcomeMessage, home, clientIP, |
462 | m_MapTileURL, m_ProfileURL, m_OpenIDURL, m_SearchURL, m_Currency, m_DSTZone, | 470 | m_MapTileURL, m_ProfileURL, m_OpenIDURL, m_SearchURL, m_Currency, m_DSTZone, |
463 | m_DestinationGuide, m_AvatarPicker, m_ClassifiedFee); | 471 | m_DestinationGuide, m_AvatarPicker, realID, m_ClassifiedFee); |
464 | 472 | ||
465 | m_log.DebugFormat("[LLOGIN SERVICE]: All clear. Sending login response to {0} {1}", firstName, lastName); | 473 | m_log.DebugFormat("[LLOGIN SERVICE]: All clear. Sending login response to {0} {1}", firstName, lastName); |
466 | 474 | ||