Author: dimuthul
Date: Sat Jan 19 03:28:18 2008
New Revision: 12513

Log:

Structuring more. Added a Strategy pattern to make the DefaultRealm more 
uniform.
No functional changes.



Added:
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultStrategy.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/util/
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/util/DefaultDatabaseUtil.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/util/DefaultStrategyImpl.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/util/UUIDGenerator.java
Removed:
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultDatabaseUtil.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/SQLStorage.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/UUIDGenerator.java
Modified:
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/AccessControlAdmin.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/UserManagerConstants.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/UserManagerException.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultAccessControlAdmin.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultAuthenticator.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultAuthorizer.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultRealm.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultUserStoreAdmin.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultUserStoreReader.java
   
trunk/commons/usermanager/modules/core/src/test/java/org/wso2/usermanager/acl/realm/AuthorizingRealmTest.java
   
trunk/commons/usermanager/modules/core/src/test/java/org/wso2/usermanager/basic/jdbc/JDBCTest.java
   
trunk/commons/usermanager/modules/core/src/test/java/org/wso2/usermanager/pool/TestConnectionPool.java
   
trunk/commons/usermanager/modules/core/src/test/java/org/wso2/usermanager/readwrite/DefaultRealmTest.java

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/AccessControlAdmin.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/AccessControlAdmin.java
   (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/AccessControlAdmin.java
   Sat Jan 19 03:28:18 2008
@@ -1,7 +1,7 @@
 package org.wso2.usermanager;
 
 /**
- * Maniputes access control data in the user store
+ * Manipulates access control data in the user store
  */
 public interface AccessControlAdmin extends Authorizer{
     /**

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/UserManagerConstants.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/UserManagerConstants.java
 (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/UserManagerConstants.java
 Sat Jan 19 03:28:18 2008
@@ -1,5 +1,8 @@
 package org.wso2.usermanager;
 
+/**
+ *  UserManager Constants
+ */
 public class UserManagerConstants {
        
        public static final String USER_RESOURCE = "user";

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/UserManagerException.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/UserManagerException.java
 (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/UserManagerException.java
 Sat Jan 19 03:28:18 2008
@@ -18,7 +18,9 @@
 
 import org.wso2.usermanager.i18n.Messages;
 
-
+/**
+ * UserManagerException class. 
+ */
 public class UserManagerException extends Exception {
 
     private static final long serialVersionUID = 773062447392531899L;

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultAccessControlAdmin.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultAccessControlAdmin.java
  (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultAccessControlAdmin.java
  Sat Jan 19 03:28:18 2008
@@ -11,7 +11,11 @@
 import org.apache.commons.logging.LogFactory;
 import org.wso2.usermanager.AccessControlAdmin;
 import org.wso2.usermanager.UserManagerException;
+import org.wso2.usermanager.readwrite.util.UUIDGenerator;
 
+/**
+ * @see org.wso2.usermanager.AccessControlAdmin
+ */
 public class DefaultAccessControlAdmin
         extends DefaultAuthorizer implements AccessControlAdmin {
 
@@ -21,11 +25,11 @@
         super(dataSource, algo);
     }
     
-    public DefaultAccessControlAdmin(DataSource dataSource, String algo, 
SQLStorage store) {
+    public DefaultAccessControlAdmin(DataSource dataSource, String algo, 
DefaultStrategy store) {
         super(dataSource, algo, store);
     }
     
-    public DefaultAccessControlAdmin(DataSource dataSource, SQLStorage store) {
+    public DefaultAccessControlAdmin(DataSource dataSource, DefaultStrategy 
store) {
         super(dataSource, DefaultRealmConfig.PERMISSION_BLOCK_FIRST, store);
     }
 

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultAuthenticator.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultAuthenticator.java
       (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultAuthenticator.java
       Sat Jan 19 03:28:18 2008
@@ -7,14 +7,17 @@
 import java.sql.ResultSet;
 import java.sql.SQLException;
 
+import javax.sql.DataSource;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.wso2.usermanager.Authenticator;
 import org.wso2.usermanager.UserManagerException;
+import org.wso2.usermanager.readwrite.util.DefaultStrategyImpl;
 import org.wso2.usermanager.util.Base64;
-
-import javax.sql.DataSource;
-
+/**
+ * @see org.wso2.usermanager.Authenticator
+ */
 public class DefaultAuthenticator implements Authenticator {
 
     private static Log log = LogFactory.getLog(DefaultAuthenticator.class);
@@ -23,19 +26,19 @@
 
     protected DefaultRealm realm = null;
     
-    protected SQLStorage data = null;
+    protected DefaultStrategy data = null;
     
     public DefaultAuthenticator(DataSource dataSource) {
         this.dataSource = dataSource;
-        this.data = new SQLStorage(dataSource);
+        this.data = new DefaultStrategyImpl(dataSource);
     }
     
-    public DefaultAuthenticator(DataSource dataSource, SQLStorage store) {
+    public DefaultAuthenticator(DataSource dataSource, DefaultStrategy store) {
         this.dataSource = dataSource;
         if(store != null){
             this.data = store;
         }else{
-            this.data = new SQLStorage(dataSource);
+            this.data = new DefaultStrategyImpl(dataSource);
         }
     }
 
@@ -80,11 +83,11 @@
         return isAuth;
     }
 
-    public SQLStorage getData() {
+    public DefaultStrategy getData() {
         return data;
     }
 
-    public void setData(SQLStorage data) {
+    public void setData(DefaultStrategy data) {
         this.data = data;
     }
     

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultAuthorizer.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultAuthorizer.java
  (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultAuthorizer.java
  Sat Jan 19 03:28:18 2008
@@ -13,26 +13,27 @@
 import org.apache.commons.logging.LogFactory;
 import org.wso2.usermanager.Authorizer;
 import org.wso2.usermanager.UserManagerException;
+import org.wso2.usermanager.readwrite.util.DefaultStrategyImpl;
 
 public class DefaultAuthorizer implements Authorizer {
 
     protected DataSource dataSource = null;
-    protected SQLStorage data = null;
+    protected DefaultStrategy data = null;
     private static Log log = LogFactory.getLog(DefaultAuthorizer.class);
     private String algorithm = null;
     
     public DefaultAuthorizer(DataSource dataSource, String algo) {
         this.dataSource = dataSource;
-        this.data = new SQLStorage(dataSource);
+        this.data = new DefaultStrategyImpl(dataSource);
         this.algorithm = algo;
     }
 
-    public DefaultAuthorizer(DataSource dataSource, String algo, SQLStorage 
store) {
+    public DefaultAuthorizer(DataSource dataSource, String algo, 
DefaultStrategy strategy) {
         this.dataSource = dataSource;
-        if(store != null){
-            this.data = store;
+        if(strategy != null){
+            this.data = strategy;
         }else{
-            this.data = new SQLStorage(dataSource);
+            this.data = new DefaultStrategyImpl(dataSource);
         }
         this.algorithm = algo;
     }
@@ -322,11 +323,11 @@
         return result;
     }
 
-    public SQLStorage getData() {
+    public DefaultStrategy getData() {
         return data;
     }
 
-    public void setData(SQLStorage data) {
+    public void setData(DefaultStrategy data) {
         this.data = data;
     }
     

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultRealm.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultRealm.java
       (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultRealm.java
       Sat Jan 19 03:28:18 2008
@@ -18,6 +18,8 @@
 
 import java.sql.Driver;
 
+import javax.sql.DataSource;
+
 import org.apache.commons.dbcp.BasicDataSource;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -28,8 +30,7 @@
 import org.wso2.usermanager.UserManagerException;
 import org.wso2.usermanager.UserStoreAdmin;
 import org.wso2.usermanager.UserStoreReader;
-
-import javax.sql.DataSource;
+import org.wso2.usermanager.readwrite.util.DefaultStrategyImpl;
 
 public class DefaultRealm implements Realm {
 
@@ -49,7 +50,7 @@
 
     protected DataSource dataSource = null;
     
-    protected SQLStorage sqlStore = null;
+    protected DefaultStrategyImpl strategyObject = null;
     
     private static Log log = LogFactory.getLog(DefaultRealm.class);
 
@@ -83,15 +84,14 @@
             dataSource = config.getDataSource();
         }
 
-        UUIDGenerator.getInitialUUID();
-
-        authenticator = new DefaultAuthenticator(dataSource, sqlStore);
+      
+        authenticator = new DefaultAuthenticator(dataSource, strategyObject);
         authorizer = new DefaultAuthorizer(dataSource, config
-                .getPermissionAlgo(), sqlStore);
+                .getPermissionAlgo(), strategyObject);
         aclAdmin = new DefaultAccessControlAdmin(dataSource, config
-                .getPermissionAlgo(), sqlStore);
-        usAdmin = new DefaultUserStoreAdmin(dataSource, sqlStore);
-        usReader = new DefaultUserStoreReader(dataSource, sqlStore);
+                .getPermissionAlgo(), strategyObject);
+        usAdmin = new DefaultUserStoreAdmin(dataSource, strategyObject);
+        usReader = new DefaultUserStoreReader(dataSource, strategyObject);
 
     }
 
@@ -124,13 +124,7 @@
         this.dataSource = dataSource;
     }
 
-    public SQLStorage getSqlStore() {
-        return sqlStore;
-    }
-
-    public void setSqlStore(SQLStorage sqlStore) {
-        this.sqlStore = sqlStore;
-    }
+ 
     
     
 

Added: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultStrategy.java
==============================================================================
--- (empty file)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultStrategy.java
    Sat Jan 19 03:28:18 2008
@@ -0,0 +1,34 @@
+package org.wso2.usermanager.readwrite;
+
+import org.wso2.usermanager.UserManagerException;
+
+/**
+ * Strategy pattern.
+ * Following methods dominate how the DefaultRealm behaves.
+ * This enables different types of Realms to be written.
+ * For example users can be pulled out from tables with differnt names.\
+ * Sample implementation is WSASRealm.
+ */
+public interface DefaultStrategy {
+
+    public String getColumnName(int columnID);
+
+    public String getAuthenticatorSQL(int sqlID);
+
+    public String getUserStoreAdminSQL(int sqlID);
+
+    public String getCommonSQL(int sqlID);
+
+    public String getAccessControlAdminSQL(int sqlID);
+
+    public String getAuthorizerSQL(int sqlID);
+
+    public String getUserStoreReaderSQL(int sqlID);
+
+    public String getUserId(String userName) throws UserManagerException;
+
+    public String getRoleId(String roleName) throws UserManagerException;
+
+    public String[] getUserRoles(String userName) throws UserManagerException;
+
+}

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultUserStoreAdmin.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultUserStoreAdmin.java
      (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultUserStoreAdmin.java
      Sat Jan 19 03:28:18 2008
@@ -10,14 +10,15 @@
 import java.util.Map;
 import java.util.Map.Entry;
 
+import javax.sql.DataSource;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.wso2.usermanager.UserManagerException;
 import org.wso2.usermanager.UserStoreAdmin;
+import org.wso2.usermanager.readwrite.util.UUIDGenerator;
 import org.wso2.usermanager.util.Base64;
 
-import javax.sql.DataSource;
-
 public class DefaultUserStoreAdmin
         extends DefaultUserStoreReader implements UserStoreAdmin {
 
@@ -27,7 +28,7 @@
         super(dataSource);
     }
 
-    public DefaultUserStoreAdmin(DataSource dataSource, SQLStorage store) {
+    public DefaultUserStoreAdmin(DataSource dataSource, DefaultStrategy store) 
{
         super(dataSource, store);
     }
 

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultUserStoreReader.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultUserStoreReader.java
     (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultUserStoreReader.java
     Sat Jan 19 03:28:18 2008
@@ -10,31 +10,32 @@
 import java.util.List;
 import java.util.Map;
 
+import javax.sql.DataSource;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.wso2.usermanager.UserManagerException;
 import org.wso2.usermanager.UserStoreReader;
-
-import javax.sql.DataSource;
+import org.wso2.usermanager.readwrite.util.DefaultStrategyImpl;
 
 public class DefaultUserStoreReader implements UserStoreReader {
 
     private static Log log = LogFactory.getLog(DefaultUserStoreReader.class);
 
     protected DataSource dataSource = null;
-    protected SQLStorage data = null;
+    protected DefaultStrategy data = null;
     
     public DefaultUserStoreReader(DataSource dataSource) {
         this.dataSource = dataSource;
-        this.data = new SQLStorage(dataSource);
+        this.data = new DefaultStrategyImpl(dataSource);
     }
 
-    public DefaultUserStoreReader(DataSource dataSource, SQLStorage store) {
+    public DefaultUserStoreReader(DataSource dataSource, DefaultStrategy 
store) {
         this.dataSource = dataSource;
         if(store != null){
             this.data = store;
         }else{
-            this.data = new SQLStorage(dataSource);
+            this.data = new DefaultStrategyImpl(dataSource);
         }
     }
     
@@ -312,13 +313,7 @@
         return names;
     }
 
-    public SQLStorage getData() {
-        return data;
-    }
-
-    public void setData(SQLStorage data) {
-        this.data = data;
-    }
+    
     
     
 }

Added: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/util/DefaultDatabaseUtil.java
==============================================================================
--- (empty file)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/util/DefaultDatabaseUtil.java
   Sat Jan 19 03:28:18 2008
@@ -0,0 +1,83 @@
+package org.wso2.usermanager.readwrite.util;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import org.wso2.usermanager.UserManagerException;
+
+
+public class DefaultDatabaseUtil {
+     
+    public static  String userTable = "CREATE TABLE UM_USERS (ID VARCHAR(255),"
+            + " USER_NAME VARCHAR(255) NOT NULL,"
+            + " PASSWORD VARCHAR(255) NOT NULL,"
+            + " UNIQUE (USER_NAME),"
+            + " PRIMARY KEY (ID))";
+
+    public static  String userAttributeTable = "CREATE TABLE 
UM_USER_ATTRIBUTES (ID VARCHAR(255),"
+            + " ATTR_NAME VARCHAR(255) NOT NULL,"
+            + " ATTR_VALUE VARCHAR(255),"
+            + " USER_ID VARCHAR(255),"
+            + " FOREIGN KEY (USER_ID) REFERENCES UM_USERS(ID) ON DELETE 
CASCADE,"
+            + " PRIMARY KEY (ID))";
+
+    public static  String roleTable = "CREATE TABLE UM_ROLES (ID VARCHAR(255),"
+            + " ROLE_NAME VARCHAR(255) NOT NULL," 
+            + " UNIQUE (ROLE_NAME),"
+            + " PRIMARY KEY (ID))";
+
+    public static  String roleAttributeTable = "CREATE TABLE 
UM_ROLE_ATTRIBUTES (ID VARCHAR(255),"
+            + " ATTR_NAME VARCHAR(255) NOT NULL,"
+            + " ATTR_VALUE VARCHAR(255),"
+            + " ROLE_ID VARCHAR(255),"
+            + " FOREIGN KEY (ROLE_ID) REFERENCES UM_ROLES(ID) ON DELETE 
CASCADE," 
+            + " PRIMARY KEY (ID))";
+
+    public static  String permissionTable = "CREATE TABLE UM_PERMISSIONS (ID 
VARCHAR(255),"
+            + " RESOURCE_ID VARCHAR(255) NOT NULL,"
+            + " ACTION VARCHAR(255) NOT NULL," 
+            + " PRIMARY KEY (ID))";
+
+    public static  String rolePermissionTable = "CREATE TABLE 
UM_ROLE_PERMISSIONS (ID VARCHAR(255),"
+            + " PERMISSION_ID VARCHAR(255) NOT NULL,"
+            + " ROLE_ID VARCHAR(255) NOT NULL,"
+            + " IS_ALLOWED SMALLINT NOT NULL,"
+            + " FOREIGN KEY (PERMISSION_ID) REFERENCES UM_PERMISSIONS(ID) ON 
DELETE  CASCADE,"
+            + " FOREIGN KEY (ROLE_ID) REFERENCES UM_ROLES(ID) ON DELETE 
CASCADE,"
+            + " UNIQUE (PERMISSION_ID, ROLE_ID),"
+            + " PRIMARY KEY (ID))";
+
+   
+    public static  String userPermissionTable = "CREATE TABLE 
UM_USER_PERMISSIONS (ID VARCHAR(255),"
+            + " IS_ALLOWED SMALLINT NOT NULL,"
+            + " PERMISSION_ID VARCHAR(255) NOT NULL,"
+            + " USER_ID VARCHAR(255) NOT NULL,"
+            + " FOREIGN KEY (PERMISSION_ID) REFERENCES UM_PERMISSIONS(ID) ON 
DELETE CASCADE,"
+            + " FOREIGN KEY (USER_ID) REFERENCES UM_USERS(ID) ON DELETE 
CASCADE,"
+            + " UNIQUE (PERMISSION_ID, USER_ID),"
+            + " PRIMARY KEY (ID))";
+    
+    public static  String userRolesTable = "CREATE TABLE UM_USER_ROLES (ID 
VARCHAR(255),"
+        + " ROLE_ID VARCHAR(255) NOT NULL,"
+        + " USER_ID VARCHAR(255) NOT NULL,"
+        + " FOREIGN KEY (ROLE_ID) REFERENCES UM_ROLES(ID) ON DELETE CASCADE,"
+        + " FOREIGN KEY (USER_ID) REFERENCES UM_USERS(ID) ON DELETE CASCADE,"
+        + " UNIQUE (USER_ID, ROLE_ID),"
+        + " PRIMARY KEY (ID))";
+
+    public static void createDatabase(Connection conn) throws SQLException, 
UserManagerException {
+      
+        Statement s = conn.createStatement();
+        s.executeUpdate(userTable);
+        s.executeUpdate(roleTable);
+        s.executeUpdate(userAttributeTable);
+        s.executeUpdate(roleAttributeTable);
+        s.executeUpdate(permissionTable);
+        s.executeUpdate(rolePermissionTable); 
+        s.executeUpdate(userPermissionTable);
+        s.executeUpdate(userRolesTable);
+        conn.commit();
+       
+    }
+}

Added: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/util/DefaultStrategyImpl.java
==============================================================================
--- (empty file)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/util/DefaultStrategyImpl.java
   Sat Jan 19 03:28:18 2008
@@ -0,0 +1,354 @@
+package org.wso2.usermanager.readwrite.util;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.sql.DataSource;
+
+import org.wso2.usermanager.UserManagerException;
+import org.wso2.usermanager.readwrite.DefaultRealmConstants;
+import org.wso2.usermanager.readwrite.DefaultStrategy;
+
+/**
+ * Represents the user store. If you change this object it will change the way
+ * the DefaultRealmBehaves.
+ */
+public class DefaultStrategyImpl implements DefaultStrategy{
+
+    protected DataSource dataSource = null;
+    
+    public DefaultStrategyImpl(DataSource dataSource){
+        this.dataSource = dataSource;
+    }
+    
+    public DefaultStrategyImpl(){
+    
+    }
+    
+    public String getColumnName(int columnID) {
+        String sqlString = null;
+        switch (columnID) {
+        case DefaultRealmConstants.COLUMN_ID_ATTR_NAME:
+            sqlString = DefaultRealmConstants.COLUMN_NAME_ATTR_NAME;
+            break;
+        case DefaultRealmConstants.COLUMN_ID_ATTR_VALUE:
+            sqlString = DefaultRealmConstants.COLUMN_NAME_ATTR_VALUE;
+            break;
+        case DefaultRealmConstants.COLUMN_ID_ID:
+            sqlString = DefaultRealmConstants.COLUMN_NAME_ID;
+            break;
+        case DefaultRealmConstants.COLUMN_ID_USER_NAME:
+            sqlString = DefaultRealmConstants.COLUMN_NAME_USER_NAME;
+            break;
+        case DefaultRealmConstants.COLUMN_ID_ROLE_NAME:
+            sqlString = DefaultRealmConstants.COLUMN_NAME_ROLE_NAME;
+            break;
+        case DefaultRealmConstants.COLUMN_ID_ROLE_ID:
+            sqlString = DefaultRealmConstants.COLUMN_NAME_ROLE_ID;
+            break;
+        case DefaultRealmConstants.COLUMN_ID_USER_ID:
+            sqlString = DefaultRealmConstants.COLUMN_NAME_USER_ID;
+            break;
+        case DefaultRealmConstants.COLUMN_ID_IS_ALLOWED:
+            sqlString = DefaultRealmConstants.COLUMN_NAME_IS_ALLOWED;
+            break;
+        case DefaultRealmConstants.COLUMN_ID_CREDENTIAL:
+            sqlString = DefaultRealmConstants.COLUMN_NAME_CREDENTIAL;
+            break;
+        case DefaultRealmConstants.COLUMN_ID_ACTION:
+            sqlString = DefaultRealmConstants.COLUMN_NAME_ACTION;
+            break;
+        default:
+            System.out.println("Null");
+            break;
+        }
+        return sqlString;
+
+    }
+    
+    public String getAuthenticatorSQL(int sqlID){
+        String sqlString = null;
+        switch (sqlID) {
+        case DefaultRealmConstants.GET_USER:
+        sqlString = DefaultRealmConstants.GET_USER_SQL;
+        break;
+        default:
+            System.out.println("Null");
+            break;
+        }
+        return sqlString;
+    }
+    
+    
+    public String getUserStoreAdminSQL(int sqlID) {
+        String sqlString = null;
+        switch (sqlID) {
+        case DefaultRealmConstants.ADD_USER:
+            sqlString = DefaultRealmConstants.ADD_USER_SQL;
+            break;
+        case DefaultRealmConstants.ADD_ROLE:
+            sqlString = DefaultRealmConstants.ADD_ROLE_SQL;
+            break;
+        case DefaultRealmConstants.ADD_USER_ROLE:
+            sqlString = DefaultRealmConstants.ADD_USER_ROLE_SQL;
+            break;
+        case DefaultRealmConstants.ADD_USER_ATTRIBUTE:
+            sqlString = DefaultRealmConstants.ADD_USER_ATTRIBUTE_SQL;
+            break;
+        case DefaultRealmConstants.ADD_ROLE_ATTRIBUTE:
+            sqlString = DefaultRealmConstants.ADD_ROLE_ATTRIBUTE_SQL;
+            break;
+        case DefaultRealmConstants.UPDATE_USER:
+            sqlString = DefaultRealmConstants.UPDATE_USER_SQL;
+            break;
+        case DefaultRealmConstants.DELETE_USER:
+            sqlString = DefaultRealmConstants.DELETE_USER_SQL;
+            break;
+        case DefaultRealmConstants.DELETE_ROLE:
+            sqlString = DefaultRealmConstants.DELETE_ROLE_SQL;
+            break;
+        case DefaultRealmConstants.DELETE_USER_ROLE:
+            sqlString = DefaultRealmConstants.DELETE_USER_ROLE_SQL;
+            break;
+        case DefaultRealmConstants.DELETE_ROLE_ATTRIBUTE:
+            sqlString = DefaultRealmConstants.DELETE_ROLE_ATTRIBUTE_SQL;
+            break;
+        case DefaultRealmConstants.DELETE_USER_ATTRIBUTE:
+            sqlString = DefaultRealmConstants.DELETE_USER_ATTRIBUTE_SQL;
+            break;
+        case DefaultRealmConstants.GET_ROLE:
+            sqlString = DefaultRealmConstants.GET_ROLE_SQL;
+            break;
+        default:
+            System.out.println("Null");
+            break;
+        }
+        return sqlString;
+    }
+
+    public String getCommonSQL(int sqlID) {
+        String sqlString = null;
+        switch (sqlID) {
+        case DefaultRealmConstants.GET_USER_ID:
+            sqlString = DefaultRealmConstants.GET_USER_ID_SQL;
+            break;
+        case DefaultRealmConstants.GET_ROLE_ID:
+            sqlString = DefaultRealmConstants.GET_ROLE_ID_SQL;
+            break;
+        case DefaultRealmConstants.GET_USER_ROLES:
+            sqlString = DefaultRealmConstants.GET_USER_ROLES_SQL;
+            break;
+        default:
+            System.out.println("Null");
+            break;
+        }
+        return sqlString;
+    }
+
+    public String getAccessControlAdminSQL(int sqlID) {
+        String sqlString = null;
+        switch (sqlID) {
+        case DefaultRealmConstants.ADD_PERMISSION:
+            sqlString = DefaultRealmConstants.ADD_PERMISSION_SQL;
+            break;
+        case DefaultRealmConstants.ADD_ROLE_PERMISSION:
+            sqlString = DefaultRealmConstants.ADD_ROLE_PERMISSION_SQL;
+            break;
+        case DefaultRealmConstants.ADD_USER_PERMISSION:
+            sqlString = DefaultRealmConstants.ADD_USER_PERMISSION_SQL;
+            break;
+
+        case DefaultRealmConstants.DELETE_PERMISSION_ON_RESOURCE:
+            sqlString = 
DefaultRealmConstants.DELETE_PERMISSION_ON_RESOURCE_SQL;
+            break;
+        case DefaultRealmConstants.DELETE_USER_PERMISSION:
+            sqlString = DefaultRealmConstants.DELETE_USER_PERMISSION_SQL;
+            break;
+        case DefaultRealmConstants.DELETE_ROLE_PERMISSION:
+            sqlString = DefaultRealmConstants.DELETE_ROLE_PERMISSION_SQL;
+            break;
+
+
+
+        default:
+            break;
+        }
+        return sqlString;
+    }
+
+    public String getAuthorizerSQL(int sqlID) {
+        String sqlString = null;
+        switch (sqlID) {
+
+        case DefaultRealmConstants.GET_PERMISSION:
+            sqlString = DefaultRealmConstants.GET_PERMISSION_SQL;
+            break;
+        case DefaultRealmConstants.GET_ROLE_AUTHORIZED:
+            sqlString = DefaultRealmConstants.GET_ROLE_AUTHORIZED_SQL;
+            break;
+        case DefaultRealmConstants.GET_USER_AUTHORIZED:
+            sqlString = DefaultRealmConstants.GET_USER_AUTHORIZED_SQL;
+            break;
+        case DefaultRealmConstants.GET_ALLOWED_ROLES_FOR_RESOURCE:
+            sqlString = 
DefaultRealmConstants.GET_ALLOWED_ROLES_FOR_RESOURCE_SQL;
+            break;
+        case DefaultRealmConstants.GET_DENIED_ROLES_FOR_RESOURCE:
+            sqlString = 
DefaultRealmConstants.GET_DENIED_ROLES_FOR_RESOURCE_SQL;
+            break;
+        case DefaultRealmConstants.GET_ALLOWED_USERS_ON_RESOURCE:
+            sqlString = 
DefaultRealmConstants.GET_ALLOWED_USERS_ON_RESOURCE_SQL;
+            break;
+        case DefaultRealmConstants.GET_DENIED_USERS_ON_RESOURCE:
+            sqlString = DefaultRealmConstants.GET_DENIED_USERS_ON_RESOURCE_SQL;
+            break;
+        case DefaultRealmConstants.GET_ROLE_PERMISSION:
+            sqlString = DefaultRealmConstants.GET_ROLE_PERMISSION_SQL;
+            break;
+        case DefaultRealmConstants.GET_USER_PERMISSION:
+            sqlString = DefaultRealmConstants.GET_USER_PERMISSION_SQL;
+            break;
+        case DefaultRealmConstants.GET_RESOURCE_PERMISSION:
+            sqlString = DefaultRealmConstants.GET_RESOURCE_PERMISSION_SQL;
+            break;
+        default:
+            break;
+        }
+        return sqlString;
+    }
+
+    public String getUserStoreReaderSQL(int sqlID) {
+        String sqlString = null;
+        switch (sqlID) {
+        case DefaultRealmConstants.GET_USER_ROLES:
+            sqlString = DefaultRealmConstants.GET_USER_ROLES_SQL;
+            break;
+        case DefaultRealmConstants.GET_ROLE_ATTRIBUTES:
+            sqlString = DefaultRealmConstants.GET_ROLE_ATTRIBUTES_SQL;
+            break;
+        case DefaultRealmConstants.GET_USER_ATTRIBUTES:
+            sqlString = DefaultRealmConstants.GET_USER_ATTRIBUTES_SQL;
+            break;
+        case DefaultRealmConstants.GET_ATTRIBUTE_NAMES:
+            sqlString = DefaultRealmConstants.GET_ATTRIBUTE_NAMES_SQL;
+            break;
+        case DefaultRealmConstants.GET_USERS_IN_ROLE:
+            sqlString = DefaultRealmConstants.GET_USERS_IN_ROLE_SQL;
+            break;
+        case DefaultRealmConstants.GET_USERS_WITH_PROPERTY:
+            sqlString = DefaultRealmConstants.GET_USERS_WITH_PROPERTY_SQL;
+            break;
+        case DefaultRealmConstants.GET_USERS_WITH_PROPERTY_VALUE:
+            sqlString = 
DefaultRealmConstants.GET_USERS_WITH_PROPERTY_VALUE_SQL;
+            break;
+        case DefaultRealmConstants.GET_USERS_ALL:
+            sqlString = DefaultRealmConstants.GET_USERS_ALL_SQL;
+            break;
+        case DefaultRealmConstants.GET_ROLES_ALL:
+            sqlString = DefaultRealmConstants.GET_ROLES_ALL_SQL;
+            break;
+        default:
+            break;
+        }
+        return sqlString;
+    }
+    
+    public String getUserId(String userName) throws UserManagerException {
+        String id = null;
+        Connection dbConnection = null;
+        try {
+            dbConnection = dataSource.getConnection();
+            if (dbConnection == null) {
+                throw new UserManagerException("null_connection");
+            }
+            PreparedStatement getUserIdStmt = dbConnection
+                    
.prepareStatement(this.getCommonSQL(DefaultRealmConstants.GET_USER_ID));
+            getUserIdStmt.setString(1, userName);
+            ResultSet rs = getUserIdStmt.executeQuery();
+            if (rs.next()) {
+                id = 
rs.getString(this.getColumnName(DefaultRealmConstants.COLUMN_ID_ID));
+            }
+            getUserIdStmt.close();
+        } catch (SQLException e) {
+            throw new UserManagerException("errorReadingFromUserStore", e);
+        } finally {
+            try {
+                if(dbConnection != null){
+                    dbConnection.close();
+                }
+            } catch (SQLException e) {
+                throw new UserManagerException("errorClosingConnection",e);
+            }
+        }
+        return id;
+    }
+
+    public String getRoleId(String roleName) throws UserManagerException {
+        String id = null;
+        Connection dbConnection = null;
+        try {
+            dbConnection = dataSource.getConnection();
+            if (dbConnection == null) {
+                throw new UserManagerException("null_connection");
+            }
+            PreparedStatement getRolIdStmt = dbConnection
+                    
.prepareStatement(this.getCommonSQL(DefaultRealmConstants.GET_ROLE_ID));
+            getRolIdStmt.setString(1, roleName);
+            ResultSet rs = getRolIdStmt.executeQuery();
+            if (rs.next()) {
+                id = 
rs.getString(this.getColumnName(DefaultRealmConstants.COLUMN_ID_ID));
+            }
+            
+            getRolIdStmt.close();
+        } catch (SQLException e) {
+            throw new UserManagerException("errorReadingFromUserStore", e);
+        } finally {
+            try {
+                if(dbConnection != null){
+                    dbConnection.close();
+                }
+            } catch (SQLException e) {
+                throw new UserManagerException("errorClosingConnection",e);
+            }
+        }
+        return id;
+    }
+    
+    
+    public String[] getUserRoles(String userName) throws UserManagerException {
+        String[] names = new String[0];
+        Connection dbConnection = null;
+        try {
+            dbConnection = dataSource.getConnection();
+            if (dbConnection == null) {
+                throw new UserManagerException("null_connection");
+            }
+            PreparedStatement getUserRolesStmt = 
dbConnection.prepareStatement(this.getCommonSQL(DefaultRealmConstants.GET_USER_ROLES));
+            getUserRolesStmt.setString(1, userName);
+            ResultSet rs = getUserRolesStmt.executeQuery();
+            List lst = new LinkedList();
+            String colName = 
this.getColumnName(DefaultRealmConstants.COLUMN_ID_ROLE_NAME);
+            while (rs.next()) {
+                lst.add(rs.getString(colName));
+            }
+            if (lst.size() > 0) {
+                names = (String[]) lst.toArray(new String[lst.size()]);
+            }
+            getUserRolesStmt.close();
+        } catch (SQLException e) {
+            throw new UserManagerException("errorReadingFromUserStore", e);
+        } finally {
+            try {
+                if(dbConnection != null){
+                    dbConnection.close();
+                }
+            } catch (SQLException e) {
+                throw new UserManagerException("errorClosingConnection",e);
+            }
+        }
+        return names;
+    } 
+}

Added: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/util/UUIDGenerator.java
==============================================================================
--- (empty file)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/util/UUIDGenerator.java
 Sat Jan 19 03:28:18 2008
@@ -0,0 +1,107 @@
+package org.wso2.usermanager.readwrite.util;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.Date;
+import java.util.Random;
+
+public class UUIDGenerator {
+    /** This class will give UUIDs for axis2. */
+
+    private static String baseUUID = null;
+    private static long incrementingValue = 0;
+
+
+    private static Random myRand = null;
+
+    /**
+     * MD5 a random string with localhost/date etc will return 128 bits 
construct a string of 18
+     * characters from those bits.
+     *
+     * @return string
+     */
+    public static synchronized String getUUID() {
+        if (baseUUID == null) {
+            baseUUID = getInitialUUID();
+            baseUUID = "urn:uuid:" + baseUUID;
+        }
+        if (++incrementingValue >= Long.MAX_VALUE) {
+            incrementingValue = 0;
+        }
+        return baseUUID + (System.currentTimeMillis() + incrementingValue);
+    }
+
+    protected static String getInitialUUID() {
+        if (myRand == null) {
+            myRand = new Random();
+        }
+        long rand = myRand.nextLong();
+        String sid;
+        try {
+            sid = InetAddress.getLocalHost().toString();
+        } catch (UnknownHostException e) {
+            sid = Thread.currentThread().getName();
+        }
+        StringBuffer sb = new StringBuffer();
+        sb.append(sid);
+        sb.append(":");
+        sb.append(Long.toString(rand));
+        MessageDigest md5 = null;
+        try {
+            md5 = MessageDigest.getInstance("MD5");
+        } catch (NoSuchAlgorithmException e) {
+            //System.out.println("Error: " + e);
+            //todo heve to be properly handle
+        }
+        md5.update(sb.toString().getBytes());
+        byte[] array = md5.digest();
+        StringBuffer sb2 = new StringBuffer();
+        for (int j = 0; j < array.length; ++j) {
+            int b = array[j] & 0xFF;
+            sb2.append(Integer.toHexString(b));
+        }
+        int begin = myRand.nextInt();
+        if (begin < 0) begin = begin * -1;
+        begin = begin % 8;
+        return sb2.toString().substring(begin, begin + 18).toUpperCase();
+    }
+
+    public static void main(String[] args) {
+        long startTime = new Date().getTime();
+        for (int i = 0; i < 100000; i++) {
+            UUIDGenerator.getInitialUUID();
+        }
+        long endTime = new Date().getTime();
+        System.out.println("getInitialUUID Difference = " + (endTime - 
startTime));
+
+        startTime = new Date().getTime();
+        for (int i = 0; i < 100000; i++) {
+            UUIDGenerator.getUUID();
+        }
+        endTime = new Date().getTime();
+        System.out.println("getUUID Difference = " + (endTime - startTime));
+    }
+}
+

Modified: 
trunk/commons/usermanager/modules/core/src/test/java/org/wso2/usermanager/acl/realm/AuthorizingRealmTest.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/test/java/org/wso2/usermanager/acl/realm/AuthorizingRealmTest.java
       (original)
+++ 
trunk/commons/usermanager/modules/core/src/test/java/org/wso2/usermanager/acl/realm/AuthorizingRealmTest.java
       Sat Jan 19 03:28:18 2008
@@ -12,9 +12,9 @@
 import org.wso2.usermanager.UserManagerException;
 import org.wso2.usermanager.UserStoreAdmin;
 import org.wso2.usermanager.UserStoreReader;
-import org.wso2.usermanager.readwrite.DefaultDatabaseUtil;
 import org.wso2.usermanager.readwrite.DefaultRealm;
 import org.wso2.usermanager.readwrite.DefaultRealmConfig;
+import org.wso2.usermanager.readwrite.util.DefaultDatabaseUtil;
 
 public class AuthorizingRealmTest extends TestCase {
 

Modified: 
trunk/commons/usermanager/modules/core/src/test/java/org/wso2/usermanager/basic/jdbc/JDBCTest.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/test/java/org/wso2/usermanager/basic/jdbc/JDBCTest.java
  (original)
+++ 
trunk/commons/usermanager/modules/core/src/test/java/org/wso2/usermanager/basic/jdbc/JDBCTest.java
  Sat Jan 19 03:28:18 2008
@@ -54,6 +54,11 @@
         config.setColumnNames("status,username,pass");
    
         realm.init(config);
+        
+   
+        
+        
+        
     }
 
     protected void tearDown() throws Exception {

Modified: 
trunk/commons/usermanager/modules/core/src/test/java/org/wso2/usermanager/pool/TestConnectionPool.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/test/java/org/wso2/usermanager/pool/TestConnectionPool.java
      (original)
+++ 
trunk/commons/usermanager/modules/core/src/test/java/org/wso2/usermanager/pool/TestConnectionPool.java
      Sat Jan 19 03:28:18 2008
@@ -7,9 +7,9 @@
 import junit.framework.TestCase;
 
 import org.wso2.usermanager.Realm;
-import org.wso2.usermanager.readwrite.DefaultDatabaseUtil;
 import org.wso2.usermanager.readwrite.DefaultRealm;
 import org.wso2.usermanager.readwrite.DefaultRealmConfig;
+import org.wso2.usermanager.readwrite.util.DefaultDatabaseUtil;
 
 public class TestConnectionPool extends TestCase {
     

Modified: 
trunk/commons/usermanager/modules/core/src/test/java/org/wso2/usermanager/readwrite/DefaultRealmTest.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/test/java/org/wso2/usermanager/readwrite/DefaultRealmTest.java
   (original)
+++ 
trunk/commons/usermanager/modules/core/src/test/java/org/wso2/usermanager/readwrite/DefaultRealmTest.java
   Sat Jan 19 03:28:18 2008
@@ -32,6 +32,7 @@
 import org.wso2.usermanager.UserManagerException;
 import org.wso2.usermanager.UserStoreAdmin;
 import org.wso2.usermanager.UserStoreReader;
+import org.wso2.usermanager.readwrite.util.DefaultDatabaseUtil;
 
 public class DefaultRealmTest extends TestCase {
 

_______________________________________________
Commons-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/commons-dev

Reply via email to