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);
|
||||
|
||||
public string Name { get { return "BasicHttp"; } }
|
||||
|
||||
private string m_Username, m_Password;
|
||||
private string m_CredentialsB64;
|
||||
|
||||
|
|
|
@ -35,10 +35,17 @@ namespace OpenSim.Framework.ServiceAuth
|
|||
{
|
||||
public class CompoundAuthentication : IServiceAuth
|
||||
{
|
||||
public string Name { get { return "Compound"; } }
|
||||
|
||||
private List<IServiceAuth> m_authentications = new List<IServiceAuth>();
|
||||
|
||||
public int Count { get { return m_authentications.Count; } }
|
||||
|
||||
public List<IServiceAuth> GetAuthentors()
|
||||
{
|
||||
return new List<IServiceAuth>(m_authentications);
|
||||
}
|
||||
|
||||
public void AddAuthenticator(IServiceAuth auth)
|
||||
{
|
||||
m_authentications.Add(auth);
|
||||
|
@ -49,7 +56,11 @@ namespace OpenSim.Framework.ServiceAuth
|
|||
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)
|
||||
{
|
||||
|
|
|
@ -33,6 +33,8 @@ namespace OpenSim.Framework.ServiceAuth
|
|||
{
|
||||
public class DisallowLlHttpRequest : IServiceAuth
|
||||
{
|
||||
public string Name { get { return "DisallowllHTTPRequest"; } }
|
||||
|
||||
public void AddAuthorization(NameValueCollection headers) {}
|
||||
|
||||
public bool Authenticate(string data)
|
||||
|
|
|
@ -34,8 +34,13 @@ namespace OpenSim.Framework.ServiceAuth
|
|||
{
|
||||
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(NameValueCollection headers, AddHeaderDelegate d, out HttpStatusCode statusCode);
|
||||
void AddAuthorization(NameValueCollection headers);
|
||||
|
|
|
@ -27,13 +27,16 @@
|
|||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using System.Reflection;
|
||||
using log4net;
|
||||
using Nini.Config;
|
||||
|
||||
namespace OpenSim.Framework.ServiceAuth
|
||||
{
|
||||
public class ServiceAuth
|
||||
{
|
||||
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||
|
||||
public static IServiceAuth Create(IConfigSource config, string section)
|
||||
{
|
||||
CompoundAuthentication compoundAuth = new CompoundAuthentication();
|
||||
|
@ -53,6 +56,9 @@ namespace OpenSim.Framework.ServiceAuth
|
|||
break;
|
||||
}
|
||||
|
||||
// foreach (IServiceAuth auth in compoundAuth.GetAuthentors())
|
||||
// m_log.DebugFormat("[SERVICE AUTH]: Configured authenticator {0}", auth.Name);
|
||||
|
||||
if (compoundAuth.Count > 0)
|
||||
return compoundAuth;
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue