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 59fb559..cbb6e6c 100644 --- a/OpenSim/Services/LLLoginService/LLLoginService.cs +++ b/OpenSim/Services/LLLoginService/LLLoginService.cs | |||
@@ -140,7 +140,8 @@ namespace OpenSim.Services.LLLoginService | |||
140 | Object[] args = new Object[] { config }; | 140 | Object[] args = new Object[] { config }; |
141 | m_UserAccountService = ServerUtils.LoadPlugin<IUserAccountService>(accountService, args); | 141 | m_UserAccountService = ServerUtils.LoadPlugin<IUserAccountService>(accountService, args); |
142 | m_GridUserService = ServerUtils.LoadPlugin<IGridUserService>(gridUserService, args); | 142 | m_GridUserService = ServerUtils.LoadPlugin<IGridUserService>(gridUserService, args); |
143 | m_AuthenticationService = ServerUtils.LoadPlugin<IAuthenticationService>(authService, args); | 143 | Object[] authArgs = new Object[] { config, m_UserAccountService }; |
144 | m_AuthenticationService = ServerUtils.LoadPlugin<IAuthenticationService>(authService, authArgs); | ||
144 | m_InventoryService = ServerUtils.LoadPlugin<IInventoryService>(invService, args); | 145 | m_InventoryService = ServerUtils.LoadPlugin<IInventoryService>(invService, args); |
145 | 146 | ||
146 | if (gridService != string.Empty) | 147 | if (gridService != string.Empty) |
@@ -289,6 +290,12 @@ namespace OpenSim.Services.LLLoginService | |||
289 | return LLFailedLoginResponse.UserProblem; | 290 | return LLFailedLoginResponse.UserProblem; |
290 | } | 291 | } |
291 | 292 | ||
293 | if (account.UserLevel < 0) | ||
294 | { | ||
295 | m_log.InfoFormat("[LLOGIN SERVICE]: Login failed, reason: Unverified account"); | ||
296 | return LLFailedLoginResponse.UnverifiedAccountProblem; | ||
297 | } | ||
298 | |||
292 | if (account.UserLevel < m_MinLoginLevel) | 299 | if (account.UserLevel < m_MinLoginLevel) |
293 | { | 300 | { |
294 | m_log.InfoFormat( | 301 | m_log.InfoFormat( |
@@ -320,7 +327,8 @@ namespace OpenSim.Services.LLLoginService | |||
320 | if (!passwd.StartsWith("$1$")) | 327 | if (!passwd.StartsWith("$1$")) |
321 | passwd = "$1$" + Util.Md5Hash(passwd); | 328 | passwd = "$1$" + Util.Md5Hash(passwd); |
322 | passwd = passwd.Remove(0, 3); //remove $1$ | 329 | passwd = passwd.Remove(0, 3); //remove $1$ |
323 | string token = m_AuthenticationService.Authenticate(account.PrincipalID, passwd, 30); | 330 | UUID realID; |
331 | string token = m_AuthenticationService.Authenticate(account.PrincipalID, passwd, 30, out realID); | ||
324 | UUID secureSession = UUID.Zero; | 332 | UUID secureSession = UUID.Zero; |
325 | if ((token == string.Empty) || (token != string.Empty && !UUID.TryParse(token, out secureSession))) | 333 | if ((token == string.Empty) || (token != string.Empty && !UUID.TryParse(token, out secureSession))) |
326 | { | 334 | { |
@@ -452,7 +460,7 @@ namespace OpenSim.Services.LLLoginService | |||
452 | = new LLLoginResponse( | 460 | = new LLLoginResponse( |
453 | account, aCircuit, guinfo, destination, inventorySkel, friendsList, m_LibraryService, | 461 | account, aCircuit, guinfo, destination, inventorySkel, friendsList, m_LibraryService, |
454 | where, startLocation, position, lookAt, gestures, m_WelcomeMessage, home, clientIP, | 462 | where, startLocation, position, lookAt, gestures, m_WelcomeMessage, home, clientIP, |
455 | m_MapTileURL, m_ProfileURL, m_OpenIDURL, m_SearchURL, m_Currency, m_DSTZone); | 463 | m_MapTileURL, m_ProfileURL, m_OpenIDURL, m_SearchURL, m_Currency, m_DSTZone, realID); |
456 | 464 | ||
457 | m_log.DebugFormat("[LLOGIN SERVICE]: All clear. Sending login response to {0} {1}", firstName, lastName); | 465 | m_log.DebugFormat("[LLOGIN SERVICE]: All clear. Sending login response to {0} {1}", firstName, lastName); |
458 | 466 | ||