Adds optional HTTP Basic Authentication to Robust service connectors.

This commit is contained in:
Diva Canto
2014-05-23 16:19:43 -07:00
parent b7c7293c7a
commit 20f20895cf
47 changed files with 519 additions and 116 deletions

View File

@@ -30,6 +30,7 @@ using System.IO;
using Nini.Config;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Console;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
@@ -83,9 +84,11 @@ namespace OpenSim.Server.Handlers.Asset
allowedRemoteDeleteTypes = AllowedRemoteDeleteTypes.MapTile;
}
server.AddStreamHandler(new AssetServerGetHandler(m_AssetService));
server.AddStreamHandler(new AssetServerPostHandler(m_AssetService));
server.AddStreamHandler(new AssetServerDeleteHandler(m_AssetService, allowedRemoteDeleteTypes));
IServiceAuth auth = ServiceAuth.Create(config, m_ConfigName);
server.AddStreamHandler(new AssetServerGetHandler(m_AssetService, auth));
server.AddStreamHandler(new AssetServerPostHandler(m_AssetService, auth));
server.AddStreamHandler(new AssetServerDeleteHandler(m_AssetService, allowedRemoteDeleteTypes, auth));
server.AddStreamHandler(new AssetsExistHandler(m_AssetService));
MainConsole.Instance.Commands.AddCommand("Assets", false,

View File

@@ -38,6 +38,7 @@ using System.Xml.Serialization;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
namespace OpenSim.Server.Handlers.Asset
@@ -70,6 +71,12 @@ namespace OpenSim.Server.Handlers.Asset
m_allowedTypes = allowedTypes;
}
public AssetServerDeleteHandler(IAssetService service, AllowedRemoteDeleteTypes allowedTypes, IServiceAuth auth) :
base("DELETE", "/assets", auth)
{
m_AssetService = service;
m_allowedTypes = allowedTypes;
}
protected override byte[] ProcessRequest(string path, Stream request,
IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
{

View File

@@ -38,18 +38,25 @@ using System.Xml.Serialization;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
namespace OpenSim.Server.Handlers.Asset
{
public class AssetServerGetHandler : BaseStreamHandler
{
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private IAssetService m_AssetService;
public AssetServerGetHandler(IAssetService service) :
base("GET", "/assets")
{
m_AssetService = service;
}
public AssetServerGetHandler(IAssetService service, IServiceAuth auth) :
base("GET", "/assets", auth)
{
m_AssetService = service;
}

View File

@@ -38,6 +38,7 @@ using System.Xml.Serialization;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
namespace OpenSim.Server.Handlers.Asset
@@ -54,6 +55,12 @@ namespace OpenSim.Server.Handlers.Asset
m_AssetService = service;
}
public AssetServerPostHandler(IAssetService service, IServiceAuth auth) :
base("POST", "/assets", auth)
{
m_AssetService = service;
}
protected override byte[] ProcessRequest(string path, Stream request,
IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
{

View File

@@ -38,6 +38,7 @@ using System.Xml.Serialization;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
using OpenMetaverse;
@@ -55,6 +56,12 @@ namespace OpenSim.Server.Handlers.Asset
m_AssetService = service;
}
public AssetsExistHandler(IAssetService service, IServiceAuth auth) :
base("POST", "/get_assets_exist", auth)
{
m_AssetService = service;
}
protected override byte[] ProcessRequest(string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
{
XmlSerializer xs;

View File

@@ -29,6 +29,7 @@ using System;
using Nini.Config;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Server.Handlers.Base;
@@ -58,7 +59,9 @@ namespace OpenSim.Server.Handlers.Authentication
Object[] args = new Object[] { config };
m_AuthenticationService = ServerUtils.LoadPlugin<IAuthenticationService>(authenticationService, args);
server.AddStreamHandler(new AuthenticationServerPostHandler(m_AuthenticationService, serverConfig));
IServiceAuth auth = ServiceAuth.Create(config, m_ConfigName);
server.AddStreamHandler(new AuthenticationServerPostHandler(m_AuthenticationService, serverConfig, auth));
}
}
}

View File

@@ -39,6 +39,7 @@ using System.Collections.Generic;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
using OpenMetaverse;
@@ -55,10 +56,10 @@ namespace OpenSim.Server.Handlers.Authentication
private bool m_AllowSetPassword = false;
public AuthenticationServerPostHandler(IAuthenticationService service) :
this(service, null) {}
this(service, null, null) {}
public AuthenticationServerPostHandler(IAuthenticationService service, IConfig config) :
base("POST", "/auth")
public AuthenticationServerPostHandler(IAuthenticationService service, IConfig config, IServiceAuth auth) :
base("POST", "/auth", auth)
{
m_AuthenticationService = service;
@@ -73,6 +74,7 @@ namespace OpenSim.Server.Handlers.Authentication
protected override byte[] ProcessRequest(string path, Stream request,
IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
{
m_log.Error("[XXX]: Authenticating...");
string[] p = SplitParams(path);
if (p.Length > 0)

View File

@@ -29,6 +29,7 @@ using System;
using Nini.Config;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Server.Handlers.Base;
@@ -55,7 +56,9 @@ namespace OpenSim.Server.Handlers.Avatar
Object[] args = new Object[] { config };
m_AvatarService = ServerUtils.LoadPlugin<IAvatarService>(avatarService, args);
server.AddStreamHandler(new AvatarServerPostHandler(m_AvatarService));
IServiceAuth auth = ServiceAuth.Create(config, m_ConfigName);
server.AddStreamHandler(new AvatarServerPostHandler(m_AvatarService, auth));
}
}
}

View File

@@ -39,6 +39,7 @@ using System.Collections.Generic;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
using OpenMetaverse;
@@ -50,8 +51,8 @@ namespace OpenSim.Server.Handlers.Avatar
private IAvatarService m_AvatarService;
public AvatarServerPostHandler(IAvatarService service) :
base("POST", "/avatar")
public AvatarServerPostHandler(IAvatarService service, IServiceAuth auth) :
base("POST", "/avatar", auth)
{
m_AvatarService = service;
}

View File

@@ -38,6 +38,7 @@ using System.Xml.Serialization;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
namespace OpenSim.Server.Handlers.BakedTextures
@@ -50,14 +51,14 @@ namespace OpenSim.Server.Handlers.BakedTextures
private System.Text.UTF8Encoding utf8 =
new System.Text.UTF8Encoding();
public BakesServerGetHandler(IBakedTextureService service) :
base("GET", "/bakes")
public BakesServerGetHandler(IBakedTextureService service, IServiceAuth auth) :
base("GET", "/bakes", auth)
{
m_BakesService = service;
}
public override byte[] Handle(string path, Stream request,
IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
protected override byte[] ProcessRequest(
string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
{
string[] p = SplitParams(path);

View File

@@ -29,6 +29,7 @@ using System;
using Nini.Config;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Server.Handlers.Base;
@@ -59,8 +60,10 @@ namespace OpenSim.Server.Handlers.BakedTextures
m_BakesService =
ServerUtils.LoadPlugin<IBakedTextureService>(assetService, args);
server.AddStreamHandler(new BakesServerGetHandler(m_BakesService));
server.AddStreamHandler(new BakesServerPostHandler(m_BakesService));
IServiceAuth auth = ServiceAuth.Create(config, m_ConfigName);
server.AddStreamHandler(new BakesServerGetHandler(m_BakesService, auth));
server.AddStreamHandler(new BakesServerPostHandler(m_BakesService, auth));
}
}
}

View File

@@ -38,27 +38,28 @@ using System.Xml.Serialization;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
namespace OpenSim.Server.Handlers.BakedTextures
{
public class BakesServerPostHandler : BaseStreamHandler
{
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private IBakedTextureService m_BakesService;
private System.Text.UTF8Encoding utf8 =
new System.Text.UTF8Encoding();
public BakesServerPostHandler(IBakedTextureService service) :
base("POST", "/bakes")
public BakesServerPostHandler(IBakedTextureService service, IServiceAuth auth) :
base("POST", "/bakes", auth)
{
m_BakesService = service;
}
public override byte[] Handle(string path, Stream request,
IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
protected override byte[] ProcessRequest(
string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse)
{
string[] p = SplitParams(path);

View File

@@ -29,6 +29,7 @@ using System;
using Nini.Config;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Server.Handlers.Base;
@@ -55,7 +56,8 @@ namespace OpenSim.Server.Handlers.Friends
Object[] args = new Object[] { config };
m_FriendsService = ServerUtils.LoadPlugin<IFriendsService>(theService, args);
server.AddStreamHandler(new FriendsServerPostHandler(m_FriendsService));
IServiceAuth auth = ServiceAuth.Create(config, m_ConfigName);
server.AddStreamHandler(new FriendsServerPostHandler(m_FriendsService, auth));
}
}
}

View File

@@ -40,6 +40,7 @@ using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using FriendInfo = OpenSim.Services.Interfaces.FriendInfo;
using OpenSim.Framework;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
using OpenMetaverse;
@@ -51,8 +52,8 @@ namespace OpenSim.Server.Handlers.Friends
private IFriendsService m_FriendsService;
public FriendsServerPostHandler(IFriendsService service) :
base("POST", "/friends")
public FriendsServerPostHandler(IFriendsService service, IServiceAuth auth) :
base("POST", "/friends", auth)
{
m_FriendsService = service;
}

View File

@@ -29,6 +29,7 @@ using System;
using Nini.Config;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Server.Handlers.Base;
@@ -55,7 +56,9 @@ namespace OpenSim.Server.Handlers.Grid
Object[] args = new Object[] { config };
m_GridService = ServerUtils.LoadPlugin<IGridService>(gridService, args);
server.AddStreamHandler(new GridServerPostHandler(m_GridService));
IServiceAuth auth = ServiceAuth.Create(config, m_ConfigName);
server.AddStreamHandler(new GridServerPostHandler(m_GridService, auth));
}
}
}

View File

@@ -40,6 +40,7 @@ using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using GridRegion = OpenSim.Services.Interfaces.GridRegion;
using OpenSim.Framework;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
using OpenMetaverse;
@@ -55,8 +56,8 @@ namespace OpenSim.Server.Handlers.Grid
private IGridService m_GridService;
public GridServerPostHandler(IGridService service) :
base("POST", "/grid")
public GridServerPostHandler(IGridService service, IServiceAuth auth) :
base("POST", "/grid", auth)
{
m_GridService = service;
}

View File

@@ -29,6 +29,7 @@ using System;
using Nini.Config;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Server.Handlers.Base;
@@ -55,7 +56,9 @@ namespace OpenSim.Server.Handlers.GridUser
Object[] args = new Object[] { config };
m_GridUserService = ServerUtils.LoadPlugin<IGridUserService>(service, args);
server.AddStreamHandler(new GridUserServerPostHandler(m_GridUserService));
IServiceAuth auth = ServiceAuth.Create(config, m_ConfigName); ;
server.AddStreamHandler(new GridUserServerPostHandler(m_GridUserService, auth));
}
}
}

View File

@@ -39,6 +39,7 @@ using System.Collections.Generic;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
using OpenMetaverse;
@@ -50,8 +51,8 @@ namespace OpenSim.Server.Handlers.GridUser
private IGridUserService m_GridUserService;
public GridUserServerPostHandler(IGridUserService service) :
base("POST", "/griduser")
public GridUserServerPostHandler(IGridUserService service, IServiceAuth auth) :
base("POST", "/griduser", auth)
{
m_GridUserService = service;
}

View File

@@ -33,6 +33,7 @@ using System.Collections.Generic;
using System.IO;
using Nini.Config;
using OpenSim.Framework;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.Servers.HttpServer;
@@ -71,7 +72,9 @@ namespace OpenSim.Server.Handlers.Asset
m_InventoryService =
ServerUtils.LoadPlugin<IInventoryService>(inventoryService, args);
server.AddStreamHandler(new XInventoryConnectorPostHandler(m_InventoryService));
IServiceAuth auth = ServiceAuth.Create(config, m_ConfigName);
server.AddStreamHandler(new XInventoryConnectorPostHandler(m_InventoryService, auth));
}
}
@@ -81,8 +84,8 @@ namespace OpenSim.Server.Handlers.Asset
private IInventoryService m_InventoryService;
public XInventoryConnectorPostHandler(IInventoryService service) :
base("POST", "/xinventory")
public XInventoryConnectorPostHandler(IInventoryService service, IServiceAuth auth) :
base("POST", "/xinventory", auth)
{
m_InventoryService = service;
}

View File

@@ -38,6 +38,7 @@ using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Server.Handlers.Base;
@@ -79,7 +80,8 @@ namespace OpenSim.Server.Handlers.MapImage
m_log.InfoFormat("[MAP IMAGE HANDLER]: GridService check is OFF");
bool proxy = serverConfig.GetBoolean("HasProxy", false);
server.AddStreamHandler(new MapServerPostHandler(m_MapService, m_GridService, proxy));
IServiceAuth auth = ServiceAuth.Create(config, m_ConfigName);
server.AddStreamHandler(new MapServerPostHandler(m_MapService, m_GridService, proxy, auth));
}
}
@@ -91,8 +93,8 @@ namespace OpenSim.Server.Handlers.MapImage
private IGridService m_GridService;
bool m_Proxy;
public MapServerPostHandler(IMapImageService service, IGridService grid, bool proxy) :
base("POST", "/map")
public MapServerPostHandler(IMapImageService service, IGridService grid, bool proxy, IServiceAuth auth) :
base("POST", "/map", auth)
{
m_MapService = service;
m_GridService = grid;

View File

@@ -30,6 +30,7 @@ using Nini.Config;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Server.Handlers.Base;
namespace OpenSim.Server.Handlers.Presence
@@ -55,7 +56,9 @@ namespace OpenSim.Server.Handlers.Presence
Object[] args = new Object[] { config };
m_PresenceService = ServerUtils.LoadPlugin<IPresenceService>(gridService, args);
server.AddStreamHandler(new PresenceServerPostHandler(m_PresenceService));
IServiceAuth auth = ServiceAuth.Create(config, m_ConfigName);
server.AddStreamHandler(new PresenceServerPostHandler(m_PresenceService, auth));
}
}
}

View File

@@ -40,6 +40,7 @@ using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Framework.ServiceAuth;
using OpenMetaverse;
namespace OpenSim.Server.Handlers.Presence
@@ -50,8 +51,8 @@ namespace OpenSim.Server.Handlers.Presence
private IPresenceService m_PresenceService;
public PresenceServerPostHandler(IPresenceService service) :
base("POST", "/presence")
public PresenceServerPostHandler(IPresenceService service, IServiceAuth auth) :
base("POST", "/presence", auth)
{
m_PresenceService = service;
}

View File

@@ -30,6 +30,7 @@ using Nini.Config;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Framework.ServiceAuth;
using OpenSim.Server.Handlers.Base;
namespace OpenSim.Server.Handlers.UserAccounts
@@ -55,7 +56,9 @@ namespace OpenSim.Server.Handlers.UserAccounts
Object[] args = new Object[] { config };
m_UserAccountService = ServerUtils.LoadPlugin<IUserAccountService>(service, args);
server.AddStreamHandler(new UserAccountServerPostHandler(m_UserAccountService, serverConfig));
IServiceAuth auth = ServiceAuth.Create(config, m_ConfigName);
server.AddStreamHandler(new UserAccountServerPostHandler(m_UserAccountService, serverConfig, auth));
}
}
}

View File

@@ -41,6 +41,7 @@ using OpenSim.Services.Interfaces;
using OpenSim.Services.UserAccountService;
using OpenSim.Framework;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Framework.ServiceAuth;
using OpenMetaverse;
namespace OpenSim.Server.Handlers.UserAccounts
@@ -54,10 +55,10 @@ namespace OpenSim.Server.Handlers.UserAccounts
private bool m_AllowSetAccount = false;
public UserAccountServerPostHandler(IUserAccountService service)
: this(service, null) {}
: this(service, null, null) {}
public UserAccountServerPostHandler(IUserAccountService service, IConfig config) :
base("POST", "/accounts")
public UserAccountServerPostHandler(IUserAccountService service, IConfig config, IServiceAuth auth) :
base("POST", "/accounts", auth)
{
m_UserAccountService = service;