Remove the encryption from the IAuthenticationService interface. That
is too high up for that type of stuff. It needs to be at the connector/handler levelremotes/origin/0.6.7-post-fixes
parent
bb1d4d23c4
commit
dcebbc3f1b
|
@ -220,7 +220,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
private bool m_scripts_enabled = true;
|
||||
private string m_defaultScriptEngine;
|
||||
private int m_LastLogin = 0;
|
||||
private Thread HeartbeatThread;
|
||||
private Thread HeartbeatThread = null;
|
||||
private volatile bool shuttingdown = false;
|
||||
|
||||
private int m_lastUpdate = Environment.TickCount;
|
||||
|
@ -876,6 +876,13 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
//m_heartbeatTimer.Enabled = true;
|
||||
//m_heartbeatTimer.Interval = (int)(m_timespan * 1000);
|
||||
//m_heartbeatTimer.Elapsed += new ElapsedEventHandler(Heartbeat);
|
||||
if (HeartbeatThread != null)
|
||||
{
|
||||
ThreadTracker.Remove(HeartbeatThread);
|
||||
HeartbeatThread.Abort();
|
||||
HeartbeatThread = null;
|
||||
}
|
||||
m_lastUpdate = Environment.TickCount;
|
||||
HeartbeatThread = new Thread(new ParameterizedThreadStart(Heartbeat));
|
||||
HeartbeatThread.SetApartmentState(ApartmentState.MTA);
|
||||
HeartbeatThread.Name = string.Format("Heartbeat for region {0}", RegionInfo.RegionName);
|
||||
|
@ -911,11 +918,17 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void Heartbeat(object sender)
|
||||
{
|
||||
try
|
||||
{
|
||||
Update();
|
||||
|
||||
m_lastUpdate = Environment.TickCount;
|
||||
}
|
||||
catch (ThreadAbortException)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Performs per-frame updates on the scene, this should be the central scene loop
|
||||
|
@ -2307,6 +2320,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
/// <param name="client"></param>
|
||||
public override void AddNewClient(IClientAPI client)
|
||||
{
|
||||
CheckHeartbeat();
|
||||
SubscribeToClientEvents(client);
|
||||
ScenePresence presence;
|
||||
|
||||
|
@ -2831,6 +2845,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
/// <returns></returns>
|
||||
protected virtual ScenePresence CreateAndAddScenePresence(IClientAPI client)
|
||||
{
|
||||
CheckHeartbeat();
|
||||
AvatarAppearance appearance = null;
|
||||
GetAvatarAppearance(client, out appearance);
|
||||
|
||||
|
@ -2873,6 +2888,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
/// <param name="agentID"></param>
|
||||
public override void RemoveClient(UUID agentID)
|
||||
{
|
||||
CheckHeartbeat();
|
||||
bool childagentYN = false;
|
||||
ScenePresence avatar = GetScenePresence(agentID);
|
||||
if (avatar != null)
|
||||
|
@ -4374,6 +4390,8 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
else
|
||||
return health;
|
||||
|
||||
CheckHeartbeat();
|
||||
|
||||
return health;
|
||||
}
|
||||
|
||||
|
@ -4559,5 +4577,11 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
return (((vsn.X * xdiff) + (vsn.Y * ydiff)) / (-1 * vsn.Z)) + p0.Z;
|
||||
}
|
||||
|
||||
private void CheckHeartbeat()
|
||||
{
|
||||
if (System.Environment.TickCount - m_lastUpdate > 2000)
|
||||
StartTimer();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -90,31 +90,16 @@ namespace OpenSim.Services.AuthenticationService
|
|||
throw new Exception("Could not find a storage interface in the given module");
|
||||
}
|
||||
|
||||
public virtual byte[] GetPublicKey()
|
||||
{
|
||||
return new byte[0];
|
||||
}
|
||||
|
||||
public bool Verify(UUID principalID, string token, int lifetime)
|
||||
{
|
||||
return m_Database.CheckToken(principalID, token, lifetime);
|
||||
}
|
||||
|
||||
public bool VerifyEncrypted(byte[] cyphertext, byte[] key)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public virtual bool Release(UUID principalID, string token)
|
||||
{
|
||||
return m_Database.CheckToken(principalID, token, 0);
|
||||
}
|
||||
|
||||
public virtual bool ReleaseEncrypted(byte[] cyphertext, byte[] key)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
protected string GetToken(UUID principalID, int lifetime)
|
||||
{
|
||||
UUID token = UUID.Random();
|
||||
|
|
|
@ -76,10 +76,5 @@ namespace OpenSim.Services.AuthenticationService
|
|||
|
||||
return String.Empty;
|
||||
}
|
||||
|
||||
public byte[] AuthenticateEncrypted(byte[] cyphertext, byte[] key)
|
||||
{
|
||||
return new byte[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -56,10 +56,5 @@ namespace OpenSim.Services.AuthenticationService
|
|||
{
|
||||
return String.Empty;
|
||||
}
|
||||
|
||||
public byte[] AuthenticateEncrypted(byte[] cyphertext, byte[] key)
|
||||
{
|
||||
return new byte[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,40 +38,13 @@ namespace OpenSim.Services.Interfaces
|
|||
//
|
||||
public interface IAuthenticationService
|
||||
{
|
||||
//////////////////////////////////////////////////////
|
||||
// PKI Zone!
|
||||
//
|
||||
// HG2 authentication works by using a cryptographic
|
||||
// exchange.
|
||||
// This method must provide a public key, the other
|
||||
// crypto methods must understand hoow to deal with
|
||||
// messages encrypted to it.
|
||||
//
|
||||
// If the public key is of zero length, you will
|
||||
// get NO encryption and NO security.
|
||||
//
|
||||
// For non-HG installations, this is not relevant
|
||||
//
|
||||
// Implementors who are not using PKI can treat the
|
||||
// cyphertext as a string and provide a zero-length
|
||||
// key. Encryptionless implementations will not
|
||||
// interoperate with implementations using encryption.
|
||||
// If one side uses encryption, both must do so.
|
||||
//
|
||||
byte[] GetPublicKey();
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Authentication
|
||||
//
|
||||
// These methods will return a token, which can be used to access
|
||||
// various services.
|
||||
//
|
||||
// The encrypted versions take the received cyphertext and
|
||||
// the public key of the peer, which the connector must have
|
||||
// obtained using a remote GetPublicKey call.
|
||||
//
|
||||
string Authenticate(UUID principalID, string password, int lifetime);
|
||||
byte[] AuthenticateEncrypted(byte[] cyphertext, byte[] key);
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Verification
|
||||
|
@ -81,12 +54,7 @@ namespace OpenSim.Services.Interfaces
|
|||
// Tokens expire after 30 minutes and can be refreshed by
|
||||
// re-verifying.
|
||||
//
|
||||
// If encrypted authentication was used, encrypted verification
|
||||
// must be used to refresh. Unencrypted verification is still
|
||||
// performed, but doesn't refresh token lifetime.
|
||||
//
|
||||
bool Verify(UUID principalID, string token, int lifetime);
|
||||
bool VerifyEncrypted(byte[] cyphertext, byte[] key);
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Teardown
|
||||
|
@ -95,11 +63,7 @@ namespace OpenSim.Services.Interfaces
|
|||
// invalidates it and it can not subsequently be used
|
||||
// or refreshed.
|
||||
//
|
||||
// Tokens created by encrypted authentication must
|
||||
// be returned by encrypted release calls;
|
||||
//
|
||||
bool Release(UUID principalID, string token);
|
||||
bool ReleaseEncrypted(byte[] cyphertext, byte[] key);
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// Grid
|
||||
|
|
Loading…
Reference in New Issue