*/
String NODE_REPOSITORY = NODE;
String EGO_REPOSITORY = "ego";
+ String SYS_WORKSPACE = "sys";
String HOME_WORKSPACE = "home";
String SRV_WORKSPACE = "srv";
String GUESTS_WORKSPACE = "guests";
String PUBLIC_WORKSPACE = "public";
+ String SECURITY_WORKSPACE = "security";
/*
* BASE DNs
Repository repository = repositoryFactory.getRepository(params);
if (username.getText().trim().equals("")) {// anonymous
// FIXME make it more generic
- session = repository.login("main");
+ session = repository.login(NodeConstants.SYS_WORKSPACE);
} else {
// FIXME use getTextChars() when upgrading to 3.7
// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=297412
import javax.script.Invocable;
import javax.script.ScriptException;
+import org.argeo.api.NodeConstants;
import org.argeo.cms.ui.CmsUiProvider;
import org.argeo.cms.ui.util.CmsPane;
import org.argeo.cms.ui.util.CmsUiUtils;
public AppUi(CmsScriptApp app, String scriptPath) {
this.app = app;
- this.ui = new ScriptUi((BundleContext) app.getScriptEngine().get(CmsScriptRwtApplication.BC), app.getScriptEngine(), scriptPath);
+ this.ui = new ScriptUi((BundleContext) app.getScriptEngine().get(CmsScriptRwtApplication.BC),
+ app.getScriptEngine(), scriptPath);
}
public AppUi(CmsScriptApp app, CmsUiProvider uiProvider) {
EntryPointFactory entryPointFactory = new EntryPointFactory() {
@Override
public EntryPoint create() {
- SimpleErgonomics ergonomics = new SimpleErgonomics(repository, "main", "/home/root/argeo:keyring",
- AppUi.this, factoryProperties);
+ SimpleErgonomics ergonomics = new SimpleErgonomics(repository, NodeConstants.SYS_WORKSPACE,
+ "/home/root/argeo:keyring", AppUi.this, factoryProperties);
// CmsUiProvider header = app.getHeader();
// if (header != null)
// ergonomics.setHeader(header);
import javax.jcr.RepositoryException;
import javax.jcr.Session;
+import org.argeo.api.NodeConstants;
import org.argeo.eclipse.ui.EclipseUiException;
import org.argeo.eclipse.ui.TreeParent;
import org.argeo.jcr.JcrUtils;
public void login() {
try {
- defaultSession = repositoryLogin("main");
+ defaultSession = repositoryLogin(NodeConstants.SYS_WORKSPACE);
String[] wkpNames = defaultSession.getWorkspace().getAccessibleWorkspaceNames();
for (String wkpName : wkpNames) {
if (wkpName.equals(defaultSession.getWorkspace().getName()))
import java.security.AccessControlContext;
import java.security.AccessController;
import java.security.PrivilegedAction;
+import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.time.ZonedDateTime;
import java.util.Collection;
import org.apache.commons.logging.LogFactory;
import org.argeo.api.NodeConstants;
import org.argeo.api.security.NodeSecurityUtils;
-import org.argeo.cms.CmsException;
import org.argeo.cms.auth.CmsSession;
import org.argeo.jcr.JcrUtils;
import org.osgi.framework.BundleContext;
this.userDn = new LdapName(authorization.getName());
this.anonymous = false;
} catch (InvalidNameException e) {
- throw new CmsException("Invalid user name " + authorization.getName(), e);
+ throw new IllegalArgumentException("Invalid user name " + authorization.getName(), e);
}
else {
this.userDn = NodeSecurityUtils.ROLE_ANONYMOUS_NAME;
public synchronized Session getDataSession(String cn, String workspace, Repository repository) {
// FIXME make it more robust
if (workspace == null)
- workspace = "main";
+ workspace = NodeConstants.SYS_WORKSPACE;
String path = cn + '/' + workspace;
if (dataSessionsInUse.contains(path)) {
try {
return repository.login(workspace);
}
});
- } catch (Exception e) {
- throw new CmsException("Cannot log in " + userDn + " to JCR", e);
+ } catch (PrivilegedActionException e) {
+ throw new IllegalStateException("Cannot log in " + userDn + " to JCR", e);
}
}
try {
sr = bc.getServiceReferences(CmsSession.class, "(" + CmsSession.SESSION_LOCAL_ID + "=" + localId + ")");
} catch (InvalidSyntaxException e) {
- throw new CmsException("Cannot get CMS session for id " + localId, e);
+ throw new IllegalArgumentException("Cannot get CMS session for id " + localId, e);
}
ServiceReference<CmsSession> cmsSessionRef;
if (sr.size() == 1) {
} else if (sr.size() == 0) {
return null;
} else
- throw new CmsException(sr.size() + " CMS sessions registered for " + localId);
+ throw new IllegalStateException(sr.size() + " CMS sessions registered for " + localId);
}
try {
sr = bc.getServiceReferences(CmsSession.class, "(" + CmsSession.SESSION_UUID + "=" + uuid + ")");
} catch (InvalidSyntaxException e) {
- throw new CmsException("Cannot get CMS session for uuid " + uuid, e);
+ throw new IllegalArgumentException("Cannot get CMS session for uuid " + uuid, e);
}
ServiceReference<CmsSession> cmsSessionRef;
if (sr.size() == 1) {
} else if (sr.size() == 0) {
return null;
} else
- throw new CmsException(sr.size() + " CMS sessions registered for " + uuid);
+ throw new IllegalStateException(sr.size() + " CMS sessions registered for " + uuid);
}
}
}
} catch (InvalidSyntaxException e) {
- throw new CmsException("Cannot get CMS sessions", e);
+ throw new IllegalArgumentException("Cannot get CMS sessions", e);
}
}
}
package org.argeo.cms.internal.jcr;
+import org.argeo.api.NodeConstants;
import org.argeo.osgi.metatype.EnumAD;
import org.argeo.osgi.metatype.EnumOCD;
/** Repository type */
type("h2"),
/** Default workspace */
- defaultWorkspace("main"),
+ defaultWorkspace(NodeConstants.SYS_WORKSPACE),
/** Database URL */
dburl(null),
/** Database user */
import java.io.IOException;
import java.net.URI;
+import java.net.URISyntaxException;
import java.nio.file.FileSystem;
import java.nio.file.FileSystemAlreadyExistsException;
import java.nio.file.Path;
import org.argeo.api.NodeConstants;
import org.argeo.api.NodeUtils;
-import org.argeo.cms.CmsException;
import org.argeo.cms.auth.CurrentUser;
import org.argeo.jackrabbit.fs.AbstractJackrabbitFsProvider;
import org.argeo.jcr.fs.JcrFileSystem;
import org.argeo.jcr.fs.JcrFsException;
import org.osgi.framework.BundleContext;
import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.InvalidSyntaxException;
public class CmsFsProvider extends AbstractJackrabbitFsProvider {
private Map<String, CmsFileSystem> fileSystems = new HashMap<>();
URI repoUri = new URI("http", uri.getUserInfo(), uri.getHost(), uri.getPort(), "/jcr/node", null, null);
RepositoryFactory repositoryFactory = bc.getService(bc.getServiceReference(RepositoryFactory.class));
Repository repository = NodeUtils.getRepositoryByUri(repositoryFactory, repoUri.toString());
-// Session session = repository.login("main");
CmsFileSystem fileSystem = new CmsFileSystem(this, repository);
fileSystems.put(username, fileSystem);
return fileSystem;
} else {
Repository repository = bc.getService(
- bc.getServiceReferences(Repository.class, "(cn=" + NodeConstants.EGO_REPOSITORY + ")").iterator().next());
+ bc.getServiceReferences(Repository.class, "(cn=" + NodeConstants.EGO_REPOSITORY + ")")
+ .iterator().next());
// Session session = repository.login();
CmsFileSystem fileSystem = new CmsFileSystem(this, repository);
fileSystems.put(username, fileSystem);
return fileSystem;
}
- } catch (Exception e) {
- throw new CmsException("Cannot open file system " + uri + " for user " + username, e);
+ } catch (InvalidSyntaxException | URISyntaxException e) {
+ throw new IllegalArgumentException("Cannot open file system " + uri + " for user " + username, e);
}
}
RepositoryFactory repositoryFactory = new ClientDavexRepositoryFactory();
Map<String, String> params = new HashMap<String, String>();
params.put(ClientDavexRepositoryFactory.JACKRABBIT_DAVEX_URI, uri.toString());
- params.put(ClientDavexRepositoryFactory.JACKRABBIT_REMOTE_DEFAULT_WORKSPACE, "main");
+ // FIXME make it configurable
+ params.put(ClientDavexRepositoryFactory.JACKRABBIT_REMOTE_DEFAULT_WORKSPACE, "sys");
return repositoryFactory.getRepository(params);
}
};
Map<String, String> params = new HashMap<String, String>();
params.put(JACKRABBIT_DAVEX_URI, repoUri.toString());
- params.put(JACKRABBIT_REMOTE_DEFAULT_WORKSPACE, "main");
+ // FIXME make it configurable
+ params.put(JACKRABBIT_REMOTE_DEFAULT_WORKSPACE, "sys");
try {
repository = repositoryFactory.getRepository(params);
throws IOException {
Map<String, String> params = new HashMap<String, String>();
params.put(ClientDavexRepositoryFactory.JACKRABBIT_DAVEX_URI, repoUri.toString());
- params.put(ClientDavexRepositoryFactory.JACKRABBIT_REMOTE_DEFAULT_WORKSPACE, "main");
+ // FIXME make it configurable
+ params.put(ClientDavexRepositoryFactory.JACKRABBIT_REMOTE_DEFAULT_WORKSPACE, "sys");
Repository repository = null;
Session session = null;
try {