OpenSimulator Internals/Connector Architecture/Authentication Connector
OpenSimulator Internals/Connector Architecture/Authentication Connector
[edit]Overview
[edit]AuthenticationServicesConnector is the simulator-side remote connector for IAuthenticationService. It translates authentication calls into HTTP POST requests to the ROBUST Authentication handler at /auth/plain.
Source file:
OpenSim/Services/Connectors/Authentication/AuthenticationServicesConnector.cs
Initialisation
[edit]Config section: [AuthenticationService]
Required key:
- AuthenticationServerURI -- URL of the ROBUST authentication endpoint; throws if missing
Base class BaseServiceConnector.Initialise() called for auth setup.
Three constructors:
- Default (no args) -- URI must be set externally
- String URI -- used by callers that pass the URI directly
- IConfigSource -- calls Initialise(), normal grid mode
Transport
[edit]All methods POST to m_ServerURI + "/auth/plain" using SynchronousRestFormsRequester. All requests include a METHOD field.
Methods
[edit]| Method | METHOD field | Notes |
|---|---|---|
| Authenticate(principalID, password, lifetime) | "authenticate" | Returns token string on success, empty string on failure |
| Authenticate(principalID, password, lifetime, out realID) | "authenticate" | realID always returns UUID.Zero; delegates to the 3-arg overload |
| Verify(principalID, token, lifetime) | "verify" | Returns bool |
| Release(principalID, token) | "release" | Returns bool |
| SetPassword(principalID, passwd) | (none) | Always returns false -- not done from remote simulators |
| GetAuthInfo(principalID) | (none) | Always returns null -- not done from remote simulators |
| SetAuthInfo(info) | (none) | Always returns false -- not done from remote simulators |
Authenticate() sends: PRINCIPAL, PASSWORD, LIFETIME. Returns Token from reply on Success, empty string otherwise.
Verify() sends: PRINCIPAL, TOKEN, LIFETIME. Returns true on Success.
Release() sends: PRINCIPAL, TOKEN. Returns true on Success.
All three parse XML response and check replyData["Result"] == "Success".
Notes
[edit]- The out realID overload of Authenticate() always sets realID to UUID.Zero and delegates to the 3-arg version. The realID concept exists in the service interface but is not implemented at the connector level.
- SetPassword(), GetAuthInfo(), and SetAuthInfo() are explicitly documented in comments as not done from remote simulators.