Jump to content

OpenSimulator Internals/Connector Architecture/Authentication Connector

From Open Simulator Technical Help

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.

See Also

[edit]