[jboss-svn-commits] JBL Code SVN: r20792 - in labs/jbosslabs/labs-3.0-build/integration/cs-nukes-login: src/main/java/org/jboss/labs/clearspace and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Jun 26 05:01:32 EDT 2008
Author: szimano
Date: 2008-06-26 05:01:32 -0400 (Thu, 26 Jun 2008)
New Revision: 20792
Modified:
labs/jbosslabs/labs-3.0-build/integration/cs-nukes-login/pom.xml
labs/jbosslabs/labs-3.0-build/integration/cs-nukes-login/src/main/java/org/jboss/labs/clearspace/LabsAuthenticationProvider.java
Log:
spring definition for migration
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nukes-login/pom.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nukes-login/pom.xml 2008-06-26 08:46:53 UTC (rev 20791)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nukes-login/pom.xml 2008-06-26 09:01:32 UTC (rev 20792)
@@ -21,8 +21,8 @@
</dependency>
<dependency>
<groupId>com.jivesoftware</groupId>
- <artifactId>clearspace-community</artifactId>
- <version>2.0.1</version>
+ <artifactId>clearspace</artifactId>
+ <version>2.0.3</version>
<scope>provided</scope>
</dependency>
<dependency>
Modified: labs/jbosslabs/labs-3.0-build/integration/cs-nukes-login/src/main/java/org/jboss/labs/clearspace/LabsAuthenticationProvider.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/cs-nukes-login/src/main/java/org/jboss/labs/clearspace/LabsAuthenticationProvider.java 2008-06-26 08:46:53 UTC (rev 20791)
+++ labs/jbosslabs/labs-3.0-build/integration/cs-nukes-login/src/main/java/org/jboss/labs/clearspace/LabsAuthenticationProvider.java 2008-06-26 09:01:32 UTC (rev 20792)
@@ -6,7 +6,9 @@
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.List;
import java.util.concurrent.Callable;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -17,29 +19,34 @@
import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
import org.acegisecurity.userdetails.UserDetails;
import org.acegisecurity.userdetails.UserDetailsService;
+import org.springframework.context.ApplicationContext;
+import com.jivesoftware.base.User;
+import com.jivesoftware.base.UserAlreadyExistsException;
import com.jivesoftware.base.UserManager;
import com.jivesoftware.base.UserTemplate;
import com.jivesoftware.community.aaa.JiveUserDetails;
import com.jivesoftware.community.aaa.authz.SystemExecutor;
public class LabsAuthenticationProvider implements AuthenticationProvider {
-
+
private UserManager userManager;
private UserDetailsService userDetailsService;
-
- private String dbUserName = "portal";
- private String dbPass = "portalpassword";
- private String dbUrl = "jdbc:mysql://localhost:3306/nukes3";
+ private String dbUserName = null;
+ private String dbPass = null;
+ private String dbUrl = null;
+
protected com.jivesoftware.base.aaa.AuthenticationProvider jiveAuthProvider;
private final static Logger log = Logger
.getLogger(LabsAuthenticationProvider.class.getName());
+ private boolean migrationDone = false;
+
public LabsAuthenticationProvider() {
-
+
}
public Authentication authenticate(Authentication authentication)
@@ -149,7 +156,7 @@
e.printStackTrace();
}
}
-
+
return null;
} else {
@@ -222,27 +229,101 @@
public void setUserManager(UserManager userManager) {
this.userManager = userManager;
+ checkMigration();
}
public void setUserDetailsService(UserDetailsService userDetailsService) {
this.userDetailsService = userDetailsService;
+ checkMigration();
}
public void setJiveAuthProvider(
com.jivesoftware.base.aaa.AuthenticationProvider jiveAuthProvider) {
this.jiveAuthProvider = jiveAuthProvider;
+ checkMigration();
}
public void setDbUserName(String dbUserName) {
this.dbUserName = dbUserName;
+ checkMigration();
}
public void setDbPass(String dbPass) {
this.dbPass = dbPass;
+ checkMigration();
}
public void setDbUrl(String dbUrl) {
this.dbUrl = dbUrl;
+ checkMigration();
}
+ private void checkMigration() {
+ if (!migrationDone && userManager != null && userDetailsService != null
+ && jiveAuthProvider != null && dbPass != null && dbUrl != null
+ && dbUserName != null) {
+ if (System.getenv("MIGRATE_ALL_USERS") != null) {
+ Connection c = null;
+
+ try {
+ c = getConnection();
+
+ ResultSet rs = c.createStatement().executeQuery(
+ "SELECT * FROM nuke_users n ORDER BY n.pn_uname");
+
+ List<String> userNames = new ArrayList<String>();
+
+ for (User u : userManager.getUsers()) {
+ userNames.add(u.getUsername());
+ }
+
+ while (rs.next()) {
+ String username = null;
+ try {
+ username = rs.getObject("pn_uname").toString();
+
+ if (username.length() > 0
+ && !userNames.contains(username)) {
+
+ LabsUser nukeUser = new LabsUser(rs);
+
+ UserTemplate ut = new UserTemplate(username);
+ ut.setFederated(true);
+
+ ut = mapDetails(ut, nukeUser);
+ userManager.createApplicationUser(ut);
+
+ // try again to load the user from the details
+ // service, this time it should work
+ userDetailsService.loadUserByUsername(username);
+
+ log.info("Users " + username + " added");
+ }
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (UserAlreadyExistsException e) {
+ log.info("User "+username+" already exists");
+ }
+ }
+
+ migrationDone = true;
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } finally {
+ if (c != null) {
+ try {
+ c.close();
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ }
+
+ }
+ }
+ }
+
}
More information about the jboss-svn-commits
mailing list