import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.argeo.cms.CmsException;
-import org.argeo.cms.auth.AuthConstants;
import org.argeo.cms.auth.HttpRequestCallbackHandler;
import org.argeo.eclipse.ui.specific.UiContext;
import org.argeo.jcr.JcrUtils;
-import org.argeo.node.NodeAuthenticated;
+import org.argeo.node.NodeConstants;
+import org.argeo.node.security.NodeAuthenticated;
import org.eclipse.rap.rwt.RWT;
import org.eclipse.rap.rwt.application.AbstractEntryPoint;
import org.eclipse.rap.rwt.client.WebClient;
private final Log log = LogFactory.getLog(AbstractCmsEntryPoint.class);
- private final Subject subject;
+ // private final Subject subject;
private LoginContext loginContext;
private final Repository repository;
this.workspace = workspace;
this.defaultPath = defaultPath;
this.factoryProperties = new HashMap<String, String>(factoryProperties);
- subject = new Subject();
+ // subject = new Subject();
// Initial login
try {
- loginContext = new LoginContext(AuthConstants.LOGIN_CONTEXT_USER, subject,
+ loginContext = new LoginContext(NodeConstants.LOGIN_CONTEXT_USER,
new HttpRequestCallbackHandler(UiContext.getHttpRequest()));
loginContext.login();
} catch (CredentialNotFoundException e) {
try {
- loginContext = new LoginContext(AuthConstants.LOGIN_CONTEXT_ANONYMOUS, subject);
+ loginContext = new LoginContext(NodeConstants.LOGIN_CONTEXT_USER);
loginContext.login();
} catch (LoginException e1) {
- throw new CmsException("Cannot log as anonymous", e);
+ throw new CmsException("Cannot log in as anonymous", e1);
}
} catch (LoginException e) {
throw new CmsException("Cannot initialize subject", e);
@Override
protected final void createContents(final Composite parent) {
UiContext.setData(NodeAuthenticated.KEY, this);
- Subject.doAs(subject, new PrivilegedAction<Void>() {
+ Subject.doAs(loginContext.getSubject(), new PrivilegedAction<Void>() {
@Override
public Void run() {
try {
*/
protected Node getDefaultNode(Session session) throws RepositoryException {
if (!session.hasPermission(defaultPath, "read")) {
- if (session.getUserID().equals(AuthConstants.ROLE_ANONYMOUS))
+ String userId = session.getUserID();
+ if (userId.equals(NodeConstants.ROLE_ANONYMOUS))
// TODO throw a special exception
throw new CmsException("Login required");
else
browserNavigation.pushState(state, title);
}
+ // @Override
+ // public synchronized Subject getSubject() {
+ // return subject;
+ // }
+
@Override
- public synchronized Subject getSubject() {
- return subject;
+ public LoginContext getLoginContext() {
+ return loginContext;
}
@Override
throw new CmsException("Login context should not be null");
try {
loginContext.logout();
- LoginContext anonymousLc = new LoginContext(AuthConstants.LOGIN_CONTEXT_ANONYMOUS, subject);
+ LoginContext anonymousLc = new LoginContext(NodeConstants.LOGIN_CONTEXT_USER);
anonymousLc.login();
authChange(anonymousLc);
} catch (LoginException e) {
}
protected synchronized void doRefresh() {
- Subject.doAs(subject, new PrivilegedAction<Void>() {
+ Subject.doAs(loginContext.getSubject(), new PrivilegedAction<Void>() {
@Override
public Void run() {
refresh();