aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services
diff options
context:
space:
mode:
authorMelanie2009-09-04 07:03:43 +0100
committerMelanie2009-09-04 07:03:43 +0100
commit11700ba4a4e35cf7512f7f6e8b9b8e54e812f574 (patch)
tree683c464db85a52aa0b176c8f2d9ec91df9f94c1d /OpenSim/Services
parentMore work on new authentication service (diff)
downloadopensim-SC-11700ba4a4e35cf7512f7f6e8b9b8e54e812f574.zip
opensim-SC-11700ba4a4e35cf7512f7f6e8b9b8e54e812f574.tar.gz
opensim-SC-11700ba4a4e35cf7512f7f6e8b9b8e54e812f574.tar.bz2
opensim-SC-11700ba4a4e35cf7512f7f6e8b9b8e54e812f574.tar.xz
Implement plain password authentication partway. Tested, but no user
functionality yet.
Diffstat (limited to 'OpenSim/Services')
-rw-r--r--OpenSim/Services/AuthenticationService/AuthenticationServiceBase.cs15
-rw-r--r--OpenSim/Services/AuthenticationService/PasswordAuthenticationService.cs28
-rw-r--r--OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs12
-rw-r--r--OpenSim/Services/Interfaces/IAuthenticationService.cs4
4 files changed, 35 insertions, 24 deletions
diff --git a/OpenSim/Services/AuthenticationService/AuthenticationServiceBase.cs b/OpenSim/Services/AuthenticationService/AuthenticationServiceBase.cs
index 200268b..dab0598 100644
--- a/OpenSim/Services/AuthenticationService/AuthenticationServiceBase.cs
+++ b/OpenSim/Services/AuthenticationService/AuthenticationServiceBase.cs
@@ -95,6 +95,16 @@ namespace OpenSim.Services.AuthenticationService
95 return new byte[0]; 95 return new byte[0];
96 } 96 }
97 97
98 public bool Verify(UUID principalID, string token, int lifetime)
99 {
100 return false;
101 }
102
103 public bool VerifyEncrypted(byte[] cyphertext, byte[] key)
104 {
105 return false;
106 }
107
98 public virtual bool Release(UUID principalID, string token) 108 public virtual bool Release(UUID principalID, string token)
99 { 109 {
100 return false; 110 return false;
@@ -104,5 +114,10 @@ namespace OpenSim.Services.AuthenticationService
104 { 114 {
105 return false; 115 return false;
106 } 116 }
117
118 protected string GetToken(UUID principalID, int lifetime)
119 {
120 return "OK";
121 }
107 } 122 }
108} 123}
diff --git a/OpenSim/Services/AuthenticationService/PasswordAuthenticationService.cs b/OpenSim/Services/AuthenticationService/PasswordAuthenticationService.cs
index 83ce0d0..7fdbbf6 100644
--- a/OpenSim/Services/AuthenticationService/PasswordAuthenticationService.cs
+++ b/OpenSim/Services/AuthenticationService/PasswordAuthenticationService.cs
@@ -56,8 +56,24 @@ namespace OpenSim.Services.AuthenticationService
56 { 56 {
57 } 57 }
58 58
59 public string Authenticate(UUID principalID, string password) 59 public string Authenticate(UUID principalID, string password, int lifetime)
60 { 60 {
61 AuthenticationData data = m_Database.Get(principalID);
62
63 if (!data.Data.ContainsKey("passwordHash") ||
64 !data.Data.ContainsKey("passwordSalt"))
65 {
66 return String.Empty;
67 }
68
69 string hashed = Util.Md5Hash(Util.Md5Hash(password) + ":" +
70 data.Data["passwordSalt"].ToString());
71
72 if (data.Data["passwordHash"].ToString() == hashed)
73 {
74 return GetToken(principalID, lifetime);
75 }
76
61 return String.Empty; 77 return String.Empty;
62 } 78 }
63 79
@@ -65,15 +81,5 @@ namespace OpenSim.Services.AuthenticationService
65 { 81 {
66 return new byte[0]; 82 return new byte[0];
67 } 83 }
68
69 public bool Verify(UUID principalID, string token)
70 {
71 return false;
72 }
73
74 public bool VerifyEncrypted(byte[] cyphertext, byte[] key)
75 {
76 return false;
77 }
78 } 84 }
79} 85}
diff --git a/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs b/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs
index af55df0..0118c91 100644
--- a/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs
+++ b/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs
@@ -52,7 +52,7 @@ namespace OpenSim.Services.AuthenticationService
52 { 52 {
53 } 53 }
54 54
55 public string Authenticate(UUID principalID, string password) 55 public string Authenticate(UUID principalID, string password, int lifetime)
56 { 56 {
57 return String.Empty; 57 return String.Empty;
58 } 58 }
@@ -61,15 +61,5 @@ namespace OpenSim.Services.AuthenticationService
61 { 61 {
62 return new byte[0]; 62 return new byte[0];
63 } 63 }
64
65 public bool Verify(UUID principalID, string token)
66 {
67 return false;
68 }
69
70 public bool VerifyEncrypted(byte[] cyphertext, byte[] key)
71 {
72 return false;
73 }
74 } 64 }
75} 65}
diff --git a/OpenSim/Services/Interfaces/IAuthenticationService.cs b/OpenSim/Services/Interfaces/IAuthenticationService.cs
index f042c93..b448a14 100644
--- a/OpenSim/Services/Interfaces/IAuthenticationService.cs
+++ b/OpenSim/Services/Interfaces/IAuthenticationService.cs
@@ -70,7 +70,7 @@ namespace OpenSim.Services.Interfaces
70 // the public key of the peer, which the connector must have 70 // the public key of the peer, which the connector must have
71 // obtained using a remote GetPublicKey call. 71 // obtained using a remote GetPublicKey call.
72 // 72 //
73 string Authenticate(UUID principalID, string password); 73 string Authenticate(UUID principalID, string password, int lifetime);
74 byte[] AuthenticateEncrypted(byte[] cyphertext, byte[] key); 74 byte[] AuthenticateEncrypted(byte[] cyphertext, byte[] key);
75 75
76 ////////////////////////////////////////////////////// 76 //////////////////////////////////////////////////////
@@ -85,7 +85,7 @@ namespace OpenSim.Services.Interfaces
85 // must be used to refresh. Unencrypted verification is still 85 // must be used to refresh. Unencrypted verification is still
86 // performed, but doesn't refresh token lifetime. 86 // performed, but doesn't refresh token lifetime.
87 // 87 //
88 bool Verify(UUID principalID, string token); 88 bool Verify(UUID principalID, string token, int lifetime);
89 bool VerifyEncrypted(byte[] cyphertext, byte[] key); 89 bool VerifyEncrypted(byte[] cyphertext, byte[] key);
90 90
91 ////////////////////////////////////////////////////// 91 //////////////////////////////////////////////////////