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