X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=server%2Fruntime%2Forg.argeo.server.jackrabbit%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fjackrabbit%2Fremote%2FSimpleSessionProvider.java;fp=server%2Fruntime%2Forg.argeo.server.jackrabbit%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fjackrabbit%2Fremote%2FSimpleSessionProvider.java;h=74b96e9edd45436c0a7cb4869d8fe36884319619;hb=484dcb1507e4e35cc282e50522ea7eac7e99a7f9;hp=8e8b1d945ce22f2c7a3883d74cfc0f6673150b57;hpb=366325583b0b101f3e78fcfda65d3f856cef8617;p=lgpl%2Fargeo-commons.git 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 8e8b1d945..74b96e9ed 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 @@ -42,6 +42,8 @@ public class SimpleSessionProvider implements SessionProvider, Serializable { private Boolean openSessionInView = true; + private String securityWorkspace = "security"; + public Session getSession(HttpServletRequest request, Repository rep, String workspace) throws LoginException, ServletException, RepositoryException { @@ -84,6 +86,9 @@ public class SimpleSessionProvider implements SessionProvider, Serializable { protected void writeRemoteRoles(JackrabbitSession session) throws RepositoryException { + if (!session.getWorkspace().getName().equals(securityWorkspace)) + return; + // retrieve roles String userId = session.getUserID(); UserManager userManager = session.getUserManager(); @@ -98,7 +103,8 @@ public class SimpleSessionProvider implements SessionProvider, Serializable { userGroupIds.add(it.next().getID()); // write roles if needed - Node userProfile = JcrUtils.getUserProfile(session); + Node userProfile = JcrUtils.getUserHome(session).getNode( + ArgeoNames.ARGEO_PROFILE); boolean writeRoles = false; if (userProfile.hasProperty(ArgeoNames.ARGEO_REMOTE_ROLES)) { Value[] roles = userProfile.getProperty(