From 40f2d6712d120dd62a42b7db3a6f074ce49c83d4 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Mon, 11 Mar 2024 08:59:54 +0100 Subject: [PATCH] Refactor Argeo APIs --- Makefile | 1 - .../argeo/api/acr}/ldap/LdapNameUtils.java | 2 +- org.argeo.api.cli/.classpath | 7 ----- org.argeo.api.cli/.project | 28 ------------------- org.argeo.api.cli/bnd.bnd | 0 org.argeo.api.cli/build.properties | 4 --- org.argeo.api.cms/META-INF/.gitignore | 1 - org.argeo.api.cms/bnd.bnd | 1 - .../api/cms}/auth/ImpliedByPrincipal.java | 16 ++++------- .../argeo/api/cms/auth}/RoleNameUtils.java | 4 +-- .../org/argeo/api/cms/auth}/SystemRole.java | 3 +- .../argeo/api/cli/CommandArgsException.java | 0 .../api/cli/CommandRuntimeException.java | 0 .../src/org/argeo/api/cli/CommandsCli.java | 0 .../org/argeo/api/cli/DescribedCommand.java | 0 .../src/org/argeo/api/cli/HelpCommand.java | 0 .../api/cli/PrintHelpRequestException.java | 0 .../src/org/argeo/api/cli/package-info.java | 0 .../src/org/argeo/cms/CurrentUser.java | 4 ++- .../src/org/argeo/cms/auth/CmsAuthUtils.java | 2 +- .../src/org/argeo/cms/auth/CmsSystemRole.java | 2 +- .../directory/ldap/AbstractLdapDirectory.java | 3 +- .../org/argeo/cms/directory/ldap/LdapDao.java | 1 + .../cms/directory/ldap/LdapHierarchyUnit.java | 1 + .../osgi/useradmin/DirectoryUserAdmin.java | 2 +- 25 files changed, 20 insertions(+), 62 deletions(-) rename {org.argeo.cms/src/org/argeo/cms/directory => org.argeo.api.acr/src/org/argeo/api/acr}/ldap/LdapNameUtils.java (97%) delete mode 100644 org.argeo.api.cli/.classpath delete mode 100644 org.argeo.api.cli/.project delete mode 100644 org.argeo.api.cli/bnd.bnd delete mode 100644 org.argeo.api.cli/build.properties delete mode 100644 org.argeo.api.cms/META-INF/.gitignore rename {org.argeo.cms/src/org/argeo/cms/internal => org.argeo.api.cms/src/org/argeo/api/cms}/auth/ImpliedByPrincipal.java (71%) rename {org.argeo.cms/src/org/argeo/cms => org.argeo.api.cms/src/org/argeo/api/cms/auth}/RoleNameUtils.java (93%) rename {org.argeo.cms/src/org/argeo/cms => org.argeo.api.cms/src/org/argeo/api/cms/auth}/SystemRole.java (94%) rename {org.argeo.api.cli => org.argeo.cms}/src/org/argeo/api/cli/CommandArgsException.java (100%) rename {org.argeo.api.cli => org.argeo.cms}/src/org/argeo/api/cli/CommandRuntimeException.java (100%) rename {org.argeo.api.cli => org.argeo.cms}/src/org/argeo/api/cli/CommandsCli.java (100%) rename {org.argeo.api.cli => org.argeo.cms}/src/org/argeo/api/cli/DescribedCommand.java (100%) rename {org.argeo.api.cli => org.argeo.cms}/src/org/argeo/api/cli/HelpCommand.java (100%) rename {org.argeo.api.cli => org.argeo.cms}/src/org/argeo/api/cli/PrintHelpRequestException.java (100%) rename {org.argeo.api.cli => org.argeo.cms}/src/org/argeo/api/cli/package-info.java (100%) diff --git a/Makefile b/Makefile index 407f4214b..497de15b0 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,6 @@ org.argeo.init \ org.argeo.api.uuid \ org.argeo.api.register \ org.argeo.api.acr \ -org.argeo.api.cli \ org.argeo.api.cms \ org.argeo.cms \ org.argeo.cms.ux \ diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapNameUtils.java b/org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapNameUtils.java similarity index 97% rename from org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapNameUtils.java rename to org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapNameUtils.java index 74f23da67..72fa65ab0 100644 --- a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapNameUtils.java +++ b/org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapNameUtils.java @@ -1,4 +1,4 @@ -package org.argeo.cms.directory.ldap; +package org.argeo.api.acr.ldap; import javax.naming.InvalidNameException; import javax.naming.ldap.LdapName; diff --git a/org.argeo.api.cli/.classpath b/org.argeo.api.cli/.classpath deleted file mode 100644 index 81fe078c2..000000000 --- a/org.argeo.api.cli/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/org.argeo.api.cli/.project b/org.argeo.api.cli/.project deleted file mode 100644 index 8f5cd419b..000000000 --- a/org.argeo.api.cli/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - org.argeo.api.cli - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - org.eclipse.jdt.core.javanature - - diff --git a/org.argeo.api.cli/bnd.bnd b/org.argeo.api.cli/bnd.bnd deleted file mode 100644 index e69de29bb..000000000 diff --git a/org.argeo.api.cli/build.properties b/org.argeo.api.cli/build.properties deleted file mode 100644 index 34d2e4d2d..000000000 --- a/org.argeo.api.cli/build.properties +++ /dev/null @@ -1,4 +0,0 @@ -source.. = src/ -output.. = bin/ -bin.includes = META-INF/,\ - . diff --git a/org.argeo.api.cms/META-INF/.gitignore b/org.argeo.api.cms/META-INF/.gitignore deleted file mode 100644 index 4854a41b9..000000000 --- a/org.argeo.api.cms/META-INF/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/MANIFEST.MF diff --git a/org.argeo.api.cms/bnd.bnd b/org.argeo.api.cms/bnd.bnd index 0b7c5a4da..19a9abdf2 100644 --- a/org.argeo.api.cms/bnd.bnd +++ b/org.argeo.api.cms/bnd.bnd @@ -1,7 +1,6 @@ Import-Package: \ javax.transaction.xa,\ javax.security.*,\ -org.osgi.service.useradmin,\ * Export-Package: org.argeo.api.cms.* \ No newline at end of file diff --git a/org.argeo.cms/src/org/argeo/cms/internal/auth/ImpliedByPrincipal.java b/org.argeo.api.cms/src/org/argeo/api/cms/auth/ImpliedByPrincipal.java similarity index 71% rename from org.argeo.cms/src/org/argeo/cms/internal/auth/ImpliedByPrincipal.java rename to org.argeo.api.cms/src/org/argeo/api/cms/auth/ImpliedByPrincipal.java index 9e0ebce97..21a632594 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/auth/ImpliedByPrincipal.java +++ b/org.argeo.api.cms/src/org/argeo/api/cms/auth/ImpliedByPrincipal.java @@ -1,4 +1,4 @@ -package org.argeo.cms.internal.auth; +package org.argeo.api.cms.auth; import java.security.Principal; import java.util.HashSet; @@ -6,16 +6,12 @@ import java.util.Set; import javax.xml.namespace.QName; -import org.argeo.cms.RoleNameUtils; -import org.osgi.service.useradmin.Authorization; - /** - * A {@link Principal} which has been implied by an {@link Authorization}. If it - * is empty it means this is an additional identity, otherwise it lists the - * users (typically the logged in user but possibly empty - * {@link ImpliedByPrincipal}s) which have implied it. When an additional - * identity is removed, the related {@link ImpliedByPrincipal}s can thus be - * removed. + * A {@link Principal} which has been implied by an authorisation. If it is + * empty it means this is an additional identity, otherwise it lists the users + * (typically the logged-in user but possibly empty {@link ImpliedByPrincipal}s) + * which have implied it. When an additional identity is removed, the related + * {@link ImpliedByPrincipal}s can thus be removed. */ public final class ImpliedByPrincipal implements Principal { private final String name; diff --git a/org.argeo.cms/src/org/argeo/cms/RoleNameUtils.java b/org.argeo.api.cms/src/org/argeo/api/cms/auth/RoleNameUtils.java similarity index 93% rename from org.argeo.cms/src/org/argeo/cms/RoleNameUtils.java rename to org.argeo.api.cms/src/org/argeo/api/cms/auth/RoleNameUtils.java index 04302c42f..52e238010 100644 --- a/org.argeo.cms/src/org/argeo/cms/RoleNameUtils.java +++ b/org.argeo.api.cms/src/org/argeo/api/cms/auth/RoleNameUtils.java @@ -1,4 +1,4 @@ -package org.argeo.cms; +package org.argeo.api.cms.auth; import static org.argeo.api.acr.RuntimeNamespaceContext.getNamespaceContext; @@ -6,7 +6,7 @@ import javax.xml.namespace.QName; import org.argeo.api.acr.ArgeoNamespace; import org.argeo.api.acr.NamespaceUtils; -import org.argeo.cms.directory.ldap.LdapNameUtils; +import org.argeo.api.acr.ldap.LdapNameUtils; /** Simplifies analysis of system roles. */ public class RoleNameUtils { diff --git a/org.argeo.cms/src/org/argeo/cms/SystemRole.java b/org.argeo.api.cms/src/org/argeo/api/cms/auth/SystemRole.java similarity index 94% rename from org.argeo.cms/src/org/argeo/cms/SystemRole.java rename to org.argeo.api.cms/src/org/argeo/api/cms/auth/SystemRole.java index 95643998a..988085178 100644 --- a/org.argeo.cms/src/org/argeo/cms/SystemRole.java +++ b/org.argeo.api.cms/src/org/argeo/api/cms/auth/SystemRole.java @@ -1,4 +1,4 @@ -package org.argeo.cms; +package org.argeo.api.cms.auth; import java.util.Set; @@ -6,7 +6,6 @@ import javax.security.auth.Subject; import javax.xml.namespace.QName; import org.argeo.api.cms.CmsConstants; -import org.argeo.cms.internal.auth.ImpliedByPrincipal; /** A programmatic role. */ public interface SystemRole { diff --git a/org.argeo.api.cli/src/org/argeo/api/cli/CommandArgsException.java b/org.argeo.cms/src/org/argeo/api/cli/CommandArgsException.java similarity index 100% rename from org.argeo.api.cli/src/org/argeo/api/cli/CommandArgsException.java rename to org.argeo.cms/src/org/argeo/api/cli/CommandArgsException.java diff --git a/org.argeo.api.cli/src/org/argeo/api/cli/CommandRuntimeException.java b/org.argeo.cms/src/org/argeo/api/cli/CommandRuntimeException.java similarity index 100% rename from org.argeo.api.cli/src/org/argeo/api/cli/CommandRuntimeException.java rename to org.argeo.cms/src/org/argeo/api/cli/CommandRuntimeException.java diff --git a/org.argeo.api.cli/src/org/argeo/api/cli/CommandsCli.java b/org.argeo.cms/src/org/argeo/api/cli/CommandsCli.java similarity index 100% rename from org.argeo.api.cli/src/org/argeo/api/cli/CommandsCli.java rename to org.argeo.cms/src/org/argeo/api/cli/CommandsCli.java diff --git a/org.argeo.api.cli/src/org/argeo/api/cli/DescribedCommand.java b/org.argeo.cms/src/org/argeo/api/cli/DescribedCommand.java similarity index 100% rename from org.argeo.api.cli/src/org/argeo/api/cli/DescribedCommand.java rename to org.argeo.cms/src/org/argeo/api/cli/DescribedCommand.java diff --git a/org.argeo.api.cli/src/org/argeo/api/cli/HelpCommand.java b/org.argeo.cms/src/org/argeo/api/cli/HelpCommand.java similarity index 100% rename from org.argeo.api.cli/src/org/argeo/api/cli/HelpCommand.java rename to org.argeo.cms/src/org/argeo/api/cli/HelpCommand.java diff --git a/org.argeo.api.cli/src/org/argeo/api/cli/PrintHelpRequestException.java b/org.argeo.cms/src/org/argeo/api/cli/PrintHelpRequestException.java similarity index 100% rename from org.argeo.api.cli/src/org/argeo/api/cli/PrintHelpRequestException.java rename to org.argeo.cms/src/org/argeo/api/cli/PrintHelpRequestException.java diff --git a/org.argeo.api.cli/src/org/argeo/api/cli/package-info.java b/org.argeo.cms/src/org/argeo/api/cli/package-info.java similarity index 100% rename from org.argeo.api.cli/src/org/argeo/api/cli/package-info.java rename to org.argeo.cms/src/org/argeo/api/cli/package-info.java diff --git a/org.argeo.cms/src/org/argeo/cms/CurrentUser.java b/org.argeo.cms/src/org/argeo/cms/CurrentUser.java index ad12a8665..c879a4d2d 100644 --- a/org.argeo.cms/src/org/argeo/cms/CurrentUser.java +++ b/org.argeo.cms/src/org/argeo/cms/CurrentUser.java @@ -17,8 +17,10 @@ import org.argeo.api.acr.NamespaceUtils; import org.argeo.api.cms.CmsConstants; import org.argeo.api.cms.CmsSession; import org.argeo.api.cms.CmsSessionId; +import org.argeo.api.cms.auth.ImpliedByPrincipal; +import org.argeo.api.cms.auth.RoleNameUtils; +import org.argeo.api.cms.auth.SystemRole; import org.argeo.cms.internal.auth.CmsSessionImpl; -import org.argeo.cms.internal.auth.ImpliedByPrincipal; import org.argeo.cms.internal.runtime.CmsContextImpl; import org.argeo.cms.util.CurrentSubject; import org.osgi.service.useradmin.Authorization; diff --git a/org.argeo.cms/src/org/argeo/cms/auth/CmsAuthUtils.java b/org.argeo.cms/src/org/argeo/cms/auth/CmsAuthUtils.java index 379920724..6657e794e 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/CmsAuthUtils.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/CmsAuthUtils.java @@ -23,8 +23,8 @@ import org.argeo.api.cms.CmsConstants; import org.argeo.api.cms.CmsSession; import org.argeo.api.cms.CmsSessionId; import org.argeo.api.cms.DataAdminPrincipal; +import org.argeo.api.cms.auth.ImpliedByPrincipal; import org.argeo.cms.internal.auth.CmsSessionImpl; -import org.argeo.cms.internal.auth.ImpliedByPrincipal; import org.argeo.cms.internal.auth.RemoteCmsSessionImpl; import org.argeo.cms.internal.runtime.CmsContextImpl; import org.argeo.cms.osgi.useradmin.AuthenticatingUser; diff --git a/org.argeo.cms/src/org/argeo/cms/auth/CmsSystemRole.java b/org.argeo.cms/src/org/argeo/cms/auth/CmsSystemRole.java index 64dbd0f6e..87daa2f95 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/CmsSystemRole.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/CmsSystemRole.java @@ -4,7 +4,7 @@ import javax.xml.namespace.QName; import org.argeo.api.acr.ArgeoNamespace; import org.argeo.api.acr.ContentName; -import org.argeo.cms.SystemRole; +import org.argeo.api.cms.auth.SystemRole; /** Standard CMS system roles. */ public enum CmsSystemRole implements SystemRole { diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/AbstractLdapDirectory.java b/org.argeo.cms/src/org/argeo/cms/directory/ldap/AbstractLdapDirectory.java index 5dffcb63a..39355c3c4 100644 --- a/org.argeo.cms/src/org/argeo/cms/directory/ldap/AbstractLdapDirectory.java +++ b/org.argeo.cms/src/org/argeo/cms/directory/ldap/AbstractLdapDirectory.java @@ -1,6 +1,6 @@ package org.argeo.cms.directory.ldap; -import static org.argeo.cms.directory.ldap.LdapNameUtils.toLdapName; +import static org.argeo.api.acr.ldap.LdapNameUtils.toLdapName; import java.io.File; import java.net.URI; @@ -27,6 +27,7 @@ import javax.naming.ldap.Rdn; import javax.transaction.xa.XAResource; import org.argeo.api.acr.ldap.LdapAttr; +import org.argeo.api.acr.ldap.LdapNameUtils; import org.argeo.api.acr.ldap.LdapObj; import org.argeo.api.cms.directory.CmsDirectory; import org.argeo.api.cms.directory.HierarchyUnit; diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapDao.java b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapDao.java index cdc1c9fe6..ff785638d 100644 --- a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapDao.java +++ b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapDao.java @@ -20,6 +20,7 @@ import javax.naming.ldap.LdapName; import javax.naming.ldap.Rdn; import org.argeo.api.acr.ldap.LdapAttr; +import org.argeo.api.acr.ldap.LdapNameUtils; import org.argeo.api.acr.ldap.LdapObj; import org.argeo.api.cms.directory.HierarchyUnit; diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapHierarchyUnit.java b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapHierarchyUnit.java index b60ee0c68..81b20f0a3 100644 --- a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapHierarchyUnit.java +++ b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapHierarchyUnit.java @@ -5,6 +5,7 @@ import java.util.Locale; import javax.naming.ldap.LdapName; import javax.naming.ldap.Rdn; +import org.argeo.api.acr.ldap.LdapNameUtils; import org.argeo.api.cms.directory.HierarchyUnit; /** LDIF/LDAP based implementation of {@link HierarchyUnit}. */ diff --git a/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/DirectoryUserAdmin.java b/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/DirectoryUserAdmin.java index e5fb01242..47cf5d378 100644 --- a/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/DirectoryUserAdmin.java +++ b/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/DirectoryUserAdmin.java @@ -25,6 +25,7 @@ import javax.naming.ldap.Rdn; import javax.security.auth.Subject; import javax.security.auth.kerberos.KerberosTicket; +import org.argeo.api.acr.ldap.LdapNameUtils; import org.argeo.api.cms.directory.CmsRole; import org.argeo.api.cms.directory.DirectoryDigestUtils; import org.argeo.api.cms.directory.HierarchyUnit; @@ -33,7 +34,6 @@ import org.argeo.cms.directory.ldap.AbstractLdapDirectory; import org.argeo.cms.directory.ldap.LdapDao; import org.argeo.cms.directory.ldap.LdapEntry; import org.argeo.cms.directory.ldap.LdapEntryWorkingCopy; -import org.argeo.cms.directory.ldap.LdapNameUtils; import org.argeo.cms.directory.ldap.LdifDao; import org.argeo.cms.runtime.DirectoryConf; import org.argeo.cms.util.CurrentSubject; -- 2.30.2