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