[jboss-svn-commits] JBL Code SVN: r18694 - 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
Wed Mar 5 06:17:26 EST 2008


Author: adamw
Date: 2008-03-05 06:17:26 -0500 (Wed, 05 Mar 2008)
New Revision: 18694

Removed:
   labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/NukesConnector.java
   labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/UserInfo.java
Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/LabsLoginModule.java
Log:
Bringing back login

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	2008-03-05 11:08:00 UTC (rev 18693)
+++ labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/LabsLoginModule.java	2008-03-05 11:17:26 UTC (rev 18694)
@@ -23,6 +23,9 @@
 
 import java.security.Principal;
 import java.security.acl.Group;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.Statement;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -34,6 +37,7 @@
 import javax.security.auth.Subject;
 import javax.security.auth.callback.CallbackHandler;
 import javax.security.auth.login.LoginException;
+import javax.sql.DataSource;
 import javax.transaction.TransactionManager;
 
 import org.jboss.forge.common.ForgeHelper;
@@ -59,7 +63,6 @@
  *
  * @author <a href="mailto:julien at jboss.org">Julien Viet</a>
  * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
- * @author <a href="mailto:adam at warski.org">Adam Warski</a>
  */
 public class LabsLoginModule extends UsernamePasswordLoginModule {
 
@@ -69,6 +72,8 @@
 
     protected String havingRole;
 
+    protected String jbossDB;
+
     private static final String PASS_TOKEN = "AutoLoginToken.";
 
     private static final String TOKENIZER = "<!AutoLoginTokenizer!>";
@@ -80,8 +85,6 @@
     private UserProfileModule userProfileModule;
     private MembershipModule membershipModule;
 
-    private NukesConnector nukesConnector;
-
     public void initialize(Subject subject, CallbackHandler callbackHandler,
                            Map sharedState, Map options) {
         super.initialize(subject, callbackHandler, sharedState, options);
@@ -90,7 +93,7 @@
         userModuleJNDIName = (String) options.get("userModuleJNDIName");
         additionalRole = (String) options.get("additionalRole");
         havingRole = (String) options.get("havingRole");
-        String jbossDB = (String) options.get("jbossdb");
+        jbossDB = (String) options.get("jbossdb");
 
         try {
             userModule = (UserModule) new InitialContext().lookup("java:portal/UserModule");
@@ -106,8 +109,6 @@
         log.trace("additionalRole = " + additionalRole);
         log.trace("havingRole = " + havingRole);
         log.trace("jbossdb = " + jbossDB);
-
-        nukesConnector = new NukesConnector(jbossDB);
     }
 
     protected boolean validatePassword(String inputPassword,
@@ -204,22 +205,37 @@
     }
 
     private String checkIfPasswordChanged(User user) throws LoginException {
-        String password;
+        String password = null;
 
-        if (!"admin".equals(getUsername())) {
+        if (!getUsername().equals("admin")) {
             /*
                 * check if password in the main db changed (not for admin account)
                 */
             try {
-                password = nukesConnector.checkIfUserPasswordChanged(getUsername());
+                DataSource ds = (DataSource) new InitialContext()
+                        .lookup(jbossDB);
 
-                if (!user.validatePassword(password)) {
-                    /*
-                    * User user = userModule
-                    * .findUserByUserName(getUsername());
-                    */
-                    user.updatePassword(password);
+                Connection conn = ds.getConnection();
+
+                Statement st = conn.createStatement();
+
+                String sql = "SELECT * FROM nuke_users WHERE pn_uname='"
+                        + getUsername() + "';";
+
+                ResultSet rs = st.executeQuery(sql);
+
+                if (rs.next()) {
+                    if (!user.validatePassword(rs.getString("pn_pass"))) {
+                        /*
+                               * User user = userModule
+                               * .findUserByUserName(getUsername());
+                               */
+                        user.updatePassword(rs.getString("pn_pass"));
+                    }
+                    password = rs.getString("pn_pass");
                 }
+
+                conn.close();
             } catch (Exception e) {
                 log.error("Couldn't connect to nukes database", e);
                 throw new LoginException(e.toString());
@@ -244,39 +260,61 @@
                 * and user
                 */
 
-            try {
-                // System.out.println("Taking pass for user " +
-                // getUsername());
+            DataSource ds = (DataSource) new InitialContext().lookup(jbossDB);
 
-                UserInfo userInfo = nukesConnector.lookForNewUser(log, getUsername());
+            Connection conn = ds.getConnection();
 
-                if (userInfo == null) {
-                    return null;
-                }
+            Statement st = conn.createStatement();
 
-                User user = userModule.createUser(getUsername(), userInfo.getPass());
-                userProfileModule.setProperty(user, User.INFO_USER_EMAIL_REAL, userInfo.getEmail());
-                userProfileModule.setProperty(user, User.INFO_USER_EMAIL_FAKE, userInfo.getFemail());
-                userProfileModule.setProperty(user, User.INFO_USER_NAME_GIVEN, userInfo.getFname());
-                userProfileModule.setProperty(user, User.INFO_USER_NAME_FAMILY, userInfo.getLname());
-                userProfileModule.setProperty(user, User.INFO_USER_ENABLED, true);
+            log.debug("Looking for the user " + getUsername()
+                    + " in the JBoss Database");
 
-                log.info("User " + getUsername() + " added to Labs Database.");
+            String sql = "SELECT * FROM nuke_users WHERE pn_uname='"
+                    + getUsername() + "';";
 
-                // Add the user to the default
-                // user role
-                String defaultRole = "User";// getPortletConfig().getInitParameter(UserPortletConstants.DEFAULT_ROLE);
-                if (defaultRole != null) {
-                    Set roleSet = new HashSet();
-                    Role role = roleModule.findRoleByName(defaultRole);
-                    if (role != null) {
-                        roleSet.add(role);
-                        membershipModule.assignRoles(user, roleSet);
+            ResultSet rs = st.executeQuery(sql);
+
+            User user = null;
+
+            if (rs.next()) {
+                log.debug("User " + getUsername()
+                        + " found in the JBoss Database.");
+                try {
+                    // System.out.println("Taking pass for user " +
+                    // getUsername());
+
+                    user = userModule.createUser(getUsername(), rs
+                            .getString("pn_pass"));
+                    userProfileModule.setProperty(user, User.INFO_USER_EMAIL_REAL, rs.getString("pn_email"));
+                    userProfileModule.setProperty(user, User.INFO_USER_EMAIL_FAKE, rs.getString("pn_femail"));
+                    userProfileModule.setProperty(user, User.INFO_USER_NAME_GIVEN, rs.getString("pn_fname"));
+                    userProfileModule.setProperty(user, User.INFO_USER_NAME_FAMILY, rs.getString("pn_lname"));
+                    userProfileModule.setProperty(user, User.INFO_USER_ENABLED, true);
+
+                    log.info("User " + getUsername()
+                            + " added to Labs Database.");
+
+                    // Add the user to the default
+                    // user role
+                    String defaultRole = "User";// getPortletConfig().getInitParameter(UserPortletConstants.DEFAULT_ROLE);
+                    if (defaultRole != null) {
+                        Set roleSet = new HashSet();
+                        Role role = roleModule.findRoleByName(defaultRole);
+                        if (role != null) {
+                            roleSet.add(role);
+                            membershipModule.assignRoles(user, roleSet);
+                        } else {
+                            log
+                                    .error("The role you specified as default role does not exist, check your portlet configuration");
+                        }
                     } else {
-                        log.error("The role you specified as default role does not exist, check your portlet configuration");
+                        log
+                                .info("You didn't specify a default role in the portlet init configuration, please refer to the documentation");
                     }
-                } else {
-                    log.info("You didn't specify a default role in the portlet init configuration, please refer to the documentation");
+                } catch (IllegalArgumentException e) {
+                    log.error("Cannot create user " + getUsername(), e);
+
+                    throw new LoginException(e.toString());
                 }
 
                 if (user != null
@@ -286,15 +324,16 @@
                           * User has been just created and it's only in the defaule
                           * role.
                           */
-                    password = userInfo.getPass();
+                    password = rs.getString("pn_pass");
                 } else {
                     return null;
                 }
-            } catch (IllegalArgumentException e) {
-                log.error("Cannot create user " + getUsername(), e);
 
-                throw new LoginException(e.toString());
+            } else {
+                log.info("User " + getUsername()
+                        + " couldn't been found in the JBoss Database.");
             }
+            conn.close();
         } catch (Exception e) {
             log.error("Couldn't connect to nukes database", e);
             throw new LoginException(e.toString());

Deleted: labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/NukesConnector.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/NukesConnector.java	2008-03-05 11:08:00 UTC (rev 18693)
+++ labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/NukesConnector.java	2008-03-05 11:17:26 UTC (rev 18694)
@@ -1,102 +0,0 @@
-package org.jboss.labs.login;
-
-import org.jboss.logging.Logger;
-import org.jboss.portal.common.transaction.Transactions;
-
-import javax.sql.DataSource;
-import javax.naming.InitialContext;
-import javax.transaction.TransactionManager;
-import java.sql.Connection;
-import java.sql.Statement;
-import java.sql.ResultSet;
-
-/**
- * @author <a href="mailto:adam at warski.org">Adam Warski</a>
- */
-public class NukesConnector {
-    private String jbossDB;
-
-    public NukesConnector(String jbossDB) {
-        this.jbossDB = jbossDB;
-    }
-
-    public String checkIfUserPasswordChanged(final String username) throws Exception {
-        final TransactionManager tm = (TransactionManager) new InitialContext()
-                .lookup("java:/TransactionManager");
-
-        return (String) Transactions.requiresNew(tm,
-                new Transactions.Runnable() {
-                    public Object run() throws Exception {
-                        return checkIfUserPasswordChangedInternal(username);
-                    }
-                });
-    }
-
-    public UserInfo lookForNewUser(final Logger log, final String username) throws Exception {
-        final TransactionManager tm = (TransactionManager) new InitialContext()
-                        .lookup("java:/TransactionManager");
-
-                return (UserInfo) Transactions.requiresNew(tm,
-                new Transactions.Runnable() {
-                    public Object run() throws Exception {
-                        return lookForNewUserInternal(log, username);
-                    }
-                });
-    }
-
-    public String checkIfUserPasswordChangedInternal(String username) throws Exception {
-        DataSource ds = (DataSource) new InitialContext()
-                .lookup(jbossDB);
-
-        Connection conn = ds.getConnection();
-
-        Statement st = conn.createStatement();
-
-        String sql = "SELECT * FROM nuke_users WHERE pn_uname='"
-                + username + "';";
-
-        ResultSet rs = st.executeQuery(sql);
-
-        String password = null;
-        if (rs.next()) {
-            password = rs.getString("pn_pass");
-        }
-
-        conn.close();
-
-        return password;
-    }
-
-    public UserInfo lookForNewUserInternal(Logger log, String username) throws Exception {
-        DataSource ds = (DataSource) new InitialContext().lookup(jbossDB);
-
-        Connection conn = ds.getConnection();
-
-        Statement st = conn.createStatement();
-
-        log.debug("Looking for the user " + username
-                + " in the JBoss Database");
-
-        String sql = "SELECT * FROM nuke_users WHERE pn_uname='"
-                + username + "';";
-
-        ResultSet rs = st.executeQuery(sql);
-
-        UserInfo userInfo = null;
-        if (rs.next()) {
-            log.debug("User " + username + " found in the JBoss Database.");
-            // System.out.println("Taking pass for user " +
-            // getUsername());
-
-            userInfo = new UserInfo(rs.getString("pn_pass"), rs.getString("pn_email"),
-                    rs.getString("pn_femail"), rs.getString("pn_fname"), rs.getString("pn_lname"));
-
-        } else {
-            log.info("User " + username
-                    + " couldn't been found in the JBoss Database.");
-        }
-        conn.close();
-
-        return userInfo;
-    }
-}

Deleted: labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/UserInfo.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/UserInfo.java	2008-03-05 11:08:00 UTC (rev 18693)
+++ labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/UserInfo.java	2008-03-05 11:17:26 UTC (rev 18694)
@@ -1,40 +0,0 @@
-package org.jboss.labs.login;
-
-/**
- * @author <a href="mailto:adam at warski.org">Adam Warski</a>
- */
-public class UserInfo {
-    private String pass;
-    private String email;
-    private String femail;
-    private String fname;
-    private String lname;
-
-    public UserInfo(String pass, String email, String femail, String fname, String lname) {
-        this.pass = pass;
-        this.email = email;
-        this.femail = femail;
-        this.fname = fname;
-        this.lname = lname;
-    }
-
-    public String getPass() {
-        return pass;
-    }
-
-    public String getEmail() {
-        return email;
-    }
-
-    public String getFemail() {
-        return femail;
-    }
-
-    public String getFname() {
-        return fname;
-    }
-
-    public String getLname() {
-        return lname;
-    }
-}




More information about the jboss-svn-commits mailing list