]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/util/LoginEntryPoint.java
Merge security.ui bundle in the cms.ui.workbench bundle
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / util / LoginEntryPoint.java
index 4ccedd19bb2a5180873b481a188a439361018f2c..2ccb3ca06b2d8349db91859358a9ff9957038a10 100644 (file)
@@ -8,15 +8,15 @@ import javax.security.auth.login.LoginContext;
 import javax.security.auth.login.LoginException;
 import javax.servlet.http.HttpServletRequest;
 
-import org.argeo.ArgeoException;
 import org.argeo.cms.CmsException;
 import org.argeo.cms.CmsImageManager;
 import org.argeo.cms.CmsView;
 import org.argeo.cms.auth.AuthConstants;
+import org.argeo.cms.auth.CurrentUser;
 import org.argeo.cms.auth.HttpRequestCallbackHandler;
+import org.argeo.cms.ui.UxContext;
 import org.argeo.cms.widgets.auth.CmsLogin;
 import org.argeo.cms.widgets.auth.CmsLoginShell;
-import org.argeo.eclipse.ui.dialogs.ErrorFeedback;
 import org.argeo.eclipse.ui.specific.UiContext;
 import org.eclipse.rap.rwt.RWT;
 import org.eclipse.rap.rwt.application.EntryPoint;
@@ -28,6 +28,7 @@ public class LoginEntryPoint implements EntryPoint, CmsView {
        // private final static Log log = LogFactory.getLog(WorkbenchLogin.class);
        private final Subject subject = new Subject();
        private LoginContext loginContext;
+       private UxContext uxContext = null;
 
        @Override
        public int createUI() {
@@ -42,22 +43,26 @@ public class LoginEntryPoint implements EntryPoint, CmsView {
                        CmsLoginShell loginShell = createCmsLoginShell();
                        loginShell.open();
                        while (!loginShell.getShell().isDisposed()) {
-                               try {
-                                       if (!display.readAndDispatch())
-                                               display.sleep();
-                               } catch (Exception e1) {
-                                       try {
-                                               Thread.sleep(3000);
-                                       } catch (InterruptedException e2) {
-                                               // silent
-                                       }
-                                       ErrorFeedback.show("Login failed", e1);
-                                       return -1;
-                               }
+                               // try {
+                               if (!display.readAndDispatch())
+                                       display.sleep();
+                               // } catch (Exception e1) {
+                               // try {
+                               // Thread.sleep(3000);
+                               // } catch (InterruptedException e2) {
+                               // // silent
+                               // }
+                               // ErrorFeedback.show("Login failed", e1);
+                               // return -1;
+                               // }
                        }
                } catch (LoginException e) {
-                       throw new ArgeoException("Cannot log in", e);
+                       throw new CmsException("Cannot log in", e);
                }
+
+               if (CurrentUser.getUsername() == null)
+                       return -1;
+               uxContext = new SimpleUxContext();
                return postLogin();
        }
 
@@ -145,4 +150,10 @@ public class LoginEntryPoint implements EntryPoint, CmsView {
                // TODO Auto-generated method stub
                return null;
        }
+
+       @Override
+       public UxContext getUxContext() {
+               return uxContext;
+       }
+
 }