From 932e591e05aa364ad9205f1b98a1247d6a54c590 Mon Sep 17 00:00:00 2001 From: Mike Mazur Date: Mon, 16 Feb 2009 02:26:52 +0000 Subject: Move NullAuthentication and AuthorizeAll extensions to plugins. --- .../AssetInventoryServer/AssetInventoryServer.cs | 2 + .../Extensions/AuthorizeAll.cs | 78 ---------------- .../Extensions/NullAuthentication.cs | 68 -------------- OpenSim/Grid/AssetInventoryServer/Interfaces.cs | 4 +- .../Plugins/AuthorizeAllPlugin.cs | 104 +++++++++++++++++++++ .../Plugins/NullAuthenticationPlugin.cs | 94 +++++++++++++++++++ .../AssetInventoryServerPlugins.addin.xml | 6 ++ 7 files changed, 208 insertions(+), 148 deletions(-) delete mode 100644 OpenSim/Grid/AssetInventoryServer/Extensions/AuthorizeAll.cs delete mode 100644 OpenSim/Grid/AssetInventoryServer/Extensions/NullAuthentication.cs create mode 100644 OpenSim/Grid/AssetInventoryServer/Plugins/AuthorizeAllPlugin.cs create mode 100644 OpenSim/Grid/AssetInventoryServer/Plugins/NullAuthenticationPlugin.cs (limited to 'OpenSim/Grid/AssetInventoryServer') diff --git a/OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs b/OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs index 012c4ea..c6c7da2 100644 --- a/OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs +++ b/OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs @@ -122,6 +122,8 @@ namespace OpenSim.Grid.AssetInventoryServer } frontends.AddRange(LoadAssetInventoryServerPlugins("/OpenSim/AssetInventoryServer/Frontend", String.Empty)); + AuthenticationProvider = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/AuthenticationProvider", String.Empty) as IAuthenticationProvider; + AuthorizationProvider = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/AuthorizationProvider", String.Empty) as IAuthorizationProvider; return true; } diff --git a/OpenSim/Grid/AssetInventoryServer/Extensions/AuthorizeAll.cs b/OpenSim/Grid/AssetInventoryServer/Extensions/AuthorizeAll.cs deleted file mode 100644 index 10f3bdc..0000000 --- a/OpenSim/Grid/AssetInventoryServer/Extensions/AuthorizeAll.cs +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2008 Intel Corporation - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * -- Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * -- Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * -- Neither the name of the Intel Corporation nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR ITS - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using ExtensionLoader; -using OpenMetaverse; - -namespace OpenSim.Grid.AssetInventoryServer.Extensions -{ - public class AuthorizeAll : IExtension, IAuthorizationProvider - { - AssetInventoryServer server; - - public AuthorizeAll() - { - } - - public void Start(AssetInventoryServer server) - { - this.server = server; - } - - public void Stop() - { - } - - public bool IsMetadataAuthorized(UUID authToken, UUID assetID) - { - return true; - } - - public bool IsDataAuthorized(UUID authToken, UUID assetID) - { - return true; - } - - public bool IsCreateAuthorized(UUID authToken) - { - return true; - } - - public bool IsInventoryReadAuthorized(UUID authToken, Uri owner) - { - return true; - } - - public bool IsInventoryWriteAuthorized(UUID authToken, Uri owner) - { - return true; - } - } -} diff --git a/OpenSim/Grid/AssetInventoryServer/Extensions/NullAuthentication.cs b/OpenSim/Grid/AssetInventoryServer/Extensions/NullAuthentication.cs deleted file mode 100644 index 96e210a..0000000 --- a/OpenSim/Grid/AssetInventoryServer/Extensions/NullAuthentication.cs +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2008 Intel Corporation - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * -- Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * -- Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * -- Neither the name of the Intel Corporation nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR ITS - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using ExtensionLoader; -using OpenMetaverse; - -namespace OpenSim.Grid.AssetInventoryServer.Extensions -{ - public class NullAuthentication : IExtension, IAuthenticationProvider - { - AssetInventoryServer server; - - public NullAuthentication() - { - } - - public void Start(AssetInventoryServer server) - { - this.server = server; - } - - public void Stop() - { - } - - public void AddIdentifier(UUID authToken, Uri identifier) - { - } - - public bool RemoveIdentifier(UUID authToken) - { - return true; - } - - public bool TryGetIdentifier(UUID authToken, out Uri identifier) - { - identifier = null; - return true; - } - } -} diff --git a/OpenSim/Grid/AssetInventoryServer/Interfaces.cs b/OpenSim/Grid/AssetInventoryServer/Interfaces.cs index c4aa7ac..19298c5 100644 --- a/OpenSim/Grid/AssetInventoryServer/Interfaces.cs +++ b/OpenSim/Grid/AssetInventoryServer/Interfaces.cs @@ -102,14 +102,14 @@ namespace OpenSim.Grid.AssetInventoryServer BackendResponse TryPurgeFolder(Uri owner, UUID folderID); } - public interface IAuthenticationProvider + public interface IAuthenticationProvider : IAssetInventoryServerPlugin { void AddIdentifier(UUID authToken, Uri identifier); bool RemoveIdentifier(UUID authToken); bool TryGetIdentifier(UUID authToken, out Uri identifier); } - public interface IAuthorizationProvider + public interface IAuthorizationProvider : IAssetInventoryServerPlugin { bool IsMetadataAuthorized(UUID authToken, UUID assetID); /// diff --git a/OpenSim/Grid/AssetInventoryServer/Plugins/AuthorizeAllPlugin.cs b/OpenSim/Grid/AssetInventoryServer/Plugins/AuthorizeAllPlugin.cs new file mode 100644 index 0000000..8974b6f --- /dev/null +++ b/OpenSim/Grid/AssetInventoryServer/Plugins/AuthorizeAllPlugin.cs @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2008 Intel Corporation + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * -- Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * -- Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * -- Neither the name of the Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR ITS + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using OpenMetaverse; +using OpenSim.Framework; + +namespace OpenSim.Grid.AssetInventoryServer.Plugins +{ + public class AuthorizeAllPlugin : IAuthorizationProvider + { + AssetInventoryServer server; + + public AuthorizeAllPlugin() + { + } + + #region IPlugin implementation + + public void Initialise(AssetInventoryServer server) + { + this.server = server; + + Logger.Log.Info("[ASSET] Authorize All loaded."); + } + + /// + /// Initialises asset interface + /// + public void Initialise() + { + Logger.Log.InfoFormat("[ASSET]: {0} cannot be default-initialized!", Name); + throw new PluginNotInitialisedException(Name); + } + + public void Dispose() + { + } + + public string Version + { + // TODO: this should be something meaningful and not hardcoded? + get { return "0.1"; } + } + + public string Name + { + get { return "AssetInventoryServer Null authentication frontend"; } + } + + #endregion IPlugin implementation + + public bool IsMetadataAuthorized(UUID authToken, UUID assetID) + { + return true; + } + + public bool IsDataAuthorized(UUID authToken, UUID assetID) + { + return true; + } + + public bool IsCreateAuthorized(UUID authToken) + { + return true; + } + + public bool IsInventoryReadAuthorized(UUID authToken, Uri owner) + { + return true; + } + + public bool IsInventoryWriteAuthorized(UUID authToken, Uri owner) + { + return true; + } + } +} diff --git a/OpenSim/Grid/AssetInventoryServer/Plugins/NullAuthenticationPlugin.cs b/OpenSim/Grid/AssetInventoryServer/Plugins/NullAuthenticationPlugin.cs new file mode 100644 index 0000000..81e58c6 --- /dev/null +++ b/OpenSim/Grid/AssetInventoryServer/Plugins/NullAuthenticationPlugin.cs @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2008 Intel Corporation + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * -- Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * -- Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * -- Neither the name of the Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR ITS + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using OpenMetaverse; +using OpenSim.Framework; + +namespace OpenSim.Grid.AssetInventoryServer.Plugins +{ + public class NullAuthenticationPlugin : IAuthenticationProvider + { + AssetInventoryServer server; + + public NullAuthenticationPlugin() + { + } + + #region IPlugin implementation + + public void Initialise(AssetInventoryServer server) + { + this.server = server; + + Logger.Log.Info("[ASSET] Null Authentication loaded."); + } + + /// + /// Initialises asset interface + /// + public void Initialise() + { + Logger.Log.InfoFormat("[ASSET]: {0} cannot be default-initialized!", Name); + throw new PluginNotInitialisedException(Name); + } + + public void Dispose() + { + } + + public string Version + { + // TODO: this should be something meaningful and not hardcoded? + get { return "0.1"; } + } + + public string Name + { + get { return "AssetInventoryServer Null authentication frontend"; } + } + + #endregion IPlugin implementation + + public void AddIdentifier(UUID authToken, Uri identifier) + { + } + + public bool RemoveIdentifier(UUID authToken) + { + return true; + } + + public bool TryGetIdentifier(UUID authToken, out Uri identifier) + { + identifier = null; + return true; + } + } +} diff --git a/OpenSim/Grid/AssetInventoryServer/Plugins/Resources/AssetInventoryServerPlugins.addin.xml b/OpenSim/Grid/AssetInventoryServer/Plugins/Resources/AssetInventoryServerPlugins.addin.xml index 0ec28de..67c4cd2 100644 --- a/OpenSim/Grid/AssetInventoryServer/Plugins/Resources/AssetInventoryServerPlugins.addin.xml +++ b/OpenSim/Grid/AssetInventoryServer/Plugins/Resources/AssetInventoryServerPlugins.addin.xml @@ -16,4 +16,10 @@ + + + + + + -- cgit v1.1