[Yanel-commits] rev 51775 -
public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/security/impl
michi at wyona.com
michi at wyona.com
Tue Jul 27 15:48:39 CEST 2010
Author: michi
Date: 2010-07-27 15:48:38 +0200 (Tue, 27 Jul 2010)
New Revision: 51775
Modified:
public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/security/impl/DefaultWebAuthenticatorImpl.java
Log:
authentication refactored such that it can be re-used more easily
Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/security/impl/DefaultWebAuthenticatorImpl.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/security/impl/DefaultWebAuthenticatorImpl.java 2010-07-27 13:48:28 UTC (rev 51774)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/security/impl/DefaultWebAuthenticatorImpl.java 2010-07-27 13:48:38 UTC (rev 51775)
@@ -92,21 +92,10 @@
}
if(loginUsername != null) {
try {
- String trueId = realm.getIdentityManager().getUserManager().getTrueId(loginUsername);
- User user = realm.getIdentityManager().getUserManager().getUser(trueId, true);
- if (user != null && user.authenticate(request.getParameter("yanel.login.password"))) {
- log.debug("Realm: " + realm);
- IdentityMap identityMap = (IdentityMap)session.getAttribute(YanelServlet.IDENTITY_MAP_KEY);
- if (identityMap == null) {
- identityMap = new IdentityMap();
- session.setAttribute(YanelServlet.IDENTITY_MAP_KEY, identityMap);
- }
- identityMap.put(realm.getID(), new Identity(user, loginUsername));
- log.warn("Authentication was successful for user: " + user.getID());
- log.warn("TODO: Add user to session listener!");
+ if (authenticate(loginUsername, request.getParameter("yanel.login.password"), realm, session)) {
return null;
}
- log.warn("Login failed: " + loginUsername + " (True ID: " + trueId + ")");
+ log.warn("Login failed: " + loginUsername + " (True ID: " + realm.getIdentityManager().getUserManager().getTrueId(loginUsername) + ")");
getXHTMLAuthenticationForm(request, response, realm, "Login failed!", reservedPrefix, xsltLoginScreenDefault, servletContextRealPath, sslPort, map);
return response;
} catch (ExpiredIdentityException e) {
@@ -644,4 +633,32 @@
}
return rememberMyLoginName;
}
+
+ /**
+ * Default authentication
+ *
+ * @param username Login username, which might be an alias
+ * @param password Plain text password
+ * @param realm Realm
+ * @param session HTTP session
+ *
+ * @return true if authentication was successful and else false
+ */
+ public static boolean authenticate(String username, String password, Realm realm, HttpSession session) throws Exception {
+ String trueId = realm.getIdentityManager().getUserManager().getTrueId(username);
+ User user = realm.getIdentityManager().getUserManager().getUser(trueId, true);
+ if (user != null && user.authenticate(password)) {
+ log.debug("Realm: " + realm);
+ IdentityMap identityMap = (IdentityMap)session.getAttribute(YanelServlet.IDENTITY_MAP_KEY);
+ if (identityMap == null) {
+ identityMap = new IdentityMap();
+ session.setAttribute(YanelServlet.IDENTITY_MAP_KEY, identityMap);
+ }
+ identityMap.put(realm.getID(), new Identity(user, username));
+ log.warn("Authentication was successful for user: " + user.getID());
+ log.warn("TODO: Add user to session listener!");
+ return true;
+ }
+ return false;
+ }
}
More information about the Yanel-commits
mailing list