aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs')
-rw-r--r--OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs39
1 files changed, 35 insertions, 4 deletions
diff --git a/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs b/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs
index 6d9aae3..d02ff9b 100644
--- a/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs
+++ b/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs
@@ -31,6 +31,9 @@ using OpenSim.Services.Interfaces;
31using log4net; 31using log4net;
32using Nini.Config; 32using Nini.Config;
33using System.Reflection; 33using System.Reflection;
34using OpenSim.Data;
35using OpenSim.Framework;
36using OpenSim.Framework.Console;
34 37
35namespace OpenSim.Services.AuthenticationService 38namespace OpenSim.Services.AuthenticationService
36{ 39{
@@ -43,9 +46,9 @@ namespace OpenSim.Services.AuthenticationService
43 public class WebkeyAuthenticationService : 46 public class WebkeyAuthenticationService :
44 AuthenticationServiceBase, IAuthenticationService 47 AuthenticationServiceBase, IAuthenticationService
45 { 48 {
46// private static readonly ILog m_log = 49 private static readonly ILog m_log =
47// LogManager.GetLogger( 50 LogManager.GetLogger(
48// MethodBase.GetCurrentMethod().DeclaringType); 51 MethodBase.GetCurrentMethod().DeclaringType);
49 52
50 public WebkeyAuthenticationService(IConfigSource config, IUserAccountService userService) : 53 public WebkeyAuthenticationService(IConfigSource config, IUserAccountService userService) :
51 base(config, userService) 54 base(config, userService)
@@ -53,12 +56,40 @@ namespace OpenSim.Services.AuthenticationService
53 } 56 }
54 57
55 public WebkeyAuthenticationService(IConfigSource config) : 58 public WebkeyAuthenticationService(IConfigSource config) :
56 base(config) 59 base(config)
57 { 60 {
58 } 61 }
59 62
60 public string Authenticate(UUID principalID, string password, int lifetime) 63 public string Authenticate(UUID principalID, string password, int lifetime)
61 { 64 {
65 if (new UUID(password) == UUID.Zero)
66 {
67 m_log.DebugFormat("[AUTH SERVICE]: UUID.Zero is not a valid web_login_key on PrincipalID {0}", principalID);
68 }
69 else
70 {
71 AuthenticationData data = m_Database.Get(principalID);
72 if (data != null && data.Data != null)
73 {
74 if (data.Data.ContainsKey("webLoginKey"))
75 {
76 string key = data.Data["webLoginKey"].ToString();
77 if (key == password)
78 {
79 data.Data["webLoginKey"] = UUID.Zero.ToString();
80 m_Database.Store(data);
81 return GetToken(principalID, lifetime);
82 }
83 else
84 {
85 m_log.DebugFormat("[AUTH SERVICE]: web login auth failed, got PrincipalID {0} gave {1} instead of {2}", principalID, password, key);
86 }
87 }else{
88 m_log.DebugFormat("[AUTH SERVICE]: no col webLoginKey in passwd.db");
89 }
90 }
91 m_log.DebugFormat("[AUTH SERVICE]: PrincipalID {0} or its data not found", principalID);
92 }
62 return String.Empty; 93 return String.Empty;
63 } 94 }
64 } 95 }