try {
response.setHeader("Location", response.encodeRedirectURL(request.getContextPath() + this.loginURI));
response.setStatus(HttpServletResponse.SC_TEMPORARY_REDIRECT);
// rd.forward(request, response);
} catch (Exception ex) {
AuthException ae = new AuthException();
ae.initCause(ex);
throw ae;
}
return AuthStatus.SEND_CONTINUE;
}
// Check to see if successfull
try {
cbh.setRequest(request);
lc.login();
LOGGER.fine("Traitement du formulaire d'authentification");
clientSubject = lc.getSubject();
setCallerPrincipal(clientSubject);
// recreate the session
Map<String, Object> map = new HashMap<String, Object>();
Enumeration<String> names = session.getAttributeNames();
while (names.hasMoreElements()) {
String key = names.nextElement();
map.put(key, session.getAttribute(key));
}
session.invalidate();
session = request.getSession(true);
for (Entry<String, Object> key : map.entrySet()) {
session.setAttribute(key.getKey().toString(), key.getValue());
}
// Save the Subject...
session.setAttribute(SAVED_SUBJECT, clientSubject);
// Save the userName
session.setAttribute(USER_NAME, username);
try {
// Redirect...
if (getSavedRequestURL(session) != null) {
response.sendRedirect(response.encodeRedirectURL(getSavedRequestURL(session)));
} else if (backward != null) {
response.sendRedirect(response.encodeRedirectURL(backward));
} else {
response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + "/"));
}
} catch (Exception ex) {
AuthException ae = new AuthException();
ae.initCause(ex);
throw ae;
}
/*
* if ((new Date().getTime() - ((EvasionPrincipal)
* userPrincipal).getLastLogin().getTime()) > 86400) {
* UserTransaction tx = ejbClient.getTransaction(); if (tx != null)
* { LOGGER.log(Level.FINE, "UserTransaction status
* {0}",tx.getStatus()); tx.begin(); try {
* loginEJB.postLogin(userPrincipal.getName()); } finally {
* tx.commit(); tx = null; } } }
*/
saveLoginBackToURL(request, session);
// Continue...
return AuthStatus.SEND_CONTINUE;
} catch (LoginException le) {
LOGGER.log(Level.SEVERE, "ERROR SAM!!!", le);
RequestDispatcher rd = request.getRequestDispatcher(this.loginURI);
try {
rd.forward(request, response);
} catch (Exception ex) {
AuthException ae = new AuthException();
ae.initCause(ex);
throw ae;
}
return AuthStatus.SEND_FAILURE;
} catch (Exception ex) {
LOGGER.log(Level.SEVERE, "ERROR SAM!!!", ex);