From 2134dd19734711b05710c1250b665c32fbe7263c Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 22 Aug 2012 15:26:10 +0000 Subject: [PATCH] Refactor JCR utils and home usage git-svn-id: https://svn.argeo.org/commons/trunk@5537 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../eclipse/ui/jcr/JcrPreferenceStore.java | 4 +- .../ui/admin/editors/ArgeoUserEditor.java | 4 +- .../security/ui/admin/views/UsersView.java | 4 +- .../ui/admin/wizards/NewUserWizard.java | 4 +- .../jcr/RemoteJcrAuthenticationProvider.java | 4 +- .../ldap/jcr/JcrUserDetailsContextMapper.java | 4 +- .../explorer/browser/NodeContentProvider.java | 4 +- .../commands/AddRemoteRepository.java | 4 +- .../ui/explorer/model/RepositoriesNode.java | 4 +- .../remote/SimpleSessionProvider.java | 4 +- .../java/org/argeo/jcr/ArgeoJcrConstants.java | 2 - .../java/org/argeo/jcr/ArgeoJcrUtils.java | 50 --------------- .../main/java/org/argeo/jcr/UserJcrUtils.java | 64 +++++++++++++++++++ .../org/argeo/jcr/security/JcrKeyring.java | 10 +-- .../argeo/jcr/security/SecurityJcrUtils.java | 6 +- 15 files changed, 92 insertions(+), 80 deletions(-) create mode 100644 server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/UserJcrUtils.java diff --git a/base/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/JcrPreferenceStore.java b/base/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/JcrPreferenceStore.java index 93d0f0454..ba32b1da4 100644 --- a/base/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/JcrPreferenceStore.java +++ b/base/runtime/org.argeo.eclipse.ui.jcr/src/main/java/org/argeo/eclipse/ui/jcr/JcrPreferenceStore.java @@ -29,10 +29,10 @@ import javax.jcr.version.VersionManager; import org.apache.commons.io.IOUtils; import org.argeo.ArgeoException; -import org.argeo.jcr.ArgeoJcrUtils; import org.argeo.jcr.ArgeoNames; import org.argeo.jcr.ArgeoTypes; import org.argeo.jcr.JcrUtils; +import org.argeo.jcr.UserJcrUtils; import org.eclipse.jface.preference.PreferenceStore; import org.eclipse.ui.preferences.ScopedPreferenceStore; import org.osgi.framework.BundleContext; @@ -53,7 +53,7 @@ public class JcrPreferenceStore extends PreferenceStore implements ArgeoNames { try { if (session.hasPendingChanges()) session.save(); - Node userHome = ArgeoJcrUtils.getUserHome(session); + Node userHome = UserJcrUtils.getUserHome(session); if (userHome == null) throw new ArgeoException("No user home for " + session.getUserID()); diff --git a/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/editors/ArgeoUserEditor.java b/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/editors/ArgeoUserEditor.java index fab34323a..3ea3cf816 100644 --- a/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/editors/ArgeoUserEditor.java +++ b/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/editors/ArgeoUserEditor.java @@ -20,8 +20,8 @@ import javax.jcr.RepositoryException; import javax.jcr.Session; import org.argeo.ArgeoException; -import org.argeo.jcr.ArgeoJcrUtils; import org.argeo.jcr.ArgeoNames; +import org.argeo.jcr.UserJcrUtils; import org.argeo.security.UserAdminService; import org.argeo.security.jcr.JcrUserDetails; import org.argeo.security.ui.admin.SecurityAdminPlugin; @@ -48,7 +48,7 @@ public class ArgeoUserEditor extends FormEditor { super.init(site, input); String username = ((ArgeoUserEditorInput) getEditorInput()) .getUsername(); - userHome = ArgeoJcrUtils.getUserHome(session, username); + userHome = UserJcrUtils.getUserHome(session, username); if (userAdminService.userExists(username)) { userDetails = (JcrUserDetails) userAdminService diff --git a/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/views/UsersView.java b/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/views/UsersView.java index 254149b09..ca89aef44 100644 --- a/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/views/UsersView.java +++ b/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/views/UsersView.java @@ -34,13 +34,13 @@ import org.argeo.eclipse.ui.specific.EclipseUiSpecificUtils; import org.argeo.jcr.ArgeoNames; import org.argeo.jcr.ArgeoTypes; import org.argeo.jcr.JcrUtils; +import org.argeo.jcr.UserJcrUtils; import org.argeo.security.ui.admin.SecurityAdminPlugin; import org.argeo.security.ui.admin.commands.OpenArgeoUserEditor; import org.eclipse.core.commands.Command; import org.eclipse.core.commands.IParameter; import org.eclipse.core.commands.Parameterization; import org.eclipse.core.commands.ParameterizedCommand; -import org.eclipse.jface.resource.JFaceResources; import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IDoubleClickListener; @@ -87,7 +87,7 @@ public class UsersView extends ViewPart implements ArgeoNames, ArgeoTypes { userStructureListener = new UserStructureListener(); JcrUtils.addListener(session, userStructureListener, Event.NODE_ADDED - | Event.NODE_REMOVED, JcrUtils.DEFAULT_HOME_BASE_PATH, + | Event.NODE_REMOVED, UserJcrUtils.DEFAULT_HOME_BASE_PATH, ArgeoTypes.ARGEO_USER_HOME); } diff --git a/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/wizards/NewUserWizard.java b/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/wizards/NewUserWizard.java index a4cd0edb8..40a243f94 100644 --- a/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/wizards/NewUserWizard.java +++ b/security/plugins/org.argeo.security.ui.admin/src/main/java/org/argeo/security/ui/admin/wizards/NewUserWizard.java @@ -22,8 +22,8 @@ import javax.jcr.Session; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.eclipse.ui.ErrorFeedback; -import org.argeo.jcr.ArgeoJcrUtils; import org.argeo.jcr.JcrUtils; +import org.argeo.jcr.UserJcrUtils; import org.argeo.jcr.security.SecurityJcrUtils; import org.argeo.security.UserAdminService; import org.argeo.security.jcr.JcrUserDetails; @@ -72,7 +72,7 @@ public class NewUserWizard extends Wizard { return true; } catch (Exception e) { JcrUtils.discardQuietly(session); - Node userHome = ArgeoJcrUtils.getUserHome(session, username); + Node userHome = UserJcrUtils.getUserHome(session, username); if (userHome != null) { try { userHome.remove(); diff --git a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/jcr/RemoteJcrAuthenticationProvider.java b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/jcr/RemoteJcrAuthenticationProvider.java index 62dc98214..f61d37ab2 100644 --- a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/jcr/RemoteJcrAuthenticationProvider.java +++ b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/jcr/RemoteJcrAuthenticationProvider.java @@ -31,8 +31,8 @@ import javax.jcr.Value; import org.argeo.ArgeoException; import org.argeo.jcr.ArgeoJcrConstants; -import org.argeo.jcr.ArgeoJcrUtils; import org.argeo.jcr.ArgeoNames; +import org.argeo.jcr.UserJcrUtils; import org.argeo.security.NodeAuthenticationToken; import org.springframework.security.Authentication; import org.springframework.security.AuthenticationException; @@ -65,7 +65,7 @@ public class RemoteJcrAuthenticationProvider implements AuthenticationProvider, String workspace = siteAuth.getSecurityWorkspace(); session = repository.login(sp, workspace); - Node userHome = ArgeoJcrUtils.getUserHome(session); + Node userHome = UserJcrUtils.getUserHome(session); if (userHome == null || !userHome.hasNode(ArgeoNames.ARGEO_PROFILE)) throw new ArgeoException("No profile for user " + siteAuth.getName() + " in security workspace " diff --git a/security/runtime/org.argeo.security.ldap/src/main/java/org/argeo/security/ldap/jcr/JcrUserDetailsContextMapper.java b/security/runtime/org.argeo.security.ldap/src/main/java/org/argeo/security/ldap/jcr/JcrUserDetailsContextMapper.java index 72c120728..03260bfb7 100644 --- a/security/runtime/org.argeo.security.ldap/src/main/java/org/argeo/security/ldap/jcr/JcrUserDetailsContextMapper.java +++ b/security/runtime/org.argeo.security.ldap/src/main/java/org/argeo/security/ldap/jcr/JcrUserDetailsContextMapper.java @@ -23,9 +23,9 @@ import javax.jcr.RepositoryException; import javax.jcr.Session; import org.argeo.ArgeoException; -import org.argeo.jcr.ArgeoJcrUtils; import org.argeo.jcr.ArgeoNames; import org.argeo.jcr.JcrUtils; +import org.argeo.jcr.UserJcrUtils; import org.argeo.security.jcr.JcrUserDetails; import org.springframework.ldap.core.DirContextAdapter; import org.springframework.ldap.core.DirContextOperations; @@ -61,7 +61,7 @@ public class JcrUserDetailsContextMapper implements UserDetailsContextMapper, final String username, GrantedAuthority[] authorities) { if (ctx == null) throw new ArgeoException("No LDAP information for user " + username); - Node userHome = ArgeoJcrUtils.getUserHome(securitySession, username); + Node userHome = UserJcrUtils.getUserHome(securitySession, username); if (userHome == null) throw new ArgeoException("No JCR information for user " + username); diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeContentProvider.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeContentProvider.java index a1aca2b20..34466d301 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeContentProvider.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/browser/NodeContentProvider.java @@ -25,8 +25,8 @@ import javax.jcr.Session; import org.argeo.eclipse.ui.TreeParent; import org.argeo.jcr.ArgeoJcrConstants; -import org.argeo.jcr.ArgeoJcrUtils; import org.argeo.jcr.RepositoryRegister; +import org.argeo.jcr.UserJcrUtils; import org.argeo.jcr.security.JcrKeyring; import org.argeo.jcr.ui.explorer.model.RepositoriesNode; import org.argeo.jcr.ui.explorer.model.SingleJcrNode; @@ -72,7 +72,7 @@ public class NodeContentProvider implements ITreeContentProvider { return; if (userSession != null) { - Node userHome = ArgeoJcrUtils.getUserHome(userSession); + Node userHome = UserJcrUtils.getUserHome(userSession); if (userHome != null) { // TODO : find a way to dynamically get alias for the node if (homeNode != null) diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/AddRemoteRepository.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/AddRemoteRepository.java index 7f101b8bc..332e94444 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/AddRemoteRepository.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/commands/AddRemoteRepository.java @@ -27,10 +27,10 @@ import javax.jcr.SimpleCredentials; import org.argeo.ArgeoException; import org.argeo.eclipse.ui.ErrorFeedback; import org.argeo.jcr.ArgeoJcrConstants; -import org.argeo.jcr.ArgeoJcrUtils; import org.argeo.jcr.ArgeoNames; import org.argeo.jcr.ArgeoTypes; import org.argeo.jcr.JcrUtils; +import org.argeo.jcr.UserJcrUtils; import org.argeo.jcr.security.JcrKeyring; import org.argeo.jcr.security.SecurityJcrUtils; import org.argeo.jcr.ui.explorer.JcrExplorerConstants; @@ -160,7 +160,7 @@ public class AddRemoteRepository extends AbstractHandler implements protected void okPressed() { try { Session nodeSession = keyring.getSession(); - Node home = ArgeoJcrUtils.getUserHome(nodeSession); + Node home = UserJcrUtils.getUserHome(nodeSession); // FIXME better deal with non existing home dir if (home == null) diff --git a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoriesNode.java b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoriesNode.java index 3289b420d..52ed4c2ef 100644 --- a/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoriesNode.java +++ b/server/plugins/org.argeo.jcr.ui.explorer/src/main/java/org/argeo/jcr/ui/explorer/model/RepositoriesNode.java @@ -29,9 +29,9 @@ import org.argeo.ArgeoException; import org.argeo.eclipse.ui.ErrorFeedback; import org.argeo.eclipse.ui.TreeParent; import org.argeo.jcr.ArgeoJcrConstants; -import org.argeo.jcr.ArgeoJcrUtils; import org.argeo.jcr.ArgeoNames; import org.argeo.jcr.RepositoryRegister; +import org.argeo.jcr.UserJcrUtils; import org.argeo.jcr.security.JcrKeyring; /** @@ -93,7 +93,7 @@ public class RepositoriesNode extends TreeParent implements ArgeoNames { protected void addRemoteRepositories(JcrKeyring jcrKeyring) throws RepositoryException { Session userSession = jcrKeyring.getSession(); - Node userHome = ArgeoJcrUtils.getUserHome(userSession); + Node userHome = UserJcrUtils.getUserHome(userSession); if (userHome != null && userHome.hasNode(ARGEO_REMOTE)) { NodeIterator it = userHome.getNode(ARGEO_REMOTE).getNodes(); while (it.hasNext()) { diff --git a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/SimpleSessionProvider.java b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/SimpleSessionProvider.java index 54e12bd7d..acec82180 100644 --- a/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/SimpleSessionProvider.java +++ b/server/runtime/org.argeo.server.jackrabbit/src/main/java/org/argeo/jackrabbit/remote/SimpleSessionProvider.java @@ -40,9 +40,9 @@ import org.apache.jackrabbit.api.security.user.User; import org.apache.jackrabbit.api.security.user.UserManager; import org.apache.jackrabbit.server.SessionProvider; import org.argeo.ArgeoException; -import org.argeo.jcr.ArgeoJcrUtils; import org.argeo.jcr.ArgeoNames; import org.argeo.jcr.JcrUtils; +import org.argeo.jcr.UserJcrUtils; /** * Implements an open session in view patter: a new JCR session is created for @@ -119,7 +119,7 @@ public class SimpleSessionProvider implements SessionProvider, Serializable { userGroupIds.add(it.next().getID()); // write roles if needed - Node userProfile = ArgeoJcrUtils.getUserHome(session).getNode( + Node userProfile = UserJcrUtils.getUserHome(session).getNode( ArgeoNames.ARGEO_PROFILE); boolean writeRoles = false; if (userProfile.hasProperty(ArgeoNames.ARGEO_REMOTE_ROLES)) { diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ArgeoJcrConstants.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ArgeoJcrConstants.java index a0068cf0f..5cfb1d0fa 100644 --- a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ArgeoJcrConstants.java +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ArgeoJcrConstants.java @@ -20,8 +20,6 @@ public interface ArgeoJcrConstants { public final static String ARGEO_BASE_PATH = "/argeo:system"; public final static String DATA_MODELS_BASE_PATH = ARGEO_BASE_PATH + "/argeo:dataModels"; - /** The home base path. Not yet configurable */ - public final static String DEFAULT_HOME_BASE_PATH = "/argeo:home"; // parameters (typically for call to a RepositoryFactory) public final static String JCR_REPOSITORY_ALIAS = "argeo.jcr.repository.alias"; diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ArgeoJcrUtils.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ArgeoJcrUtils.java index b0d775779..ed4ba421f 100644 --- a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ArgeoJcrUtils.java +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/ArgeoJcrUtils.java @@ -3,64 +3,14 @@ package org.argeo.jcr; import java.util.HashMap; import java.util.Map; -import javax.jcr.Node; import javax.jcr.Repository; import javax.jcr.RepositoryException; import javax.jcr.RepositoryFactory; -import javax.jcr.Session; import org.argeo.ArgeoException; /** Utilities related to Argeo model in JCR */ public class ArgeoJcrUtils implements ArgeoJcrConstants { - /** - * Returns the home node of the session user or null if none was found. - * - * @param session - * the session to use in order to perform the search, this can be - * a session with a different user ID than the one searched, - * typically when a system or admin session is used. - * @param username - * the username of the user - */ - public static Node getUserHome(Session session, String username) { - try { - String homePath = ArgeoJcrUtils.getUserHomePath(username); - return session.itemExists(homePath) ? session.getNode(homePath) - : null; - // kept for example of QOM queries - // QueryObjectModelFactory qomf = session.getWorkspace() - // .getQueryManager().getQOMFactory(); - // Selector userHomeSel = qomf.selector(ArgeoTypes.ARGEO_USER_HOME, - // "userHome"); - // DynamicOperand userIdDop = qomf.propertyValue("userHome", - // ArgeoNames.ARGEO_USER_ID); - // StaticOperand userIdSop = qomf.literal(session.getValueFactory() - // .createValue(username)); - // Constraint constraint = qomf.comparison(userIdDop, - // QueryObjectModelFactory.JCR_OPERATOR_EQUAL_TO, userIdSop); - // Query query = qomf.createQuery(userHomeSel, constraint, null, - // null); - // Node userHome = JcrUtils.querySingleNode(query); - } catch (RepositoryException e) { - throw new ArgeoException("Cannot find home for user " + username, e); - } - } - - /** Returns the home node of the session user or null if none was found. */ - public static Node getUserHome(Session session) { - String userID = session.getUserID(); - return getUserHome(session, userID); - } - - /** @deprecated Use {@link #getUserHome(Session, String)} directly */ - @Deprecated - public static String getUserHomePath(String username) { - String homeBasePath = DEFAULT_HOME_BASE_PATH; - return homeBasePath + '/' + JcrUtils.firstCharsToPath(username, 2) - + '/' + username; - } - /** * Wraps the call to the repository factory based on parameter * {@link ArgeoJcrConstants#JCR_REPOSITORY_ALIAS} in order to simplify it diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/UserJcrUtils.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/UserJcrUtils.java new file mode 100644 index 000000000..016347ada --- /dev/null +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/UserJcrUtils.java @@ -0,0 +1,64 @@ +package org.argeo.jcr; + +import javax.jcr.Node; +import javax.jcr.RepositoryException; +import javax.jcr.Session; + +import org.argeo.ArgeoException; + +/** Utilities related to the user home and properties based on Argeo JCR model. */ +public class UserJcrUtils { + /** The home base path. Not yet configurable */ + public final static String DEFAULT_HOME_BASE_PATH = "/argeo:home"; + + private UserJcrUtils() { + } + + /** + * Returns the home node of the session user or null if none was found. + * + * @param session + * the session to use in order to perform the search, this can be + * a session with a different user ID than the one searched, + * typically when a system or admin session is used. + * @param username + * the username of the user + */ + public static Node getUserHome(Session session, String username) { + try { + String homePath = UserJcrUtils.getUserHomePath(username); + return session.itemExists(homePath) ? session.getNode(homePath) + : null; + // kept for example of QOM queries + // QueryObjectModelFactory qomf = session.getWorkspace() + // .getQueryManager().getQOMFactory(); + // Selector userHomeSel = qomf.selector(ArgeoTypes.ARGEO_USER_HOME, + // "userHome"); + // DynamicOperand userIdDop = qomf.propertyValue("userHome", + // ArgeoNames.ARGEO_USER_ID); + // StaticOperand userIdSop = qomf.literal(session.getValueFactory() + // .createValue(username)); + // Constraint constraint = qomf.comparison(userIdDop, + // QueryObjectModelFactory.JCR_OPERATOR_EQUAL_TO, userIdSop); + // Query query = qomf.createQuery(userHomeSel, constraint, null, + // null); + // Node userHome = JcrUtils.querySingleNode(query); + } catch (RepositoryException e) { + throw new ArgeoException("Cannot find home for user " + username, e); + } + } + + /** Returns the home node of the session user or null if none was found. */ + public static Node getUserHome(Session session) { + String userID = session.getUserID(); + return getUserHome(session, userID); + } + + /** @deprecated Use {@link getUserHome} directly */ + @Deprecated + static String getUserHomePath(String username) { + String homeBasePath = DEFAULT_HOME_BASE_PATH; + return homeBasePath + '/' + JcrUtils.firstCharsToPath(username, 2) + + '/' + username; + } +} diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/security/JcrKeyring.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/security/JcrKeyring.java index 91dd20201..a35bbd272 100644 --- a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/security/JcrKeyring.java +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/security/JcrKeyring.java @@ -31,10 +31,10 @@ import javax.jcr.Session; import org.apache.commons.io.IOUtils; import org.argeo.ArgeoException; -import org.argeo.jcr.ArgeoJcrUtils; import org.argeo.jcr.ArgeoNames; import org.argeo.jcr.ArgeoTypes; import org.argeo.jcr.JcrUtils; +import org.argeo.jcr.UserJcrUtils; import org.argeo.util.crypto.AbstractKeyring; import org.argeo.util.crypto.PBEKeySpecCallback; @@ -63,7 +63,7 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames { if (notYetSavedKeyring.get() != null) return true; - Node userHome = ArgeoJcrUtils.getUserHome(session); + Node userHome = UserJcrUtils.getUserHome(session); return userHome.hasNode(ARGEO_KEYRING); } catch (RepositoryException e) { throw new ArgeoException("Cannot check whether keyring is setup", e); @@ -75,7 +75,7 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames { Binary binary = null; InputStream in = null; try { - Node userHome = ArgeoJcrUtils.getUserHome(session); + Node userHome = UserJcrUtils.getUserHome(session); if (userHome.hasNode(ARGEO_KEYRING)) throw new ArgeoException("Keyring already setup"); Node keyring = userHome.addNode(ARGEO_KEYRING); @@ -126,7 +126,7 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames { @Override protected void handleKeySpecCallback(PBEKeySpecCallback pbeCallback) { try { - Node userHome = ArgeoJcrUtils.getUserHome(session); + Node userHome = UserJcrUtils.getUserHome(session); Node keyring; if (userHome.hasNode(ARGEO_KEYRING)) keyring = userHome.getNode(ARGEO_KEYRING); @@ -250,7 +250,7 @@ public class JcrKeyring extends AbstractKeyring implements ArgeoNames { protected Cipher createCipher() { try { - Node userHome = ArgeoJcrUtils.getUserHome(session); + Node userHome = UserJcrUtils.getUserHome(session); if (!userHome.hasNode(ARGEO_KEYRING)) throw new ArgeoException("Keyring not setup"); Node keyring = userHome.getNode(ARGEO_KEYRING); diff --git a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/security/SecurityJcrUtils.java b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/security/SecurityJcrUtils.java index abf4347db..1ba42197e 100644 --- a/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/security/SecurityJcrUtils.java +++ b/server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/security/SecurityJcrUtils.java @@ -7,10 +7,10 @@ import javax.jcr.version.VersionManager; import org.argeo.ArgeoException; import org.argeo.jcr.ArgeoJcrConstants; -import org.argeo.jcr.ArgeoJcrUtils; import org.argeo.jcr.ArgeoNames; import org.argeo.jcr.ArgeoTypes; import org.argeo.jcr.JcrUtils; +import org.argeo.jcr.UserJcrUtils; /** Utilities related to Argeo security model in JCR */ public class SecurityJcrUtils implements ArgeoJcrConstants { @@ -39,7 +39,7 @@ public class SecurityJcrUtils implements ArgeoJcrConstants { } private static String generateUserHomePath(String username) { - String homeBasePath = DEFAULT_HOME_BASE_PATH; + String homeBasePath = UserJcrUtils.DEFAULT_HOME_BASE_PATH; return homeBasePath + '/' + JcrUtils.firstCharsToPath(username, 2) + '/' + username; } @@ -105,7 +105,7 @@ public class SecurityJcrUtils implements ArgeoJcrConstants { */ public static Node getUserProfile(Session session, String username) { try { - Node userHome = ArgeoJcrUtils.getUserHome(session, username); + Node userHome = UserJcrUtils.getUserHome(session, username); if (userHome == null) return null; if (userHome.hasNode(ArgeoNames.ARGEO_PROFILE)) -- 2.30.2