<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://osimdev.org/wiki/index.php?action=history&amp;feed=atom&amp;title=OpenSimulator_Internals%2FConnector_Architecture%2FAuthentication_Connector</id>
	<title>OpenSimulator Internals/Connector Architecture/Authentication Connector - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://osimdev.org/wiki/index.php?action=history&amp;feed=atom&amp;title=OpenSimulator_Internals%2FConnector_Architecture%2FAuthentication_Connector"/>
	<link rel="alternate" type="text/html" href="http://osimdev.org/wiki/index.php?title=OpenSimulator_Internals/Connector_Architecture/Authentication_Connector&amp;action=history"/>
	<updated>2026-08-04T15:40:53Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>http://osimdev.org/wiki/index.php?title=OpenSimulator_Internals/Connector_Architecture/Authentication_Connector&amp;diff=74&amp;oldid=prev</id>
		<title>Jwbshaw: first</title>
		<link rel="alternate" type="text/html" href="http://osimdev.org/wiki/index.php?title=OpenSimulator_Internals/Connector_Architecture/Authentication_Connector&amp;diff=74&amp;oldid=prev"/>
		<updated>2026-07-07T12:20:00Z</updated>

		<summary type="html">&lt;p&gt;first&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= OpenSimulator Internals/Connector Architecture/Authentication Connector =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Source file:&lt;br /&gt;
&lt;br /&gt;
 OpenSim/Services/Connectors/Authentication/AuthenticationServicesConnector.cs&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Initialisation ===&lt;br /&gt;
&lt;br /&gt;
Config section: [AuthenticationService]&lt;br /&gt;
&lt;br /&gt;
Required key:&lt;br /&gt;
* AuthenticationServerURI -- URL of the ROBUST authentication endpoint; throws if missing&lt;br /&gt;
&lt;br /&gt;
Base class BaseServiceConnector.Initialise() called for auth setup.&lt;br /&gt;
&lt;br /&gt;
Three constructors:&lt;br /&gt;
* Default (no args) -- URI must be set externally&lt;br /&gt;
* String URI -- used by callers that pass the URI directly&lt;br /&gt;
* IConfigSource -- calls Initialise(), normal grid mode&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Transport ===&lt;br /&gt;
&lt;br /&gt;
All methods POST to m_ServerURI + &amp;quot;/auth/plain&amp;quot; using SynchronousRestFormsRequester. All requests include a METHOD field.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Methods ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Method !! METHOD field !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Authenticate(principalID, password, lifetime) || &amp;quot;authenticate&amp;quot; || Returns token string on success, empty string on failure&lt;br /&gt;
|-&lt;br /&gt;
| Authenticate(principalID, password, lifetime, out realID) || &amp;quot;authenticate&amp;quot; || realID always returns UUID.Zero; delegates to the 3-arg overload&lt;br /&gt;
|-&lt;br /&gt;
| Verify(principalID, token, lifetime) || &amp;quot;verify&amp;quot; || Returns bool&lt;br /&gt;
|-&lt;br /&gt;
| Release(principalID, token) || &amp;quot;release&amp;quot; || Returns bool&lt;br /&gt;
|-&lt;br /&gt;
| SetPassword(principalID, passwd) || (none) || Always returns false -- not done from remote simulators&lt;br /&gt;
|-&lt;br /&gt;
| GetAuthInfo(principalID) || (none) || Always returns null -- not done from remote simulators&lt;br /&gt;
|-&lt;br /&gt;
| SetAuthInfo(info) || (none) || Always returns false -- not done from remote simulators&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Authenticate() sends: PRINCIPAL, PASSWORD, LIFETIME. Returns Token from reply on Success, empty string otherwise.&lt;br /&gt;
&lt;br /&gt;
Verify() sends: PRINCIPAL, TOKEN, LIFETIME. Returns true on Success.&lt;br /&gt;
&lt;br /&gt;
Release() sends: PRINCIPAL, TOKEN. Returns true on Success.&lt;br /&gt;
&lt;br /&gt;
All three parse XML response and check replyData[&amp;quot;Result&amp;quot;] == &amp;quot;Success&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Notes ===&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* SetPassword(), GetAuthInfo(), and SetAuthInfo() are explicitly documented in comments as not done from remote simulators.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[OpenSimulator Internals/Connector Architecture]]&lt;br /&gt;
* [[OpenSimulator Internals/Code Map/ROBUST/AuthenticationService]]&lt;br /&gt;
* [[OpenSimulator Internals/Code Map/Shared]]&lt;/div&gt;</summary>
		<author><name>Jwbshaw</name></author>
	</entry>
</feed>