[jboss-svn-commits] JBL Code SVN: r6356 - labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Sep 22 09:12:29 EDT 2006


Author: szimano
Date: 2006-09-22 09:12:26 -0400 (Fri, 22 Sep 2006)
New Revision: 6356

Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/LabsLoginModule.java
Log:
fixed admin login bug

Modified: labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/LabsLoginModule.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/LabsLoginModule.java	2006-09-22 12:54:10 UTC (rev 6355)
+++ labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/LabsLoginModule.java	2006-09-22 13:12:26 UTC (rev 6356)
@@ -97,19 +97,13 @@
 		return userModule;
 	}
 
-	protected RoleModule getRoleModule() throws NamingException {
-		if (roleModule == null) {
-			roleModule = (RoleModule) new InitialContext()
-					.lookup(ModuleConstants.ROLEMODULE_JNDINAME);
-		}
-		return roleModule;
-	}
-
-	protected String getUsersPassword() throws LoginException {
+	protected boolean validatePassword(String inputPassword, String expectedPassword) {
+		final String inPassword = inputPassword;
+		
 		try {
 			TransactionManager tm = (TransactionManager) new InitialContext()
 					.lookup("java:/TransactionManager");
-			String password = (String) Transactions.required(tm,
+			Boolean passwordValid = (Boolean) Transactions.required(tm,
 					new Transactions.Runnable() {
 						public Object run() throws Exception {
 							try {
@@ -121,9 +115,15 @@
 									if (havingRole == null
 											|| PermissionTools.getRoleNames(user).contains(
 													havingRole)) {
-										return checkIfPasswordChanged(user);
+										if (!user.getUserName().equals("admin")) {
+											checkIfPasswordChanged(user);
+											return user.validatePassword(inPassword);
+										}
+										else {
+											return user.validatePassword(inPassword);
+										}
 									} else {
-										return lookForNewUser(getRoleModule());
+										return false;
 									}
 								} catch (NoSuchUserException e) {
 									return lookForNewUser(getRoleModule());
@@ -136,13 +136,24 @@
 					});
 
 			// Returning null as password is enough to veto the login
-			return password;
+			return passwordValid;
 		} catch (Exception e) {
-			Throwable cause = e.getCause();
-			throw new LoginException(cause.toString());
+			return false;
 		}
 	}
 
+	protected RoleModule getRoleModule() throws NamingException {
+		if (roleModule == null) {
+			roleModule = (RoleModule) new InitialContext()
+					.lookup(ModuleConstants.ROLEMODULE_JNDINAME);
+		}
+		return roleModule;
+	}
+
+	protected String getUsersPassword() throws LoginException {
+		return "";
+	}
+
 	private String checkIfPasswordChanged(User user) throws LoginException {
 		String password = null;
 		
@@ -180,6 +191,10 @@
 				throw new LoginException(e.toString());
 			}
 		}
+		else {
+			// don't execute this for admin
+			return null;
+		}
 
 		return password;
 	}




More information about the jboss-svn-commits mailing list