- // log in
-// final ILoginContext loginContext = SecureRapActivator
-// .createLoginContext(SecureRapActivator.CONTEXT_SPRING_ANONYMOUS);
-// Subject subject = null;
-// try {
-// loginContext.login();
-// subject = loginContext.getSubject();
-// } catch (LoginException e) {
-// throw new ArgeoException(
-// "Unexpected exception during authentication", e);
-// }
-//
-// // identify after successful login
-// if (log.isDebugEnabled())
-// log.debug("Authenticated " + subject);
-// final String username = subject.getPrincipals().iterator().next()
-// .getName();
-//
-// // Once the user is logged in, she can have a longer session timeout
-// RWT.getRequest().getSession().setMaxInactiveInterval(sessionTimeout);
-//
-// // Logout callback when the display is disposed
-// display.disposeExec(new Runnable() {
-// public void run() {
-// log.debug("Display disposed");
-// logout(loginContext, username);
-// }
-// });
-//
-// //
-// // RUN THE WORKBENCH
-// //
-// Integer returnCode = null;
-// try {
-// returnCode = Subject.doAs(subject, new PrivilegedAction<Integer>() {
-// public Integer run() {
-// RapWorkbenchAdvisor workbenchAdvisor = new RapWorkbenchAdvisor(
-// null);
-// int result = PlatformUI.createAndRunWorkbench(display,
-// workbenchAdvisor);
-// return new Integer(result);
-// }
-// });
-// logout(loginContext, username);
-// } finally {
-// display.dispose();
-// }
+ // identify after successful login
+ if (log.isDebugEnabled())
+ log.debug("Authenticated " + subject);
+ final String username = subject.getPrincipals().iterator().next()
+ .getName();
+
+ // Logout callback when the display is disposed
+ display.disposeExec(new Runnable() {
+ public void run() {
+ log.debug("Display disposed");
+ logout(loginContext, username);
+ }
+ });
+
+ //
+ // RUN THE WORKBENCH
+ //
+ Integer returnCode = null;
+ try {
+ returnCode = Subject.doAs(subject, new PrivilegedAction<Integer>() {
+ public Integer run() {
+ RapWorkbenchAdvisor workbenchAdvisor = new RapWorkbenchAdvisor(
+ null);
+ int result = PlatformUI.createAndRunWorkbench(display,
+ workbenchAdvisor);
+ return new Integer(result);
+ }
+ });
+ logout(loginContext, username);
+ if (log.isTraceEnabled())
+ log.trace("Return code " + returnCode);
+ } finally {
+ display.dispose();
+ }