Fix XBakes simulator-side authentication regression failure
Unlike the other connectors, XBakes uses a service auth retrieved from ServiceAuth.Create() and not code inherited from BaseServiceConnector.
Fixes regression from 7d3bafd5
(Wed 4 Mar 2015) where the new CompoundAuthenticator did not implement IServiceAuth.AddAuthorization()
inv-download
parent
e6889a6023
commit
eda09d8763
|
@ -40,6 +40,8 @@ namespace OpenSim.Framework.ServiceAuth
|
||||||
{
|
{
|
||||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
|
public string Name { get { return "BasicHttp"; } }
|
||||||
|
|
||||||
private string m_Username, m_Password;
|
private string m_Username, m_Password;
|
||||||
private string m_CredentialsB64;
|
private string m_CredentialsB64;
|
||||||
|
|
||||||
|
|
|
@ -35,10 +35,17 @@ namespace OpenSim.Framework.ServiceAuth
|
||||||
{
|
{
|
||||||
public class CompoundAuthentication : IServiceAuth
|
public class CompoundAuthentication : IServiceAuth
|
||||||
{
|
{
|
||||||
|
public string Name { get { return "Compound"; } }
|
||||||
|
|
||||||
private List<IServiceAuth> m_authentications = new List<IServiceAuth>();
|
private List<IServiceAuth> m_authentications = new List<IServiceAuth>();
|
||||||
|
|
||||||
public int Count { get { return m_authentications.Count; } }
|
public int Count { get { return m_authentications.Count; } }
|
||||||
|
|
||||||
|
public List<IServiceAuth> GetAuthentors()
|
||||||
|
{
|
||||||
|
return new List<IServiceAuth>(m_authentications);
|
||||||
|
}
|
||||||
|
|
||||||
public void AddAuthenticator(IServiceAuth auth)
|
public void AddAuthenticator(IServiceAuth auth)
|
||||||
{
|
{
|
||||||
m_authentications.Add(auth);
|
m_authentications.Add(auth);
|
||||||
|
@ -49,7 +56,11 @@ namespace OpenSim.Framework.ServiceAuth
|
||||||
m_authentications.Remove(auth);
|
m_authentications.Remove(auth);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddAuthorization(NameValueCollection headers) {}
|
public void AddAuthorization(NameValueCollection headers)
|
||||||
|
{
|
||||||
|
foreach (IServiceAuth auth in m_authentications)
|
||||||
|
auth.AddAuthorization(headers);
|
||||||
|
}
|
||||||
|
|
||||||
public bool Authenticate(string data)
|
public bool Authenticate(string data)
|
||||||
{
|
{
|
||||||
|
|
|
@ -33,6 +33,8 @@ namespace OpenSim.Framework.ServiceAuth
|
||||||
{
|
{
|
||||||
public class DisallowLlHttpRequest : IServiceAuth
|
public class DisallowLlHttpRequest : IServiceAuth
|
||||||
{
|
{
|
||||||
|
public string Name { get { return "DisallowllHTTPRequest"; } }
|
||||||
|
|
||||||
public void AddAuthorization(NameValueCollection headers) {}
|
public void AddAuthorization(NameValueCollection headers) {}
|
||||||
|
|
||||||
public bool Authenticate(string data)
|
public bool Authenticate(string data)
|
||||||
|
|
|
@ -34,8 +34,13 @@ namespace OpenSim.Framework.ServiceAuth
|
||||||
{
|
{
|
||||||
public delegate void AddHeaderDelegate(string key, string value);
|
public delegate void AddHeaderDelegate(string key, string value);
|
||||||
|
|
||||||
public interface IServiceAuth
|
public interface IServiceAuth
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Name of this authenticator.
|
||||||
|
/// </summary>
|
||||||
|
string Name { get; }
|
||||||
|
|
||||||
bool Authenticate(string data);
|
bool Authenticate(string data);
|
||||||
bool Authenticate(NameValueCollection headers, AddHeaderDelegate d, out HttpStatusCode statusCode);
|
bool Authenticate(NameValueCollection headers, AddHeaderDelegate d, out HttpStatusCode statusCode);
|
||||||
void AddAuthorization(NameValueCollection headers);
|
void AddAuthorization(NameValueCollection headers);
|
||||||
|
|
|
@ -27,13 +27,16 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Reflection;
|
||||||
|
using log4net;
|
||||||
using Nini.Config;
|
using Nini.Config;
|
||||||
|
|
||||||
namespace OpenSim.Framework.ServiceAuth
|
namespace OpenSim.Framework.ServiceAuth
|
||||||
{
|
{
|
||||||
public class ServiceAuth
|
public class ServiceAuth
|
||||||
{
|
{
|
||||||
|
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
public static IServiceAuth Create(IConfigSource config, string section)
|
public static IServiceAuth Create(IConfigSource config, string section)
|
||||||
{
|
{
|
||||||
CompoundAuthentication compoundAuth = new CompoundAuthentication();
|
CompoundAuthentication compoundAuth = new CompoundAuthentication();
|
||||||
|
@ -53,6 +56,9 @@ namespace OpenSim.Framework.ServiceAuth
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// foreach (IServiceAuth auth in compoundAuth.GetAuthentors())
|
||||||
|
// m_log.DebugFormat("[SERVICE AUTH]: Configured authenticator {0}", auth.Name);
|
||||||
|
|
||||||
if (compoundAuth.Count > 0)
|
if (compoundAuth.Count > 0)
|
||||||
return compoundAuth;
|
return compoundAuth;
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue