import java.net.URL;
import java.nio.file.Path;
import java.nio.file.Paths;
-import java.security.PrivilegedAction;
import java.security.URIParameter;
import java.util.Dictionary;
import java.util.Hashtable;
import java.util.TreeMap;
import java.util.TreeSet;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.security.auth.Subject;
-import javax.security.auth.login.LoginContext;
-import javax.security.auth.login.LoginException;
-
import org.apache.commons.logging.Log;
import org.argeo.api.DataModelNamespace;
-import org.argeo.api.NodeConstants;
-import org.argeo.cms.CmsException;
-import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.util.tracker.ServiceTracker;
out.println(key + "=" + display.get(key));
}
- static Session openAdminSession(Repository repository) {
- return openAdminSession(repository, null);
- }
-
- static Session openAdminSession(final Repository repository, final String workspaceName) {
- ClassLoader currentCl = Thread.currentThread().getContextClassLoader();
- Thread.currentThread().setContextClassLoader(KernelUtils.class.getClassLoader());
- LoginContext loginContext;
- try {
- loginContext = new LoginContext(NodeConstants.LOGIN_CONTEXT_DATA_ADMIN);
- loginContext.login();
- } catch (LoginException e1) {
- throw new IllegalStateException("Could not login as data admin", e1);
- } finally {
- Thread.currentThread().setContextClassLoader(currentCl);
- }
- return Subject.doAs(loginContext.getSubject(), new PrivilegedAction<Session>() {
-
- @Override
- public Session run() {
- try {
- return repository.login(workspaceName);
- } catch (RepositoryException e) {
- throw new IllegalStateException("Cannot open admin session", e);
- }
- }
+// static Session openAdminSession(Repository repository) {
+// return openAdminSession(repository, null);
+// }
+//
+// static Session openAdminSession(final Repository repository, final String workspaceName) {
+// LoginContext loginContext = loginAsDataAdmin();
+// return Subject.doAs(loginContext.getSubject(), new PrivilegedAction<Session>() {
+//
+// @Override
+// public Session run() {
+// try {
+// return repository.login(workspaceName);
+// } catch (RepositoryException e) {
+// throw new IllegalStateException("Cannot open admin session", e);
+// } finally {
+// try {
+// loginContext.logout();
+// } catch (LoginException e) {
+// throw new IllegalStateException(e);
+// }
+// }
+// }
+//
+// });
+// }
+//
+// static LoginContext loginAsDataAdmin() {
+// ClassLoader currentCl = Thread.currentThread().getContextClassLoader();
+// Thread.currentThread().setContextClassLoader(KernelUtils.class.getClassLoader());
+// LoginContext loginContext;
+// try {
+// loginContext = new LoginContext(NodeConstants.LOGIN_CONTEXT_DATA_ADMIN);
+// loginContext.login();
+// } catch (LoginException e1) {
+// throw new IllegalStateException("Could not login as data admin", e1);
+// } finally {
+// Thread.currentThread().setContextClassLoader(currentCl);
+// }
+// return loginContext;
+// }
- });
- }
+// static void doAsDataAdmin(Runnable action) {
+// LoginContext loginContext = loginAsDataAdmin();
+// Subject.doAs(loginContext.getSubject(), new PrivilegedAction<Void>() {
+//
+// @Override
+// public Void run() {
+// try {
+// action.run();
+// return null;
+// } finally {
+// try {
+// loginContext.logout();
+// } catch (LoginException e) {
+// throw new IllegalStateException(e);
+// }
+// }
+// }
+//
+// });
+// }
static void asyncOpen(ServiceTracker<?, ?> st) {
Runnable run = new Runnable() {
// new Thread(run, "Open service tracker " + st).start();
}
- /**
- * @return the {@link BundleContext} of the {@link Bundle} which provided this
- * class, never null.
- * @throws CmsException if the related bundle is not active
- */
-// static BundleContext getBundleContext(Class<?> clzz) {
-//// Bundle bundle = FrameworkUtil.getBundle(clzz);
-// BundleContext bc = Activator.getBundleContext();
-// if (bc == null)
-// throw new CmsException("Bundle " + bundle.getSymbolicName() + " is not active");
-// return bc;
-// }
-
static BundleContext getBundleContext() {
return Activator.getBundleContext();
}