From e4a5502f49e2a2c35d16bbc96efdffead1362a76 Mon Sep 17 00:00:00 2001 From: Mathieu Date: Sun, 13 Nov 2022 08:22:34 +0100 Subject: [PATCH] Rename LDAP enums --- .../ldap/{LdapAttrs.java => LdapAttr.java} | 9 +++---- .../acr/ldap/{LdapObjs.java => LdapObj.java} | 9 +++---- .../org/argeo/api/acr/ldap/SpecifiedName.java | 2 +- .../cms/acr/SingleUserContentRepository.java | 4 +-- .../directory/AbstractDirectoryContent.java | 14 +++++----- .../argeo/cms/auth/SingleUserLoginModule.java | 4 +-- .../argeo/cms/auth/UserAdminLoginModule.java | 8 +++--- .../org/argeo/cms/auth/UserAdminUtils.java | 24 ++++++++--------- .../directory/ldap/AbstractLdapDirectory.java | 24 ++++++++--------- .../cms/directory/ldap/AuthPassword.java | 6 ++--- .../cms/directory/ldap/DefaultLdapEntry.java | 26 +++++++++---------- .../argeo/cms/directory/ldap/IpaUtils.java | 8 +++--- .../cms/directory/ldap/LdapConnection.java | 4 +-- .../org/argeo/cms/directory/ldap/LdapDao.java | 22 ++++++++-------- .../argeo/cms/directory/ldap/LdapEntry.java | 6 ++--- .../org/argeo/cms/directory/ldap/LdifDao.java | 8 +++--- .../argeo/cms/directory/ldap/LdifParser.java | 6 ++--- .../argeo/cms/directory/ldap/LdifWriter.java | 8 +++--- .../internal/runtime/CmsUserManagerImpl.java | 26 +++++++++---------- .../osgi/useradmin/DirectoryUserAdmin.java | 12 ++++----- .../cms/osgi/useradmin/LdifAuthorization.java | 8 +++--- .../cms/osgi/useradmin/OsUserDirectory.java | 4 +-- .../argeo/cms/osgi/useradmin/TokenUtils.java | 4 +-- 23 files changed, 122 insertions(+), 124 deletions(-) rename org.argeo.api.acr/src/org/argeo/api/acr/ldap/{LdapAttrs.java => LdapAttr.java} (98%) rename org.argeo.api.acr/src/org/argeo/api/acr/ldap/{LdapObjs.java => LdapObj.java} (95%) diff --git a/org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapAttrs.java b/org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapAttr.java similarity index 98% rename from org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapAttrs.java rename to org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapAttr.java index b5af7526f..19e4884a0 100644 --- a/org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapAttrs.java +++ b/org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapAttr.java @@ -3,8 +3,6 @@ package org.argeo.api.acr.ldap; import static org.argeo.api.acr.ArgeoNamespace.LDAP_DEFAULT_PREFIX; import static org.argeo.api.acr.ArgeoNamespace.LDAP_NAMESPACE_URI; -import java.util.function.Supplier; - import javax.xml.namespace.QName; import org.argeo.api.acr.ContentName; @@ -18,7 +16,7 @@ import org.argeo.api.acr.RuntimeNamespaceContext; * "https://github.com/krb5/krb5/blob/master/src/plugins/kdb/ldap/libkdb_ldap/kerberos.schema">Kerberos * LDAP (partial) */ -public enum LdapAttrs implements QNamed, SpecifiedName, Supplier { +public enum LdapAttr implements QNamed, SpecifiedName { /** */ uid("0.9.2342.19200300.100.1.1", "RFC 4519"), /** */ @@ -315,7 +313,7 @@ public enum LdapAttrs implements QNamed, SpecifiedName, Supplier { private final String oid, spec; private final QName value; - LdapAttrs(String oid, String spec) { + LdapAttr(String oid, String spec) { this.oid = oid; this.spec = spec; this.value = new ContentName(LDAP_NAMESPACE_URI, name()); @@ -345,7 +343,8 @@ public enum LdapAttrs implements QNamed, SpecifiedName, Supplier { return get(); } - @Override + /** @deprecated use {@link #qName()} instead. */ + @Deprecated public String get() { return RuntimeNamespaceContext.getNamespaceContext().getPrefix(LDAP_NAMESPACE_URI) + ":" + name(); } diff --git a/org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapObjs.java b/org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapObj.java similarity index 95% rename from org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapObjs.java rename to org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapObj.java index 45c8a5428..ba7858185 100644 --- a/org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapObjs.java +++ b/org.argeo.api.acr/src/org/argeo/api/acr/ldap/LdapObj.java @@ -3,8 +3,6 @@ package org.argeo.api.acr.ldap; import static org.argeo.api.acr.ArgeoNamespace.LDAP_DEFAULT_PREFIX; import static org.argeo.api.acr.ArgeoNamespace.LDAP_NAMESPACE_URI; -import java.util.function.Supplier; - import javax.xml.namespace.QName; import org.argeo.api.acr.ArgeoNamespace; @@ -17,7 +15,7 @@ import org.argeo.api.acr.RuntimeNamespaceContext; * https://www.ldap.com/ldap- * oid-reference */ -public enum LdapObjs implements QNamed, SpecifiedName, Supplier { +public enum LdapObj implements QNamed, SpecifiedName { account("0.9.2342.19200300.100.4.5", "RFC 4524"), /** */ document("0.9.2342.19200300.100.4.6", "RFC 4524"), @@ -115,7 +113,7 @@ public enum LdapObjs implements QNamed, SpecifiedName, Supplier { private final String oid, spec; private final QName value; - private LdapObjs(String oid, String spec) { + private LdapObj(String oid, String spec) { this.oid = oid; this.spec = spec; this.value = new ContentName(ArgeoNamespace.LDAP_NAMESPACE_URI, name()); @@ -138,7 +136,8 @@ public enum LdapObjs implements QNamed, SpecifiedName, Supplier { return get(); } - @Override + /** @deprecated use {@link #qName()} instead. */ + @Deprecated public String get() { return RuntimeNamespaceContext.getNamespaceContext().getPrefix(LDAP_NAMESPACE_URI) + ":" + name(); } diff --git a/org.argeo.api.acr/src/org/argeo/api/acr/ldap/SpecifiedName.java b/org.argeo.api.acr/src/org/argeo/api/acr/ldap/SpecifiedName.java index 5de8ab253..19e724063 100644 --- a/org.argeo.api.acr/src/org/argeo/api/acr/ldap/SpecifiedName.java +++ b/org.argeo.api.acr/src/org/argeo/api/acr/ldap/SpecifiedName.java @@ -4,7 +4,7 @@ package org.argeo.api.acr.ldap; * A name which has been specified and for which an id has been defined * (typically an OID). */ -public interface SpecifiedName { +interface SpecifiedName { /** The name */ String name(); diff --git a/org.argeo.cms/src/org/argeo/cms/acr/SingleUserContentRepository.java b/org.argeo.cms/src/org/argeo/cms/acr/SingleUserContentRepository.java index 8c87c5a93..b9b940f05 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/SingleUserContentRepository.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/SingleUserContentRepository.java @@ -10,7 +10,7 @@ import javax.security.auth.Subject; import javax.security.auth.x500.X500Principal; import org.argeo.api.acr.ContentSession; -import org.argeo.api.acr.ldap.LdapAttrs; +import org.argeo.api.acr.ldap.LdapAttr; import org.argeo.api.acr.spi.ProvidedRepository; import org.argeo.api.uuid.MacAddressUuidFactory; import org.argeo.api.uuid.UuidFactory; @@ -86,7 +86,7 @@ public class SingleUserContentRepository extends AbstractContentRepository { public static void main(String... args) { Path homePath = Paths.get(System.getProperty("user.home")); String username = System.getProperty("user.name"); - X500Principal principal = new X500Principal(LdapAttrs.uid + "=" + username + ",dc=localhost"); + X500Principal principal = new X500Principal(LdapAttr.uid + "=" + username + ",dc=localhost"); Subject subject = new Subject(); subject.getPrincipals().add(principal); diff --git a/org.argeo.cms/src/org/argeo/cms/acr/directory/AbstractDirectoryContent.java b/org.argeo.cms/src/org/argeo/cms/acr/directory/AbstractDirectoryContent.java index ac0a7317f..f28842048 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/directory/AbstractDirectoryContent.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/directory/AbstractDirectoryContent.java @@ -14,8 +14,8 @@ import org.argeo.api.acr.ArgeoNamespace; import org.argeo.api.acr.ContentName; import org.argeo.api.acr.CrAttributeType; import org.argeo.api.acr.NamespaceUtils; -import org.argeo.api.acr.ldap.LdapAttrs; -import org.argeo.api.acr.ldap.LdapObjs; +import org.argeo.api.acr.ldap.LdapAttr; +import org.argeo.api.acr.ldap.LdapObj; import org.argeo.api.acr.spi.ContentProvider; import org.argeo.api.acr.spi.ProvidedSession; import org.argeo.cms.acr.AbstractContent; @@ -50,9 +50,9 @@ abstract class AbstractDirectoryContent extends AbstractContent { Set keys = new TreeSet<>(NamespaceUtils.QNAME_COMPARATOR); keys: for (Enumeration it = properties.keys(); it.hasMoreElements();) { String key = it.nextElement(); - if (key.equalsIgnoreCase(LdapAttrs.objectClass.name())) + if (key.equalsIgnoreCase(LdapAttr.objectClass.name())) continue keys; - if (key.equalsIgnoreCase(LdapAttrs.objectClasses.name())) + if (key.equalsIgnoreCase(LdapAttr.objectClasses.name())) continue keys; ContentName name = new ContentName(ArgeoNamespace.LDAP_NAMESPACE_URI, key, provider); keys.add(name); @@ -64,12 +64,12 @@ abstract class AbstractDirectoryContent extends AbstractContent { public List getContentClasses() { Dictionary properties = doGetProperties(); List contentClasses = new ArrayList<>(); - String objectClass = properties.get(LdapAttrs.objectClass.name()).toString(); + String objectClass = properties.get(LdapAttr.objectClass.name()).toString(); contentClasses.add(new ContentName(ArgeoNamespace.LDAP_NAMESPACE_URI, objectClass, provider)); - String[] objectClasses = properties.get(LdapAttrs.objectClasses.name()).toString().split("\\n"); + String[] objectClasses = properties.get(LdapAttr.objectClasses.name()).toString().split("\\n"); objectClasses: for (String oc : objectClasses) { - if (LdapObjs.top.name().equalsIgnoreCase(oc)) + if (LdapObj.top.name().equalsIgnoreCase(oc)) continue objectClasses; if (objectClass.equalsIgnoreCase(oc)) continue objectClasses; diff --git a/org.argeo.cms/src/org/argeo/cms/auth/SingleUserLoginModule.java b/org.argeo.cms/src/org/argeo/cms/auth/SingleUserLoginModule.java index 23fdb6dee..4b36f28ab 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/SingleUserLoginModule.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/SingleUserLoginModule.java @@ -11,7 +11,7 @@ import javax.security.auth.login.LoginException; import javax.security.auth.spi.LoginModule; import javax.security.auth.x500.X500Principal; -import org.argeo.api.acr.ldap.LdapAttrs; +import org.argeo.api.acr.ldap.LdapAttr; import org.argeo.cms.directory.ldap.IpaUtils; import org.argeo.cms.internal.runtime.CmsContextImpl; import org.argeo.cms.osgi.useradmin.OsUserUtils; @@ -54,7 +54,7 @@ public class SingleUserLoginModule implements LoginModule { throw new LoginException("No username available"); String hostname = CmsContextImpl.getCmsContext().getCmsState().getHostname(); String baseDn = ("." + hostname).replaceAll("\\.", ",dc="); - X500Principal principal = new X500Principal(LdapAttrs.uid + "=" + username + baseDn); + X500Principal principal = new X500Principal(LdapAttr.uid + "=" + username + baseDn); authorizationName = principal.getName(); } diff --git a/org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java b/org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java index 2fbf8c232..aa41e1083 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java @@ -1,6 +1,6 @@ package org.argeo.cms.auth; -import static org.argeo.api.acr.ldap.LdapAttrs.cn; +import static org.argeo.api.acr.ldap.LdapAttr.cn; import java.io.IOException; import java.security.PrivilegedAction; @@ -24,7 +24,7 @@ import javax.security.auth.login.CredentialNotFoundException; import javax.security.auth.login.LoginException; import javax.security.auth.spi.LoginModule; -import org.argeo.api.acr.ldap.LdapAttrs; +import org.argeo.api.acr.ldap.LdapAttr; import org.argeo.api.cms.CmsConstants; import org.argeo.api.cms.CmsLog; import org.argeo.cms.directory.ldap.IpaUtils; @@ -47,8 +47,8 @@ public class UserAdminLoginModule implements LoginModule { private CallbackHandler callbackHandler; private Map sharedState = null; - private List indexedUserProperties = Arrays.asList(new String[] { LdapAttrs.mail.name(), - LdapAttrs.uid.name(), LdapAttrs.employeeNumber.name(), LdapAttrs.authPassword.name() }); + private List indexedUserProperties = Arrays.asList(new String[] { LdapAttr.mail.name(), + LdapAttr.uid.name(), LdapAttr.employeeNumber.name(), LdapAttr.authPassword.name() }); // private state // private BundleContext bc; diff --git a/org.argeo.cms/src/org/argeo/cms/auth/UserAdminUtils.java b/org.argeo.cms/src/org/argeo/cms/auth/UserAdminUtils.java index 3c24f98af..bef6d7f0a 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/UserAdminUtils.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/UserAdminUtils.java @@ -6,7 +6,7 @@ import javax.naming.InvalidNameException; import javax.naming.ldap.LdapName; import javax.naming.ldap.Rdn; -import org.argeo.api.acr.ldap.LdapAttrs; +import org.argeo.api.acr.ldap.LdapAttr; import org.argeo.api.cms.CmsConstants; import org.argeo.cms.CurrentUser; import org.osgi.service.useradmin.Role; @@ -19,7 +19,7 @@ public class UserAdminUtils { // CURRENTUSER HELPERS /** Checks if current user is the same as the passed one */ public static boolean isCurrentUser(User user) { - String userUsername = getProperty(user, LdapAttrs.DN); + String userUsername = getProperty(user, LdapAttr.DN); LdapName userLdapName = getLdapName(userUsername); LdapName selfUserName = getCurrentUserLdapName(); return userLdapName.equals(selfUserName); @@ -44,7 +44,7 @@ public class UserAdminUtils { /** Retrieves the current logged-in user common name */ public final static String getCommonName(User user) { - return getProperty(user, LdapAttrs.cn.name()); + return getProperty(user, LdapAttr.cn.name()); } // OTHER USERS HELPERS @@ -55,8 +55,8 @@ public class UserAdminUtils { public static String getUserLocalId(String dn) { LdapName ldapName = getLdapName(dn); Rdn last = ldapName.getRdn(ldapName.size() - 1); - if (last.getType().toLowerCase().equals(LdapAttrs.uid.name()) - || last.getType().toLowerCase().equals(LdapAttrs.cn.name())) + if (last.getType().toLowerCase().equals(LdapAttr.uid.name()) + || last.getType().toLowerCase().equals(LdapAttr.cn.name())) return (String) last.getValue(); else throw new IllegalArgumentException("Cannot retrieve user local id, non valid dn: " + dn); @@ -74,11 +74,11 @@ public class UserAdminUtils { } public static String getUserDisplayName(Role user) { - String dName = getProperty(user, LdapAttrs.displayName.name()); + String dName = getProperty(user, LdapAttr.displayName.name()); if (isEmpty(dName)) - dName = getProperty(user, LdapAttrs.cn.name()); + dName = getProperty(user, LdapAttr.cn.name()); if (isEmpty(dName)) - dName = getProperty(user, LdapAttrs.uid.name()); + dName = getProperty(user, LdapAttr.uid.name()); if (isEmpty(dName)) dName = getUserLocalId(user.getName()); return dName; @@ -93,7 +93,7 @@ public class UserAdminUtils { if (user == null) return null; else - return getProperty(user, LdapAttrs.mail.name()); + return getProperty(user, LdapAttr.mail.name()); } // LDAP NAMES HELPERS @@ -126,7 +126,7 @@ public class UserAdminUtils { } /** - * Simply retrieves a LDAP name from a {@link LdapAttrs.DN} with no exception + * Simply retrieves a LDAP name from a {@link LdapAttr.DN} with no exception */ private static LdapName getLdapName(String dn) { try { @@ -151,8 +151,8 @@ public class UserAdminUtils { int i = 0; loop: while (i < rdns.size()) { Rdn currrRdn = rdns.get(i); - if (LdapAttrs.uid.name().equals(currrRdn.getType()) || LdapAttrs.cn.name().equals(currrRdn.getType()) - || LdapAttrs.ou.name().equals(currrRdn.getType())) + if (LdapAttr.uid.name().equals(currrRdn.getType()) || LdapAttr.cn.name().equals(currrRdn.getType()) + || LdapAttr.ou.name().equals(currrRdn.getType())) break loop; else { String currVal = (String) currrRdn.getValue(); 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 9c7b047dc..1ec6c9de8 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 @@ -26,8 +26,8 @@ import javax.naming.ldap.LdapName; import javax.naming.ldap.Rdn; import javax.transaction.xa.XAResource; -import org.argeo.api.acr.ldap.LdapAttrs; -import org.argeo.api.acr.ldap.LdapObjs; +import org.argeo.api.acr.ldap.LdapAttr; +import org.argeo.api.acr.ldap.LdapObj; import org.argeo.api.cms.directory.CmsDirectory; import org.argeo.api.cms.directory.HierarchyUnit; import org.argeo.api.cms.transaction.WorkControl; @@ -56,7 +56,7 @@ public abstract class AbstractLdapDirectory implements CmsDirectory, XAResourceP private final boolean scoped; private List credentialAttributeIds = Arrays - .asList(new String[] { LdapAttrs.userPassword.name(), LdapAttrs.authPassword.name() }); + .asList(new String[] { LdapAttr.userPassword.name(), LdapAttr.authPassword.name() }); private WorkControl transactionControl; private WorkingCopyXaResource xaResource; @@ -249,7 +249,7 @@ public abstract class AbstractLdapDirectory implements CmsDirectory, XAResourceP protected void collectGroups(LdapEntry user, List allRoles) { Attributes attrs = user.getAttributes(); // TODO centralize attribute name - Attribute memberOf = attrs.get(LdapAttrs.memberOf.name()); + Attribute memberOf = attrs.get(LdapAttr.memberOf.name()); // if user belongs to this directory, we only check memberOf if (memberOf != null && user.getDn().startsWith(getBaseDn())) { try { @@ -338,7 +338,7 @@ public abstract class AbstractLdapDirectory implements CmsDirectory, XAResourceP || wc.getNewData().containsKey(dn)) throw new IllegalArgumentException("Already a hierarchy unit " + path); BasicAttributes attrs = new BasicAttributes(true); - attrs.put(LdapAttrs.objectClass.name(), LdapObjs.organizationalUnit.name()); + attrs.put(LdapAttr.objectClass.name(), LdapObj.organizationalUnit.name()); Rdn nameRdn = dn.getRdn(dn.size() - 1); // TODO deal with multiple attr RDN attrs.put(nameRdn.getType(), nameRdn.getValue()); @@ -385,15 +385,15 @@ public abstract class AbstractLdapDirectory implements CmsDirectory, XAResourceP for (int i = 0; i < segments.length; i++) { String segment = segments[i]; // TODO make attr names configurable ? - String attr = getDirectory().getRealm().isPresent()/* IPA */ ? LdapAttrs.cn.name() - : LdapAttrs.ou.name(); + String attr = getDirectory().getRealm().isPresent()/* IPA */ ? LdapAttr.cn.name() + : LdapAttr.ou.name(); if (parentRdn != null) { if (getUserBaseRdn().equals(parentRdn)) - attr = LdapAttrs.uid.name(); + attr = LdapAttr.uid.name(); else if (getGroupBaseRdn().equals(parentRdn)) - attr = LdapAttrs.cn.name(); + attr = LdapAttr.cn.name(); else if (getSystemRoleBaseRdn().equals(parentRdn)) - attr = LdapAttrs.cn.name(); + attr = LdapAttr.cn.name(); } Rdn rdn = new Rdn(attr, segment); name.add(rdn); @@ -413,13 +413,13 @@ public abstract class AbstractLdapDirectory implements CmsDirectory, XAResourceP return !name.startsWith(baseDn); } - protected static boolean hasObjectClass(Attributes attrs, LdapObjs objectClass) { + protected static boolean hasObjectClass(Attributes attrs, LdapObj objectClass) { return hasObjectClass(attrs, objectClass.name()); } protected static boolean hasObjectClass(Attributes attrs, String objectClass) { try { - Attribute attr = attrs.get(LdapAttrs.objectClass.name()); + Attribute attr = attrs.get(LdapAttr.objectClass.name()); NamingEnumeration en = attr.getAll(); while (en.hasMore()) { String v = en.next().toString(); diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/AuthPassword.java b/org.argeo.cms/src/org/argeo/cms/directory/ldap/AuthPassword.java index f2332dbcf..a871912e1 100644 --- a/org.argeo.cms/src/org/argeo/cms/directory/ldap/AuthPassword.java +++ b/org.argeo.cms/src/org/argeo/cms/directory/ldap/AuthPassword.java @@ -14,7 +14,7 @@ import javax.security.auth.callback.NameCallback; import javax.security.auth.callback.PasswordCallback; import javax.security.auth.callback.UnsupportedCallbackException; -import org.argeo.api.acr.ldap.LdapAttrs; +import org.argeo.api.acr.ldap.LdapAttr; /** LDAP authPassword field according to RFC 3112 */ public class AuthPassword implements CallbackHandler { @@ -98,7 +98,7 @@ public class AuthPassword implements CallbackHandler { public static AuthPassword matchAuthValue(Attributes attributes, char[] value) { try { - Attribute authPassword = attributes.get(LdapAttrs.authPassword.name()); + Attribute authPassword = attributes.get(LdapAttr.authPassword.name()); if (authPassword != null) { NamingEnumeration values = authPassword.getAll(); while (values.hasMore()) { @@ -123,7 +123,7 @@ public class AuthPassword implements CallbackHandler { } public static boolean remove(Attributes attributes, AuthPassword value) { - Attribute authPassword = attributes.get(LdapAttrs.authPassword.name()); + Attribute authPassword = attributes.get(LdapAttr.authPassword.name()); return authPassword.remove(value.toAuthPassword()); } diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/DefaultLdapEntry.java b/org.argeo.cms/src/org/argeo/cms/directory/ldap/DefaultLdapEntry.java index ad70d676e..94ff20b03 100644 --- a/org.argeo.cms/src/org/argeo/cms/directory/ldap/DefaultLdapEntry.java +++ b/org.argeo.cms/src/org/argeo/cms/directory/ldap/DefaultLdapEntry.java @@ -22,8 +22,8 @@ import javax.naming.directory.Attributes; import javax.naming.directory.BasicAttribute; import javax.naming.ldap.LdapName; -import org.argeo.api.acr.ldap.LdapAttrs; -import org.argeo.api.acr.ldap.LdapObjs; +import org.argeo.api.acr.ldap.LdapAttr; +import org.argeo.api.acr.ldap.LdapObj; import org.argeo.api.cms.directory.DirectoryDigestUtils; /** An entry in an LDAP (or LDIF) directory. */ @@ -180,7 +180,7 @@ public class DefaultLdapEntry implements LdapEntry { // Regular password // byte[] hashedPassword = hash(password, DigestUtils.PASSWORD_SCHEME_PBKDF2_SHA256); - if (hasCredential(LdapAttrs.userPassword.name(), DirectoryDigestUtils.charsToBytes(password))) + if (hasCredential(LdapAttr.userPassword.name(), DirectoryDigestUtils.charsToBytes(password))) return true; return false; } @@ -305,7 +305,7 @@ public class DefaultLdapEntry implements LdapEntry { throw new IllegalStateException("Cannot initialise attribute dictionary", e); } if (!credentials) - effectiveKeys.add(LdapAttrs.objectClasses.name()); + effectiveKeys.add(LdapAttr.objectClasses.name()); } @Override @@ -345,13 +345,13 @@ public class DefaultLdapEntry implements LdapEntry { @Override public Object get(Object key) { try { - Attribute attr = !key.equals(LdapAttrs.objectClasses.name()) ? getAttributes().get(key.toString()) - : getAttributes().get(LdapAttrs.objectClass.name()); + Attribute attr = !key.equals(LdapAttr.objectClasses.name()) ? getAttributes().get(key.toString()) + : getAttributes().get(LdapAttr.objectClass.name()); if (attr == null) return null; Object value = attr.get(); if (value instanceof byte[]) { - if (key.equals(LdapAttrs.userPassword.name())) + if (key.equals(LdapAttr.userPassword.name())) // TODO other cases (certificates, images) return value; value = new String((byte[]) value, StandardCharsets.UTF_8); @@ -359,13 +359,13 @@ public class DefaultLdapEntry implements LdapEntry { if (attr.size() == 1) return value; // special case for object class - if (key.equals(LdapAttrs.objectClass.name())) { + if (key.equals(LdapAttr.objectClass.name())) { // TODO support multiple object classes NamingEnumeration en = attr.getAll(); String first = null; attrs: while (en.hasMore()) { String v = en.next().toString(); - if (v.equalsIgnoreCase(LdapObjs.top.name())) + if (v.equalsIgnoreCase(LdapObj.top.name())) continue attrs; if (first == null) first = v; @@ -402,10 +402,10 @@ public class DefaultLdapEntry implements LdapEntry { // TODO persist to other sources (like PKCS12) char[] password = DirectoryDigestUtils.bytesToChars(value); byte[] hashedPassword = sha1hash(password); - return put(LdapAttrs.userPassword.name(), hashedPassword); + return put(LdapAttr.userPassword.name(), hashedPassword); } if (key.startsWith("X-")) { - return put(LdapAttrs.authPassword.name(), value); + return put(LdapAttr.authPassword.name(), value); } // start editing @@ -414,8 +414,8 @@ public class DefaultLdapEntry implements LdapEntry { startEditing(); // object classes special case. - if (key.equals(LdapAttrs.objectClasses.name())) { - Attribute attribute = new BasicAttribute(LdapAttrs.objectClass.name()); + if (key.equals(LdapAttr.objectClasses.name())) { + Attribute attribute = new BasicAttribute(LdapAttr.objectClass.name()); String[] objectClasses = value.toString().split("\n"); for (String objectClass : objectClasses) { if (objectClass.trim().equals("")) diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/IpaUtils.java b/org.argeo.cms/src/org/argeo/cms/directory/ldap/IpaUtils.java index a31cdaca1..cf6ad9390 100644 --- a/org.argeo.cms/src/org/argeo/cms/directory/ldap/IpaUtils.java +++ b/org.argeo.cms/src/org/argeo/cms/directory/ldap/IpaUtils.java @@ -13,7 +13,7 @@ import java.util.StringJoiner; import javax.naming.InvalidNameException; import javax.naming.ldap.LdapName; -import org.argeo.api.acr.ldap.LdapAttrs; +import org.argeo.api.acr.ldap.LdapAttr; import org.argeo.cms.dns.DnsBrowser; import org.argeo.cms.runtime.DirectoryConf; @@ -26,7 +26,7 @@ public class IpaUtils { public final static String IPA_ACCOUNTS_BASE = "cn=accounts"; - private final static String KRB_PRINCIPAL_NAME = LdapAttrs.krbPrincipalName.name().toLowerCase(); + private final static String KRB_PRINCIPAL_NAME = LdapAttr.krbPrincipalName.name().toLowerCase(); public final static String IPA_USER_DIRECTORY_CONFIG = DirectoryConf.userBase + "=" + IPA_USER_BASE + "&" + DirectoryConf.groupBase + "=" + IPA_GROUP_BASE + "&" + DirectoryConf.systemRoleBase + "=" + IPA_ROLE_BASE @@ -51,7 +51,7 @@ public class IpaUtils { StringJoiner sj = new StringJoiner(","); for (int i = 0; i < dcs.length; i++) { String dc = dcs[i]; - sj.add(LdapAttrs.dc.name() + '=' + dc.toLowerCase()); + sj.add(LdapAttr.dc.name() + '=' + dc.toLowerCase()); } return IPA_ACCOUNTS_BASE + ',' + sj.toString(); } @@ -62,7 +62,7 @@ public class IpaUtils { String baseDn = domainToBaseDn(kname[1]); String dn; if (!username.contains("/")) - dn = LdapAttrs.uid + "=" + username + "," + IPA_USER_BASE + "," + baseDn; + dn = LdapAttr.uid + "=" + username + "," + IPA_USER_BASE + "," + baseDn; else dn = KRB_PRINCIPAL_NAME + "=" + kerberosName + "," + IPA_SERVICE_BASE + "," + baseDn; try { diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapConnection.java b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapConnection.java index 100441cc1..efc8cbcf8 100644 --- a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapConnection.java +++ b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapConnection.java @@ -15,7 +15,7 @@ import javax.naming.directory.SearchResult; import javax.naming.ldap.InitialLdapContext; import javax.naming.ldap.LdapName; -import org.argeo.api.acr.ldap.LdapAttrs; +import org.argeo.api.acr.ldap.LdapAttr; import org.argeo.api.cms.transaction.WorkingCopy; /** A synchronized wrapper for a single {@link InitialLdapContext}. */ @@ -28,7 +28,7 @@ public class LdapConnection { Hashtable connEnv = new Hashtable(); connEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); connEnv.put(Context.PROVIDER_URL, url); - connEnv.put("java.naming.ldap.attributes.binary", LdapAttrs.userPassword.name()); + connEnv.put("java.naming.ldap.attributes.binary", LdapAttr.userPassword.name()); // use pooling in order to avoid connection timeout // connEnv.put("com.sun.jndi.ldap.connect.pool", "true"); // connEnv.put("com.sun.jndi.ldap.connect.pool.timeout", 300000); 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 461013fea..cdc1c9fe6 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 @@ -1,6 +1,6 @@ package org.argeo.cms.directory.ldap; -import static org.argeo.api.acr.ldap.LdapAttrs.objectClass; +import static org.argeo.api.acr.ldap.LdapAttr.objectClass; import java.util.ArrayList; import java.util.List; @@ -19,8 +19,8 @@ import javax.naming.directory.SearchResult; import javax.naming.ldap.LdapName; import javax.naming.ldap.Rdn; -import org.argeo.api.acr.ldap.LdapAttrs; -import org.argeo.api.acr.ldap.LdapObjs; +import org.argeo.api.acr.ldap.LdapAttr; +import org.argeo.api.acr.ldap.LdapObj; import org.argeo.api.cms.directory.HierarchyUnit; /** A user admin based on a LDAP server. */ @@ -72,22 +72,22 @@ public class LdapDao extends AbstractLdapDirectoryDao { if (getDirectory().getGroupBaseRdn().equals(technicalRdn)) { if (attrs.size() == 0) {// exists but not accessible attrs = new BasicAttributes(); - attrs.put(LdapAttrs.objectClass.name(), LdapObjs.top.name()); - attrs.put(LdapAttrs.objectClass.name(), getDirectory().getGroupObjectClass()); + attrs.put(LdapAttr.objectClass.name(), LdapObj.top.name()); + attrs.put(LdapAttr.objectClass.name(), getDirectory().getGroupObjectClass()); } res = newGroup(name); } else if (getDirectory().getSystemRoleBaseRdn().equals(technicalRdn)) { if (attrs.size() == 0) {// exists but not accessible attrs = new BasicAttributes(); - attrs.put(LdapAttrs.objectClass.name(), LdapObjs.top.name()); - attrs.put(LdapAttrs.objectClass.name(), getDirectory().getGroupObjectClass()); + attrs.put(LdapAttr.objectClass.name(), LdapObj.top.name()); + attrs.put(LdapAttr.objectClass.name(), getDirectory().getGroupObjectClass()); } res = newGroup(name); } else if (getDirectory().getUserBaseRdn().equals(technicalRdn)) { if (attrs.size() == 0) {// exists but not accessible attrs = new BasicAttributes(); - attrs.put(LdapAttrs.objectClass.name(), LdapObjs.top.name()); - attrs.put(LdapAttrs.objectClass.name(), getDirectory().getUserObjectClass()); + attrs.put(LdapAttr.objectClass.name(), LdapObj.top.name()); + attrs.put(LdapAttr.objectClass.name(), getDirectory().getUserObjectClass()); } res = newUser(name); } else { @@ -216,8 +216,8 @@ public class LdapDao extends AbstractLdapDirectoryDao { String structuralFilter = functionalOnly ? "" : "(" + getDirectory().getUserBaseRdn() + ")(" + getDirectory().getGroupBaseRdn() + ")(" + getDirectory().getSystemRoleBaseRdn() + ")"; - String searchFilter = "(|(" + objectClass + "=" + LdapObjs.organizationalUnit.name() + ")(" + objectClass - + "=" + LdapObjs.organization.name() + ")" + structuralFilter + ")"; + String searchFilter = "(|(" + objectClass + "=" + LdapObj.organizationalUnit.name() + ")(" + objectClass + + "=" + LdapObj.organization.name() + ")" + structuralFilter + ")"; SearchControls searchControls = new SearchControls(); searchControls.setSearchScope(SearchControls.ONELEVEL_SCOPE); diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapEntry.java b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapEntry.java index e2587621a..fa95c9615 100644 --- a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapEntry.java +++ b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdapEntry.java @@ -12,7 +12,7 @@ import java.util.TreeSet; import javax.naming.directory.Attributes; import javax.naming.ldap.LdapName; -import org.argeo.api.acr.ldap.LdapAttrs; +import org.argeo.api.acr.ldap.LdapAttr; /** An LDAP entry. */ public interface LdapEntry { @@ -36,12 +36,12 @@ public interface LdapEntry { * backend. */ public static void addObjectClasses(Dictionary properties, Collection objectClasses) { - String value = properties.get(LdapAttrs.objectClasses.name()).toString(); + String value = properties.get(LdapAttr.objectClasses.name()).toString(); Set currentObjectClasses = new TreeSet<>(Arrays.asList(value.toString().split("\n"))); currentObjectClasses.addAll(objectClasses); StringJoiner values = new StringJoiner("\n"); currentObjectClasses.forEach((s) -> values.add(s)); - properties.put(LdapAttrs.objectClasses.name(), values.toString()); + properties.put(LdapAttr.objectClasses.name(), values.toString()); } public static Object getLocalized(Dictionary properties, String key, Locale locale) { diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdifDao.java b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdifDao.java index 1f3389896..52148dfab 100644 --- a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdifDao.java +++ b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdifDao.java @@ -1,7 +1,7 @@ package org.argeo.cms.directory.ldap; -import static org.argeo.api.acr.ldap.LdapAttrs.objectClass; -import static org.argeo.api.acr.ldap.LdapObjs.inetOrgPerson; +import static org.argeo.api.acr.ldap.LdapAttr.objectClass; +import static org.argeo.api.acr.ldap.LdapObj.inetOrgPerson; import java.io.File; import java.io.FileOutputStream; @@ -26,7 +26,7 @@ import javax.naming.NamingException; import javax.naming.directory.Attributes; import javax.naming.ldap.LdapName; -import org.argeo.api.acr.ldap.LdapObjs; +import org.argeo.api.acr.ldap.LdapObj; import org.argeo.api.cms.directory.HierarchyUnit; import org.osgi.framework.Filter; import org.osgi.framework.FrameworkUtil; @@ -119,7 +119,7 @@ public class LdifDao extends AbstractLdapDirectoryDao { } else if (objectClass.toLowerCase().equals(getDirectory().getGroupObjectClass().toLowerCase())) { entries.put(key, newGroup(key)); break objectClasses; - } else if (objectClass.equalsIgnoreCase(LdapObjs.organizationalUnit.name())) { + } else if (objectClass.equalsIgnoreCase(LdapObj.organizationalUnit.name())) { // TODO skip if it does not contain groups or users hierarchy.put(key, new LdapHierarchyUnit(getDirectory(), key)); break objectClasses; diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdifParser.java b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdifParser.java index c76c362cb..d0e6b76d5 100644 --- a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdifParser.java +++ b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdifParser.java @@ -22,7 +22,7 @@ import javax.naming.directory.BasicAttributes; import javax.naming.ldap.LdapName; import javax.naming.ldap.Rdn; -import org.argeo.api.acr.ldap.LdapAttrs; +import org.argeo.api.acr.ldap.LdapAttr; /** Basic LDIF parser. */ public class LdifParser { @@ -113,7 +113,7 @@ public class LdifParser { Object attributeValue = isBase64 ? Base64.getDecoder().decode(cleanValueStr) : cleanValueStr; // manage DN attributes - if (attributeId.equals(LdapAttrs.DN) || isLastLine) { + if (attributeId.equals(LdapAttr.DN) || isLastLine) { if (currentDn != null) { // // ADD @@ -125,7 +125,7 @@ public class LdifParser { } } - if (attributeId.equals(LdapAttrs.DN)) + if (attributeId.equals(LdapAttr.DN)) try { currentDn = new LdapName(attributeValue.toString()); currentAttributes = new BasicAttributes(true); diff --git a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdifWriter.java b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdifWriter.java index 2a1ed811f..69a867204 100644 --- a/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdifWriter.java +++ b/org.argeo.cms/src/org/argeo/cms/directory/ldap/LdifWriter.java @@ -1,9 +1,9 @@ package org.argeo.cms.directory.ldap; -import static org.argeo.api.acr.ldap.LdapAttrs.DN; -import static org.argeo.api.acr.ldap.LdapAttrs.member; -import static org.argeo.api.acr.ldap.LdapAttrs.objectClass; -import static org.argeo.api.acr.ldap.LdapAttrs.uniqueMember; +import static org.argeo.api.acr.ldap.LdapAttr.DN; +import static org.argeo.api.acr.ldap.LdapAttr.member; +import static org.argeo.api.acr.ldap.LdapAttr.objectClass; +import static org.argeo.api.acr.ldap.LdapAttr.uniqueMember; import java.io.IOException; import java.io.OutputStream; diff --git a/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsUserManagerImpl.java b/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsUserManagerImpl.java index a17bf0210..06736fbeb 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsUserManagerImpl.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsUserManagerImpl.java @@ -1,8 +1,8 @@ package org.argeo.cms.internal.runtime; -import static org.argeo.api.acr.ldap.LdapAttrs.cn; -import static org.argeo.api.acr.ldap.LdapAttrs.description; -import static org.argeo.api.acr.ldap.LdapAttrs.owner; +import static org.argeo.api.acr.ldap.LdapAttr.cn; +import static org.argeo.api.acr.ldap.LdapAttr.description; +import static org.argeo.api.acr.ldap.LdapAttr.owner; import java.time.ZoneOffset; import java.time.ZonedDateTime; @@ -26,7 +26,7 @@ import javax.security.auth.Subject; import javax.xml.namespace.QName; import org.argeo.api.acr.NamespaceUtils; -import org.argeo.api.acr.ldap.LdapAttrs; +import org.argeo.api.acr.ldap.LdapAttr; import org.argeo.api.acr.ldap.NamingUtils; import org.argeo.api.cms.CmsConstants; import org.argeo.api.cms.CmsLog; @@ -69,8 +69,8 @@ public class CmsUserManagerImpl implements CmsUserManager { // private Map serviceProperties; private WorkTransaction userTransaction; - private final String[] knownProps = { LdapAttrs.cn.name(), LdapAttrs.sn.name(), LdapAttrs.givenName.name(), - LdapAttrs.uid.name() }; + private final String[] knownProps = { LdapAttr.cn.name(), LdapAttr.sn.name(), LdapAttr.givenName.name(), + LdapAttr.uid.name() }; // private Map> userDirectories = Collections // .synchronizedMap(new LinkedHashMap<>()); @@ -222,9 +222,9 @@ public class CmsUserManagerImpl implements CmsUserManager { @Override public CmsUser getUserFromLocalId(String localId) { - CmsUser user = (CmsUser) getUserAdmin().getUser(LdapAttrs.uid.name(), localId); + CmsUser user = (CmsUser) getUserAdmin().getUser(LdapAttr.uid.name(), localId); if (user == null) - user = (CmsUser) getUserAdmin().getUser(LdapAttrs.cn.name(), localId); + user = (CmsUser) getUserAdmin().getUser(LdapAttr.cn.name(), localId); return user; } @@ -267,7 +267,7 @@ public class CmsUserManagerImpl implements CmsUserManager { @Override public CmsGroup getOrCreateGroup(HierarchyUnit groups, String commonName) { try { - String dn = LdapAttrs.cn.name() + "=" + commonName + "," + groups.getBase(); + String dn = LdapAttr.cn.name() + "=" + commonName + "," + groups.getBase(); CmsGroup group = (CmsGroup) getUserAdmin().getRole(dn); if (group != null) return group; @@ -291,7 +291,7 @@ public class CmsUserManagerImpl implements CmsUserManager { @Override public CmsGroup getOrCreateSystemRole(HierarchyUnit roles, QName systemRole) { try { - String dn = LdapAttrs.cn.name() + "=" + NamespaceUtils.toPrefixedName(systemRole) + "," + roles.getBase(); + String dn = LdapAttr.cn.name() + "=" + NamespaceUtils.toPrefixedName(systemRole) + "," + roles.getBase(); CmsGroup group = (CmsGroup) getUserAdmin().getRole(dn); if (group != null) return group; @@ -453,9 +453,9 @@ public class CmsUserManagerImpl implements CmsUserManager { Dictionary props = DirectoryConf.uriAsProperties(dns.get(baseDn)); String dn = null; if (Role.GROUP == type) - dn = LdapAttrs.cn.name() + "=" + localId + "," + DirectoryConf.groupBase.getValue(props) + "," + baseDn; + dn = LdapAttr.cn.name() + "=" + localId + "," + DirectoryConf.groupBase.getValue(props) + "," + baseDn; else if (Role.USER == type) - dn = LdapAttrs.uid.name() + "=" + localId + "," + DirectoryConf.userBase.getValue(props) + "," + baseDn; + dn = LdapAttr.uid.name() + "=" + localId + "," + DirectoryConf.userBase.getValue(props) + "," + baseDn; else throw new IllegalStateException("Unknown role type. " + "Cannot deduce dn for " + localId); return dn; @@ -520,7 +520,7 @@ public class CmsUserManagerImpl implements CmsUserManager { } public String addSharedSecret(String email, int hours) { - User user = (User) userAdmin.getUser(LdapAttrs.mail.name(), email); + User user = (User) userAdmin.getUser(LdapAttr.mail.name(), email); try { userTransaction.begin(); String uuid = UUID.randomUUID().toString(); 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 0115d57ca..03f17e61f 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 @@ -1,11 +1,11 @@ package org.argeo.cms.osgi.useradmin; -import static org.argeo.api.acr.ldap.LdapAttrs.objectClass; -import static org.argeo.api.acr.ldap.LdapObjs.extensibleObject; -import static org.argeo.api.acr.ldap.LdapObjs.inetOrgPerson; -import static org.argeo.api.acr.ldap.LdapObjs.organizationalPerson; -import static org.argeo.api.acr.ldap.LdapObjs.person; -import static org.argeo.api.acr.ldap.LdapObjs.top; +import static org.argeo.api.acr.ldap.LdapAttr.objectClass; +import static org.argeo.api.acr.ldap.LdapObj.extensibleObject; +import static org.argeo.api.acr.ldap.LdapObj.inetOrgPerson; +import static org.argeo.api.acr.ldap.LdapObj.organizationalPerson; +import static org.argeo.api.acr.ldap.LdapObj.person; +import static org.argeo.api.acr.ldap.LdapObj.top; import java.net.URI; import java.util.ArrayList; diff --git a/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/LdifAuthorization.java b/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/LdifAuthorization.java index 3bedeab05..a54050bc6 100644 --- a/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/LdifAuthorization.java +++ b/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/LdifAuthorization.java @@ -5,7 +5,7 @@ import java.util.Collections; import java.util.Dictionary; import java.util.List; -import org.argeo.api.acr.ldap.LdapAttrs; +import org.argeo.api.acr.ldap.LdapAttr; import org.osgi.service.useradmin.Authorization; import org.osgi.service.useradmin.Role; import org.osgi.service.useradmin.User; @@ -71,11 +71,11 @@ class LdifAuthorization implements Authorization { final static String extractDisplayName(User user) { Dictionary props = user.getProperties(); - Object displayName = props.get(LdapAttrs.displayName.name()); + Object displayName = props.get(LdapAttr.displayName.name()); if (displayName == null) - displayName = props.get(LdapAttrs.cn.name()); + displayName = props.get(LdapAttr.cn.name()); if (displayName == null) - displayName = props.get(LdapAttrs.uid.name()); + displayName = props.get(LdapAttr.uid.name()); if (displayName == null) displayName = user.getName(); if (displayName == null) diff --git a/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/OsUserDirectory.java b/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/OsUserDirectory.java index 950a401db..41277d391 100644 --- a/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/OsUserDirectory.java +++ b/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/OsUserDirectory.java @@ -8,7 +8,7 @@ import javax.naming.NamingException; import javax.naming.directory.Attributes; import javax.naming.ldap.LdapName; -import org.argeo.api.acr.ldap.LdapAttrs; +import org.argeo.api.acr.ldap.LdapAttr; import org.argeo.api.cms.directory.HierarchyUnit; import org.argeo.cms.directory.ldap.AbstractLdapDirectory; import org.argeo.cms.directory.ldap.AbstractLdapDirectoryDao; @@ -24,7 +24,7 @@ public class OsUserDirectory extends AbstractLdapDirectoryDao { public OsUserDirectory(AbstractLdapDirectory directory) { super(directory); try { - osUserDn = new LdapName(LdapAttrs.uid.name() + "=" + osUsername + "," + directory.getUserBaseRdn() + "," + osUserDn = new LdapName(LdapAttr.uid.name() + "=" + osUsername + "," + directory.getUserBaseRdn() + "," + directory.getBaseDn()); // Attributes attributes = new BasicAttributes(); // attributes.put(LdapAttrs.uid.name(), osUsername); diff --git a/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/TokenUtils.java b/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/TokenUtils.java index eb9429866..241f6092d 100644 --- a/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/TokenUtils.java +++ b/org.argeo.cms/src/org/argeo/cms/osgi/useradmin/TokenUtils.java @@ -1,7 +1,7 @@ package org.argeo.cms.osgi.useradmin; -import static org.argeo.api.acr.ldap.LdapAttrs.description; -import static org.argeo.api.acr.ldap.LdapAttrs.owner; +import static org.argeo.api.acr.ldap.LdapAttr.description; +import static org.argeo.api.acr.ldap.LdapAttr.owner; import java.security.Principal; import java.time.Instant; -- 2.30.2