- boolean login(Subject subject) {
- // Subject subject = Subject.getSubject(AccessController.getContext());
- Display display = new Display();
- CmsView cmsView = new E4CmsView(subject);
- CmsLoginShell loginShell = new CmsLoginShell(cmsView);
- loginShell.setSubject(subject);
- try {
- // try pre-auth
- LoginContext loginContext = new LoginContext(NodeConstants.LOGIN_CONTEXT_USER, subject, loginShell);
- loginContext.login();
- } catch (LoginException e) {
- loginShell.createUi();
- loginShell.open();
-
- while (!loginShell.getShell().isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- } finally {
- display.dispose();
- }
- if (CurrentUser.getUsername(subject) == null)
- return false;
- return true;
- }
-
- class E4CmsView implements CmsView {
- private LoginContext loginContext;
- private UxContext uxContext;
- private Subject subject;
-
- public E4CmsView(Subject subject) {
- this.subject = subject;
- uxContext = new SimpleUxContext();
- }
-
- @Override
- public UxContext getUxContext() {
- return uxContext;
- }
-
- @Override
- public void navigateTo(String state) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void authChange(LoginContext loginContext) {
- if (loginContext == null)
- throw new CmsException("Login context cannot be null");
- // logout previous login context
- // if (this.loginContext != null)
- // try {
- // this.loginContext.logout();
- // } catch (LoginException e1) {
- // System.err.println("Could not log out: " + e1);
- // }
- this.loginContext = loginContext;
- }
-
- @Override
- public void logout() {
- if (loginContext == null)
- throw new CmsException("Login context should not bet null");
- try {
- CurrentUser.logoutCmsSession(loginContext.getSubject());
- loginContext.logout();
- } catch (LoginException e) {
- throw new CmsException("Cannot log out", e);
- }
- }
-
- @Override
- public void exception(Throwable e) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public CmsImageManager getImageManager() {
- // TODO Auto-generated method stub
- return null;
- }
-
- protected Subject getSubject() {
- return subject;
- }
-
- @Override
- public boolean isAnonymous() {
- return CurrentUser.isAnonymous(getSubject());
- }
- }
+ // private boolean login(Subject subject) {
+ // Display display = new Display();
+ // CmsView cmsView = new E4CmsView(subject);
+ // CmsLoginShell loginShell = new CmsLoginShell(cmsView);
+ // loginShell.setSubject(subject);
+ // try {
+ // // try pre-auth
+ // LoginContext loginContext = new
+ // LoginContext(NodeConstants.LOGIN_CONTEXT_USER, subject, loginShell);
+ // loginContext.login();
+ // } catch (LoginException e) {
+ // loginShell.createUi();
+ // loginShell.open();
+ //
+ // while (!loginShell.getShell().isDisposed()) {
+ // if (!display.readAndDispatch())
+ // display.sleep();
+ // }
+ // } finally {
+ // display.dispose();
+ // }
+ // if (CurrentUser.getUsername(subject) == null)
+ // return false;
+ // return true;
+ // }
+ //
+ // private class E4CmsView implements CmsView {
+ // private LoginContext loginContext;
+ // private UxContext uxContext;
+ // private Subject subject;
+ //
+ // public E4CmsView(Subject subject) {
+ // this.subject = subject;
+ // uxContext = new SimpleUxContext();
+ // }
+ //
+ // @Override
+ // public UxContext getUxContext() {
+ // return uxContext;
+ // }
+ //
+ // @Override
+ // public void navigateTo(String state) {
+ // // TODO Auto-generated method stub
+ //
+ // }
+ //
+ // @Override
+ // public void authChange(LoginContext loginContext) {
+ // if (loginContext == null)
+ // throw new CmsException("Login context cannot be null");
+ // // logout previous login context
+ // // if (this.loginContext != null)
+ // // try {
+ // // this.loginContext.logout();
+ // // } catch (LoginException e1) {
+ // // System.err.println("Could not log out: " + e1);
+ // // }
+ // this.loginContext = loginContext;
+ // }
+ //
+ // @Override
+ // public void logout() {
+ // if (loginContext == null)
+ // throw new CmsException("Login context should not bet null");
+ // try {
+ // CurrentUser.logoutCmsSession(loginContext.getSubject());
+ // loginContext.logout();
+ // } catch (LoginException e) {
+ // throw new CmsException("Cannot log out", e);
+ // }
+ // }
+ //
+ // @Override
+ // public void exception(Throwable e) {
+ // log.error("Unexpected exception in Eclipse 4 RAP", e);
+ // }
+ //
+ // @Override
+ // public CmsImageManager getImageManager() {
+ // // TODO Auto-generated method stub
+ // return null;
+ // }
+ //
+ // protected Subject getSubject() {
+ // return subject;
+ // }
+ //
+ // @Override
+ // public boolean isAnonymous() {
+ // return CurrentUser.isAnonymous(getSubject());
+ // }
+ // }