diff options
Diffstat (limited to 'OpenSim/Region/Communications/OGS1/OGS1UserServices.cs')
-rw-r--r-- | OpenSim/Region/Communications/OGS1/OGS1UserServices.cs | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs index dff8305..ed3526d 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs | |||
@@ -41,7 +41,7 @@ using OpenSim.Framework.Communications; | |||
41 | using OpenSim.Framework.Communications.Clients; | 41 | using OpenSim.Framework.Communications.Clients; |
42 | 42 | ||
43 | namespace OpenSim.Region.Communications.OGS1 | 43 | namespace OpenSim.Region.Communications.OGS1 |
44 | { | 44 | { |
45 | public class OGS1UserServices : UserManagerBase | 45 | public class OGS1UserServices : UserManagerBase |
46 | { | 46 | { |
47 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 47 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
@@ -94,7 +94,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
94 | catch (WebException) | 94 | catch (WebException) |
95 | { | 95 | { |
96 | m_log.Warn("[LOGOFF]: Unable to notify grid server of user logoff"); | 96 | m_log.Warn("[LOGOFF]: Unable to notify grid server of user logoff"); |
97 | } | 97 | } |
98 | } | 98 | } |
99 | 99 | ||
100 | /// <summary> | 100 | /// <summary> |
@@ -140,6 +140,37 @@ namespace OpenSim.Region.Communications.OGS1 | |||
140 | { | 140 | { |
141 | m_log.DebugFormat("[OGS1 USER SERVICES]: Verifying user session for " + userID); | 141 | m_log.DebugFormat("[OGS1 USER SERVICES]: Verifying user session for " + userID); |
142 | return AuthClient.VerifySession(GetUserServerURL(userID), userID, sessionID); | 142 | return AuthClient.VerifySession(GetUserServerURL(userID), userID, sessionID); |
143 | } | 143 | } |
144 | |||
145 | public override bool AuthenticateUserByPassword(UUID userID, string password) | ||
146 | { | ||
147 | Hashtable param = new Hashtable(); | ||
148 | param["user_uuid"] = userID.ToString(); | ||
149 | param["password"] = password; | ||
150 | IList parameters = new ArrayList(); | ||
151 | parameters.Add(param); | ||
152 | XmlRpcRequest req = new XmlRpcRequest("authenticate_user_by_password", parameters); | ||
153 | XmlRpcResponse resp = req.Send(m_commsManager.NetworkServersInfo.UserURL, 30000); | ||
154 | |||
155 | // Temporary measure to deal with older services | ||
156 | if (resp.IsFault && resp.FaultCode == XmlRpcErrorCodes.SERVER_ERROR_METHOD) | ||
157 | { | ||
158 | throw new Exception( | ||
159 | String.Format( | ||
160 | "XMLRPC method 'authenticate_user_by_password' not yet implemented by user service at {0}", | ||
161 | m_commsManager.NetworkServersInfo.UserURL)); | ||
162 | } | ||
163 | |||
164 | Hashtable respData = (Hashtable)resp.Value; | ||
165 | |||
166 | if ((string)respData["auth_user"] == "TRUE") | ||
167 | { | ||
168 | return true; | ||
169 | } | ||
170 | else | ||
171 | { | ||
172 | return false; | ||
173 | } | ||
174 | } | ||
144 | } | 175 | } |
145 | } \ No newline at end of file | 176 | } \ No newline at end of file |