[Registry-dev] svn commit r14564 - in
trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def:
. util
svn at wso2.org
svn at wso2.org
Thu Mar 6 21:51:52 PST 2008
Author: dimuthul
Date: Thu Mar 6 21:51:42 2008
New Revision: 14564
Log:
Removing the dependency on DefaultDataSupplierImpl.java
Initially this interface was added with the intention of code reuse.
But with time it proved to be less effective.
Leaving it out makes more simple code.
Removed:
trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/util/DefaultDataSupplierImpl.java
Modified:
trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultAccessControlAdmin.java
trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultAuthenticator.java
trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultAuthorizer.java
trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultRealm.java
trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultRealmConstants.java
trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultUserStoreAdmin.java
trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultUserStoreReader.java
trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/util/DefaultDatabaseUtil.java
Modified: trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultAccessControlAdmin.java
==============================================================================
--- trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultAccessControlAdmin.java (original)
+++ trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultAccessControlAdmin.java Thu Mar 6 21:51:42 2008
@@ -41,14 +41,10 @@
super(dataSource, algo);
}
- public DefaultAccessControlAdmin(DataSource dataSource, String algo,
- DefaultDataSupplier store) {
- super(dataSource, algo, store);
- }
+
- public DefaultAccessControlAdmin(DataSource dataSource,
- DefaultDataSupplier store) {
- super(dataSource, DefaultRealmConfig.PERMISSION_BLOCK_FIRST, store);
+ public DefaultAccessControlAdmin(DataSource dataSource) {
+ super(dataSource, DefaultRealmConfig.PERMISSION_BLOCK_FIRST);
}
public void clearUserAuthorization(String userName, String resourceId,
@@ -62,24 +58,21 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement getPermission = dbConnection
- .prepareStatement(data
- .getAuthorizerSQL(DefaultRealmConstants.GET_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.GET_PERMISSION_SQL);
getPermission.setString(1, resourceId);
getPermission.setString(2, action);
ResultSet rs = getPermission.executeQuery();
int pid = -1;
if (rs.next()) {
- pid = rs.getInt(data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_ID));
+ pid = rs.getInt(DefaultRealmConstants.COLUMN_NAME_ID);
} else {
throw new UserStoreException(Messages.getMessage("nullData"));
}
int uid = DefaultDatabaseUtil.getUserId(dbConnection, userName);
PreparedStatement clearUPStmt = dbConnection
- .prepareStatement(data
- .getAccessControlAdminSQL(DefaultRealmConstants.DELETE_USER_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.DELETE_USER_PERMISSION_SQL);
clearUPStmt.setInt(1, uid);
clearUPStmt.setInt(2, pid);
clearUPStmt.executeUpdate();
@@ -132,16 +125,14 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement getPermission = dbConnection
- .prepareStatement(data
- .getAuthorizerSQL(DefaultRealmConstants.GET_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.GET_PERMISSION_SQL);
getPermission.setString(1, resourceId);
getPermission.setString(2, action);
ResultSet rs = getPermission.executeQuery();
String pid = null;
if (rs.next()) {
- pid = rs.getString(data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_ID));
+ pid = rs.getString(DefaultRealmConstants.COLUMN_NAME_ID);
} else {
throw new UserStoreException(Messages.getMessage("nullData"));
}
@@ -149,8 +140,7 @@
int rid = DefaultDatabaseUtil.getRoleId(dbConnection, roleName);
PreparedStatement deleteRolesStmt = dbConnection
- .prepareStatement(data
- .getAccessControlAdminSQL(DefaultRealmConstants.DELETE_ROLE_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.DELETE_ROLE_PERMISSION_SQL);
deleteRolesStmt.setInt(1, rid);
deleteRolesStmt.setString(2, pid);
deleteRolesStmt.executeUpdate();
@@ -186,8 +176,7 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement clearResourceAuthorizationsStmt = dbConnection
- .prepareStatement(data
- .getAccessControlAdminSQL(DefaultRealmConstants.DELETE_PERMISSION_ON_RESOURCE));
+ .prepareStatement(DefaultRealmConstants.DELETE_PERMISSION_ON_RESOURCE_SQL);
clearResourceAuthorizationsStmt.setString(1, resourceId);
clearResourceAuthorizationsStmt.executeUpdate();
dbConnection.commit();
@@ -219,8 +208,7 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement getResourcePermissionStmt = dbConnection
- .prepareStatement(data
- .getAuthorizerSQL(DefaultRealmConstants.GET_RESOURCE_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.GET_RESOURCE_PERMISSION_SQL);
getResourcePermissionStmt.setString(1, toResourceId);
ResultSet rs = getResourcePermissionStmt.executeQuery();
if (rs.next()) {
@@ -231,13 +219,10 @@
getResourcePermissionStmt.setString(1, fromResourceId);
rs = getResourcePermissionStmt.executeQuery();
PreparedStatement addPermissionStmt = dbConnection
- .prepareStatement(data
- .getAccessControlAdminSQL(DefaultRealmConstants.ADD_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.ADD_PERMISSION_SQL);
while (rs.next()) {
- String action = rs.getString(data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_ACTION));
- String oldPermissionId = rs.getString(data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_ID));
+ String action = rs.getString(DefaultRealmConstants.COLUMN_NAME_ACTION);
+ String oldPermissionId = rs.getString(DefaultRealmConstants.COLUMN_NAME_ID);
addPermissionStmt.setString(1, toResourceId);
addPermissionStmt.setString(2, action);
@@ -245,8 +230,7 @@
// ***** read the id
PreparedStatement getPermissionStmt = dbConnection
- .prepareStatement(data
- .getAuthorizerSQL(DefaultRealmConstants.GET_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.GET_PERMISSION_SQL);
getPermissionStmt.setString(1, toResourceId);
getPermissionStmt.setString(2, action);
@@ -254,29 +238,24 @@
int idPermission = -1;
if (rs2.next()) {
- idPermission = rs2.getInt(data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_ID));
+ idPermission = rs2.getInt(DefaultRealmConstants.COLUMN_NAME_ID);
}
// ***** end read id
PreparedStatement getRolePermissionStmt = dbConnection
- .prepareStatement(data
- .getAuthorizerSQL(DefaultRealmConstants.GET_ROLE_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.GET_ROLE_PERMISSION_SQL);
getRolePermissionStmt.setString(1, oldPermissionId);
ResultSet rsr = getRolePermissionStmt.executeQuery();
PreparedStatement addRolePermissionStmt = dbConnection
- .prepareStatement(data
- .getAccessControlAdminSQL(DefaultRealmConstants.ADD_ROLE_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.ADD_ROLE_PERMISSION_SQL);
while (rsr.next()) {
String roleId = rsr
- .getString(data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_ROLE_ID));
+ .getString(DefaultRealmConstants.COLUMN_NAME_ROLE_ID);
short allow = rsr
- .getShort(data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_IS_ALLOWED));
+ .getShort(DefaultRealmConstants.COLUMN_NAME_IS_ALLOWED);
addRolePermissionStmt.setInt(1, idPermission);
addRolePermissionStmt.setShort(2, allow);
@@ -285,23 +264,19 @@
}
PreparedStatement getUserPermissionStmt = dbConnection
- .prepareStatement(data
- .getAuthorizerSQL(DefaultRealmConstants.GET_USER_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.GET_USER_PERMISSION_SQL);
getUserPermissionStmt.setString(1, oldPermissionId);
ResultSet rsu = getUserPermissionStmt.executeQuery();
PreparedStatement addUserPermissionStmt = dbConnection
- .prepareStatement(data
- .getAccessControlAdminSQL(DefaultRealmConstants.ADD_USER_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.ADD_USER_PERMISSION_SQL);
while (rsu.next()) {
String userId = rsu
- .getString(data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_USER_ID));
+ .getString(DefaultRealmConstants.COLUMN_NAME_USER_ID);
short allow = rsu
- .getShort(data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_IS_ALLOWED));
+ .getShort(DefaultRealmConstants.COLUMN_NAME_IS_ALLOWED);
addUserPermissionStmt.setInt(1, idPermission);
addUserPermissionStmt.setShort(2, allow);
@@ -357,21 +332,18 @@
int permissionId = -1;
try {
PreparedStatement getPermissionStmt = dbConnection
- .prepareStatement(data
- .getAuthorizerSQL(DefaultRealmConstants.GET_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.GET_PERMISSION_SQL);
getPermissionStmt.setString(1, resourceId);
getPermissionStmt.setString(2, action);
ResultSet rs = getPermissionStmt.executeQuery();
if (rs.next()) {
- permissionId = rs.getInt(data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_ID));
+ permissionId = rs.getInt(DefaultRealmConstants.COLUMN_NAME_ID);
}
PreparedStatement addPermissionStmt = dbConnection
- .prepareStatement(data
- .getAccessControlAdminSQL(DefaultRealmConstants.ADD_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.ADD_PERMISSION_SQL);
if (permissionId == -1) {
// no permission so add it
@@ -382,16 +354,14 @@
// now read the id again
getPermissionStmt = dbConnection
- .prepareStatement(data
- .getAuthorizerSQL(DefaultRealmConstants.GET_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.GET_PERMISSION_SQL);
getPermissionStmt.setString(1, resourceId);
getPermissionStmt.setString(2, action);
ResultSet rs2 = getPermissionStmt.executeQuery();
if (rs2.next()) {
- permissionId = rs2.getInt(data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_ID));
+ permissionId = rs2.getInt(DefaultRealmConstants.COLUMN_NAME_ID);
}
dbConnection.commit();
@@ -430,15 +400,13 @@
int permissionId = this.getOrAddPermissionId(dbConnection, resourceId, action);
PreparedStatement clearUPStmt = dbConnection
- .prepareStatement(data
- .getAccessControlAdminSQL(DefaultRealmConstants.DELETE_USER_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.DELETE_USER_PERMISSION_SQL);
clearUPStmt.setInt(1, userId);
clearUPStmt.setInt(2, permissionId);
clearUPStmt.executeUpdate();
PreparedStatement addUserPermissionStmt = dbConnection
- .prepareStatement(data
- .getAccessControlAdminSQL(DefaultRealmConstants.ADD_USER_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.ADD_USER_PERMISSION_SQL);
addUserPermissionStmt.setInt(1, permissionId);
addUserPermissionStmt.setShort(2, allow);
addUserPermissionStmt.setInt(3, userId);
@@ -482,15 +450,13 @@
int permissionId = this.getOrAddPermissionId(dbConnection, resourceId, action);
PreparedStatement deleteRolesStmt = dbConnection
- .prepareStatement(data
- .getAccessControlAdminSQL(DefaultRealmConstants.DELETE_ROLE_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.DELETE_ROLE_PERMISSION_SQL);
deleteRolesStmt.setInt(1, roleId);
deleteRolesStmt.setInt(2, permissionId);
deleteRolesStmt.executeUpdate();
PreparedStatement addRolePermissionStmt = dbConnection
- .prepareStatement(data
- .getAccessControlAdminSQL(DefaultRealmConstants.ADD_ROLE_PERMISSION));
+ .prepareStatement(DefaultRealmConstants.ADD_ROLE_PERMISSION_SQL);
addRolePermissionStmt.setInt(1, permissionId);
addRolePermissionStmt.setShort(2, allow);
addRolePermissionStmt.setInt(3, roleId);
Modified: trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultAuthenticator.java
==============================================================================
--- trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultAuthenticator.java (original)
+++ trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultAuthenticator.java Thu Mar 6 21:51:42 2008
@@ -31,7 +31,6 @@
import org.wso2.authenticator.AuthenticatorException;
import org.wso2.registry.i18n.Messages;
-import org.wso2.registry.users.def.util.DefaultDataSupplierImpl;
/**
@@ -45,22 +44,11 @@
protected DefaultRealm realm = null;
- protected DefaultDataSupplier data = null;
-
public DefaultAuthenticator(DataSource dataSource) {
this.dataSource = dataSource;
- this.data = new DefaultDataSupplierImpl(dataSource);
- }
-
- public DefaultAuthenticator(DataSource dataSource, DefaultDataSupplier store) {
- this.dataSource = dataSource;
- if (store != null) {
- this.data = store;
- } else {
- this.data = new DefaultDataSupplierImpl(dataSource);
- }
}
+
/**
* @see org.wso2.usermanager.Authenticator#authenticate(String, Object)
*/
@@ -74,8 +62,7 @@
throw new AuthenticatorException(Messages.getMessage("null_connection"));
}
dbConnection.setAutoCommit(false);
- PreparedStatement getUserStmt = dbConnection.prepareStatement(data
- .getAuthenticatorSQL(DefaultRealmConstants.GET_USER));
+ PreparedStatement getUserStmt = dbConnection.prepareStatement(DefaultRealmConstants.GET_USER_SQL);
getUserStmt.setString(1, userName);
ResultSet rs = getUserStmt.executeQuery();
if (rs.next()) {
@@ -83,8 +70,7 @@
MessageDigest dgst = MessageDigest.getInstance("MD5");
dgst.update(((String) credentials).getBytes());
String dbCred = rs
- .getString(data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_CREDENTIAL));
+ .getString(DefaultRealmConstants.COLUMN_NAME_CREDENTIAL);
isAuth = Base64.encode(dgst.digest()).equals(dbCred);
}
}
@@ -107,12 +93,6 @@
return isAuth;
}
- public DefaultDataSupplier getData() {
- return data;
- }
-
- public void setData(DefaultDataSupplier data) {
- this.data = data;
- }
+
}
Modified: trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultAuthorizer.java
==============================================================================
--- trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultAuthorizer.java (original)
+++ trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultAuthorizer.java Thu Mar 6 21:51:42 2008
@@ -29,7 +29,7 @@
import org.wso2.registry.i18n.Messages;
import org.wso2.registry.users.Authorizer;
import org.wso2.registry.users.UserStoreException;
-import org.wso2.registry.users.def.util.DefaultDataSupplierImpl;
+import org.wso2.registry.users.def.util.DefaultDatabaseUtil;
/**
@@ -40,9 +40,6 @@
/** DBCP datasource */
protected DataSource dataSource = null;
- /** The object that pumps sqls */
- protected DefaultDataSupplier data = null;
-
/** logger */
private static Log log = LogFactory.getLog(DefaultAuthorizer.class);
@@ -51,21 +48,9 @@
public DefaultAuthorizer(DataSource dataSource, String algo) {
this.dataSource = dataSource;
- this.data = new DefaultDataSupplierImpl(dataSource);
this.algorithm = algo;
}
-
- public DefaultAuthorizer(DataSource dataSource, String algo,
- DefaultDataSupplier strategy) {
- this.dataSource = dataSource;
- if (strategy != null) {
- this.data = strategy;
- } else {
- this.data = new DefaultDataSupplierImpl(dataSource);
- }
- this.algorithm = algo;
- }
-
+
public boolean isRoleAuthorized(String roleName, String resourceId,
String action) throws UserStoreException {
@@ -106,14 +91,12 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement getAuthorizedUsersForResourceStmt = dbConnection
- .prepareStatement(data
- .getAuthorizerSQL(DefaultRealmConstants.GET_ALLOWED_USERS_ON_RESOURCE));
+ .prepareStatement(DefaultRealmConstants.GET_ALLOWED_USERS_ON_RESOURCE_SQL);
getAuthorizedUsersForResourceStmt.setString(1, resourceId);
getAuthorizedUsersForResourceStmt.setString(2, action);
ResultSet rs = getAuthorizedUsersForResourceStmt.executeQuery();
List lst = new LinkedList();
- String colName = data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_USER_NAME);
+ String colName = DefaultRealmConstants.COLUMN_NAME_USER_NAME;
while (rs.next()) {
lst.add(rs.getString(colName));
}
@@ -147,14 +130,12 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement getAuthorizedUsersForResourceStmt = dbConnection
- .prepareStatement(data
- .getAuthorizerSQL(DefaultRealmConstants.GET_DENIED_USERS_ON_RESOURCE));
+ .prepareStatement(DefaultRealmConstants.GET_DENIED_USERS_ON_RESOURCE_SQL);
getAuthorizedUsersForResourceStmt.setString(1, resourceId);
getAuthorizedUsersForResourceStmt.setString(2, action);
ResultSet rs = getAuthorizedUsersForResourceStmt.executeQuery();
List lst = new LinkedList();
- String colName = data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_USER_NAME);
+ String colName = DefaultRealmConstants.COLUMN_NAME_USER_NAME;
while (rs.next()) {
lst.add(rs.getString(colName));
}
@@ -188,14 +169,12 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement getAuthorizedRolesForResourceStmt = dbConnection
- .prepareStatement(data
- .getAuthorizerSQL(DefaultRealmConstants.GET_ALLOWED_ROLES_FOR_RESOURCE));
+ .prepareStatement(DefaultRealmConstants.GET_ALLOWED_ROLES_FOR_RESOURCE_SQL);
getAuthorizedRolesForResourceStmt.setString(1, resourceId);
getAuthorizedRolesForResourceStmt.setString(2, action);
ResultSet rs = getAuthorizedRolesForResourceStmt.executeQuery();
List lst = new LinkedList();
- String colName = data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_ROLE_NAME);
+ String colName = DefaultRealmConstants.COLUMN_NAME_ROLE_NAME;
while (rs.next()) {
lst.add(rs.getString(colName));
}
@@ -230,14 +209,12 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement getAuthorizedRolesForResourceStmt = dbConnection
- .prepareStatement(data
- .getAuthorizerSQL(DefaultRealmConstants.GET_DENIED_ROLES_FOR_RESOURCE));
+ .prepareStatement(DefaultRealmConstants.GET_DENIED_ROLES_FOR_RESOURCE_SQL);
getAuthorizedRolesForResourceStmt.setString(1, resourceId);
getAuthorizedRolesForResourceStmt.setString(2, action);
ResultSet rs = getAuthorizedRolesForResourceStmt.executeQuery();
List lst = new LinkedList();
- String colName = data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_ROLE_NAME);
+ String colName = DefaultRealmConstants.COLUMN_NAME_ROLE_NAME;
while (rs.next()) {
lst.add(rs.getString(colName));
}
@@ -267,8 +244,28 @@
boolean onceAllowed = false;
if (isAuthorized == null) {
- String[] roles = data.getUserRoles(userName);
-
+ String roles[] = new String[0];
+ Connection dbConnection = null;
+ try {
+ dbConnection = dataSource.getConnection();
+ if (dbConnection == null) {
+ throw new UserStoreException(Messages.getMessage("null_connection"));
+ }
+ dbConnection.setAutoCommit(false);
+ roles = DefaultDatabaseUtil.getUserRoles(dbConnection, userName);
+ } catch (SQLException e) {
+ log.debug(e);
+ throw new UserStoreException(Messages.getMessage("errorReadingFromUserStore"), e);
+ } finally {
+ try {
+ if (dbConnection != null) {
+ dbConnection.close();
+ }
+ } catch (SQLException e) {
+ throw new UserStoreException(Messages.getMessage("errorClosingConnection"), e);
+ }
+ }
+
for (int i = 0; i < roles.length; i++) {
String roleName = roles[i];
Boolean roleAuth = getRoleAuthorized(roleName, resourceId,
@@ -302,16 +299,14 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement isRoleAuthorizedStmt = dbConnection
- .prepareStatement(data
- .getAuthorizerSQL(DefaultRealmConstants.GET_ROLE_AUTHORIZED));
+ .prepareStatement(DefaultRealmConstants.GET_ROLE_AUTHORIZED_SQL);
isRoleAuthorizedStmt.setString(1, resourceId);
isRoleAuthorizedStmt.setString(2, action);
isRoleAuthorizedStmt.setString(3, roleName);
ResultSet rs = isRoleAuthorizedStmt.executeQuery();
if (rs.next()) {
boolean isAuth = rs
- .getBoolean(data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_IS_ALLOWED));
+ .getBoolean(DefaultRealmConstants.COLUMN_NAME_IS_ALLOWED);
isAuthorized = Boolean.valueOf(isAuth);
}
isRoleAuthorizedStmt.close();
@@ -341,8 +336,7 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement isUserAuthorizedStmt = dbConnection
- .prepareStatement(data
- .getAuthorizerSQL(DefaultRealmConstants.GET_USER_AUTHORIZED));
+ .prepareStatement(DefaultRealmConstants.GET_USER_AUTHORIZED_SQL);
isUserAuthorizedStmt.setString(1, resourceId);
isUserAuthorizedStmt.setString(2, action);
isUserAuthorizedStmt.setString(3, userName);
@@ -350,8 +344,7 @@
if (rs.next()) {
result = Boolean
.valueOf(rs
- .getBoolean(data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_IS_ALLOWED)));
+ .getBoolean(DefaultRealmConstants.COLUMN_NAME_IS_ALLOWED));
}
isUserAuthorizedStmt.close();
} catch (SQLException e) {
@@ -369,12 +362,6 @@
return result;
}
- public DefaultDataSupplier getData() {
- return data;
- }
-
- public void setData(DefaultDataSupplier data) {
- this.data = data;
- }
+
}
Modified: trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultRealm.java
==============================================================================
--- trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultRealm.java (original)
+++ trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultRealm.java Thu Mar 6 21:51:42 2008
@@ -30,14 +30,13 @@
import org.wso2.registry.users.UserStoreAdmin;
import org.wso2.registry.users.UserStoreException;
import org.wso2.registry.users.UserStoreReader;
-import org.wso2.registry.users.def.util.DefaultDataSupplierImpl;
/**
* DefaultRealm is used by developers when the need to maintain
* users from scratch.
*
- * @see org.wso2.usermanager.Realm
+ * org.wso2.usermanager.Realm
*/
public class DefaultRealm implements UserRealm {
@@ -57,8 +56,6 @@
protected DataSource dataSource = null;
- protected DefaultDataSupplierImpl strategyObject = null;
-
private static Log log = LogFactory.getLog(DefaultRealm.class);
public DefaultRealm() {
@@ -74,6 +71,9 @@
return retConfig;
}
+ /**
+ * {@inheritDoc}
+ */
public void init(Object configBean) throws UserStoreException {
if (!(configBean instanceof DefaultRealmConfig)) {
return;
@@ -91,13 +91,13 @@
dataSource = config.getDataSource();
}
- authenticator = new DefaultAuthenticator(dataSource, strategyObject);
+ authenticator = new DefaultAuthenticator(dataSource);
authorizer = new DefaultAuthorizer(dataSource, config
- .getPermissionAlgo(), strategyObject);
+ .getPermissionAlgo());
aclAdmin = new DefaultAccessControlAdmin(dataSource, config
- .getPermissionAlgo(), strategyObject);
- usAdmin = new DefaultUserStoreAdmin(dataSource, strategyObject);
- usReader = new DefaultUserStoreReader(dataSource, strategyObject);
+ .getPermissionAlgo());
+ usAdmin = new DefaultUserStoreAdmin(dataSource);
+ usReader = new DefaultUserStoreReader(dataSource);
}
Modified: trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultRealmConstants.java
==============================================================================
--- trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultRealmConstants.java (original)
+++ trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultRealmConstants.java Thu Mar 6 21:51:42 2008
@@ -21,59 +21,6 @@
*/
public class DefaultRealmConstants {
- public static final int ADD_USER = 1;
- public static final int ADD_ROLE = 2;
- public static final int ADD_USER_ROLE = 3;
- public static final int ADD_USER_ATTRIBUTE = 4;
- public static final int ADD_ROLE_ATTRIBUTE = 5;
- public static final int ADD_PERMISSION = 6;
- public static final int ADD_ROLE_PERMISSION = 7;
- public static final int ADD_USER_PERMISSION = 8;
- public static final int UPDATE_USER = 9;
-
- public static final int DELETE_USER = 20;
- public static final int DELETE_ROLE = 21;
- public static final int DELETE_USER_ROLE = 22;
- public static final int DELETE_ROLE_ATTRIBUTE = 23;
- public static final int DELETE_USER_ATTRIBUTE = 24;
- public static final int DELETE_PERMISSION_ON_RESOURCE = 25;
- public static final int GET_USER = 26;
- public static final int GET_ROLE = 27;
- public static final int DELETE_USER_PERMISSION = 28;
- public static final int DELETE_ROLE_PERMISSION = 29;
-
- public static final int GET_USER_ROLES = 41;
- public static final int GET_ROLE_ATTRIBUTES = 42;
- public static final int GET_USER_ATTRIBUTES = 43;
- public static final int GET_PERMISSION = 44;
- public static final int GET_ROLE_AUTHORIZED = 45;
- public static final int GET_USER_AUTHORIZED = 46;
- public static final int GET_ALLOWED_ROLES_FOR_RESOURCE = 47;
- public static final int GET_DENIED_ROLES_FOR_RESOURCE = 48;
- public static final int GET_ALLOWED_USERS_ON_RESOURCE = 49;
- public static final int GET_DENIED_USERS_ON_RESOURCE = 50;
- public static final int GET_ROLE_PERMISSION = 51;
- public static final int GET_USER_PERMISSION = 52;
- public static final int GET_ROLES_ALL = 53;
- public static final int GET_USERS_ALL = 54;
- public static final int GET_USER_ID = 55;
- public static final int GET_ROLE_ID = 56;
- public static final int GET_RESOURCE_PERMISSION = 57;
- public static final int GET_ATTRIBUTE_NAMES = 58;
- public static final int GET_USERS_IN_ROLE = 59;
- public static final int GET_USERS_WITH_PROPERTY = 60;
- public static final int GET_USERS_WITH_PROPERTY_VALUE = 61;
-
- public static final int COLUMN_ID_ATTR_NAME = 1;
- public static final int COLUMN_ID_ATTR_VALUE = 2;
- public static final int COLUMN_ID_ID = 3;
- public static final int COLUMN_ID_USER_NAME = 4;
- public static final int COLUMN_ID_ROLE_NAME = 5;
- public static final int COLUMN_ID_ROLE_ID = 6;
- public static final int COLUMN_ID_USER_ID = 7;
- public static final int COLUMN_ID_IS_ALLOWED = 8;
- public static final int COLUMN_ID_CREDENTIAL = 9;
- public static final int COLUMN_ID_ACTION = 10;
public static final String ADD_USER_SQL = "insert into um_users (user_name, password) values (?, ?)";
public static final String ADD_ROLE_SQL = "insert into um_roles (role_name) values (?)";
Modified: trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultUserStoreAdmin.java
==============================================================================
--- trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultUserStoreAdmin.java (original)
+++ trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultUserStoreAdmin.java Thu Mar 6 21:51:42 2008
@@ -50,10 +50,7 @@
super(dataSource);
}
- public DefaultUserStoreAdmin(DataSource dataSource, DefaultDataSupplier store) {
- super(dataSource, store);
- }
-
+
public void addUser(String userName, Object credential)
throws UserStoreException {
@@ -76,8 +73,7 @@
throw new UserStoreException(Messages.getMessage("null_connection"));
}
dbConnection.setAutoCommit(false);
- PreparedStatement addUserStmt = dbConnection.prepareStatement(data
- .getUserStoreAdminSQL(DefaultRealmConstants.ADD_USER));
+ PreparedStatement addUserStmt = dbConnection.prepareStatement(DefaultRealmConstants.ADD_USER_SQL);
addUserStmt.setString(1, userName);
MessageDigest dgst = MessageDigest.getInstance("MD5");
@@ -113,8 +109,7 @@
throw new UserStoreException(Messages.getMessage("null_connection"));
}
dbConnection.setAutoCommit(false);
- PreparedStatement getUserStmt = dbConnection.prepareStatement(data
- .getAuthenticatorSQL(DefaultRealmConstants.GET_USER));
+ PreparedStatement getUserStmt = dbConnection.prepareStatement(DefaultRealmConstants.GET_USER_SQL);
getUserStmt.setString(1, userName);
ResultSet rs = getUserStmt.executeQuery();
@@ -123,8 +118,7 @@
MessageDigest dgst = MessageDigest.getInstance("MD5");
dgst.update(((String) oldCredential).getBytes());
String dbCred = rs
- .getString(data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_CREDENTIAL));
+ .getString(DefaultRealmConstants.COLUMN_NAME_CREDENTIAL);
if (!Base64.encode(dgst.digest()).equals(dbCred)) {
throw new UserStoreException(Messages.getMessage("oldPasswordIncorrect"));
}
@@ -134,8 +128,7 @@
}
PreparedStatement updateUserStmt = dbConnection
- .prepareStatement(data
- .getUserStoreAdminSQL(DefaultRealmConstants.UPDATE_USER));
+ .prepareStatement(DefaultRealmConstants.UPDATE_USER_SQL);
MessageDigest dgst = MessageDigest.getInstance("MD5");
dgst.update(((String) newCredential).getBytes());
updateUserStmt.setString(1, Base64.encode(dgst.digest()));
@@ -170,8 +163,7 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement updateUserStmt = dbConnection
- .prepareStatement(data
- .getUserStoreAdminSQL(DefaultRealmConstants.UPDATE_USER));
+ .prepareStatement(DefaultRealmConstants.UPDATE_USER_SQL);
MessageDigest dgst = MessageDigest.getInstance("MD5");
dgst.update(((String) newCredential).getBytes());
updateUserStmt.setString(1, Base64.encode(dgst.digest()));
@@ -205,8 +197,7 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement deleteUserStmt = dbConnection
- .prepareStatement(data
- .getUserStoreAdminSQL(DefaultRealmConstants.DELETE_USER));
+ .prepareStatement(DefaultRealmConstants.DELETE_USER_SQL);
deleteUserStmt.setString(1, userName);
deleteUserStmt.executeUpdate();
dbConnection.commit();
@@ -243,14 +234,12 @@
}
PreparedStatement deleteUserPropsStmt = dbConnection
- .prepareStatement(data
- .getUserStoreAdminSQL(DefaultRealmConstants.DELETE_USER_ATTRIBUTE));
+ .prepareStatement(DefaultRealmConstants.DELETE_USER_ATTRIBUTE_SQL);
deleteUserPropsStmt.setInt(1, userid);
deleteUserPropsStmt.executeUpdate();
PreparedStatement setUserPropertiesStmt = dbConnection
- .prepareStatement(data
- .getUserStoreAdminSQL(DefaultRealmConstants.ADD_USER_ATTRIBUTE));
+ .prepareStatement(DefaultRealmConstants.ADD_USER_ATTRIBUTE_SQL);
if (properties != null) {
Iterator ite = properties.entrySet().iterator();
@@ -299,14 +288,12 @@
}
PreparedStatement deleteRolePropsStmt = dbConnection
- .prepareStatement(data
- .getUserStoreAdminSQL(DefaultRealmConstants.DELETE_ROLE_ATTRIBUTE));
+ .prepareStatement(DefaultRealmConstants.DELETE_ROLE_ATTRIBUTE_SQL);
deleteRolePropsStmt.setInt(1, roleid);
deleteRolePropsStmt.executeUpdate();
PreparedStatement setRolePropertiesStmt = dbConnection
- .prepareStatement(data
- .getUserStoreAdminSQL(DefaultRealmConstants.ADD_ROLE_ATTRIBUTE));
+ .prepareStatement(DefaultRealmConstants.ADD_ROLE_ATTRIBUTE_SQL);
Iterator ite = properties.entrySet().iterator();
while (ite.hasNext()) {
@@ -347,8 +334,7 @@
throw new UserStoreException(Messages.getMessage("null_connection"));
}
dbConnection.setAutoCommit(false);
- PreparedStatement addRoleStmt = dbConnection.prepareStatement(data
- .getUserStoreAdminSQL(DefaultRealmConstants.ADD_ROLE));
+ PreparedStatement addRoleStmt = dbConnection.prepareStatement(DefaultRealmConstants.ADD_ROLE_SQL);
addRoleStmt.setString(1, roleName);
addRoleStmt.execute();
dbConnection.commit();
@@ -376,8 +362,7 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement deleteRoleStmt = dbConnection
- .prepareStatement(data
- .getUserStoreAdminSQL(DefaultRealmConstants.DELETE_ROLE));
+ .prepareStatement(DefaultRealmConstants.DELETE_ROLE_SQL);
deleteRoleStmt.setString(1, roleName);
deleteRoleStmt.execute();
dbConnection.commit();
@@ -415,8 +400,7 @@
}
PreparedStatement addUserToRoleStmt = dbConnection
- .prepareStatement(data
- .getUserStoreAdminSQL(DefaultRealmConstants.ADD_USER_ROLE));
+ .prepareStatement(DefaultRealmConstants.ADD_USER_ROLE_SQL);
addUserToRoleStmt.setInt(1, userid);
addUserToRoleStmt.setInt(2, roleid);
addUserToRoleStmt.executeUpdate();
@@ -446,8 +430,7 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement removeUserFromRoleStmt = dbConnection
- .prepareStatement(data
- .getUserStoreAdminSQL(DefaultRealmConstants.DELETE_USER_ROLE));
+ .prepareStatement(DefaultRealmConstants.DELETE_USER_ROLE_SQL);
removeUserFromRoleStmt.setString(1, userName);
removeUserFromRoleStmt.setString(2, roleName);
removeUserFromRoleStmt.executeUpdate();
Modified: trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultUserStoreReader.java
==============================================================================
--- trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultUserStoreReader.java (original)
+++ trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/DefaultUserStoreReader.java Thu Mar 6 21:51:42 2008
@@ -32,7 +32,6 @@
import org.wso2.registry.i18n.Messages;
import org.wso2.registry.users.UserStoreException;
import org.wso2.registry.users.UserStoreReader;
-import org.wso2.registry.users.def.util.DefaultDataSupplierImpl;
import org.wso2.registry.users.def.util.DefaultDatabaseUtil;
/**
@@ -45,21 +44,9 @@
private static Log log = LogFactory.getLog(DefaultUserStoreReader.class);
protected DataSource dataSource = null;
- protected DefaultDataSupplier data = null;
public DefaultUserStoreReader(DataSource dataSource) {
this.dataSource = dataSource;
- this.data = new DefaultDataSupplierImpl(dataSource);
- }
-
- public DefaultUserStoreReader(DataSource dataSource,
- DefaultDataSupplier store) {
- this.dataSource = dataSource;
- if (store != null) {
- this.data = store;
- } else {
- this.data = new DefaultDataSupplierImpl(dataSource);
- }
}
public String[] getAllRoleNames() throws UserStoreException {
@@ -73,12 +60,10 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement getAllRoleNamesStmt = dbConnection
- .prepareStatement(data
- .getUserStoreReaderSQL(DefaultRealmConstants.GET_ROLES_ALL));
+ .prepareStatement(DefaultRealmConstants.GET_ROLES_ALL_SQL);
ResultSet rs = getAllRoleNamesStmt.executeQuery();
List lst = new LinkedList();
- String colName = data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_ROLE_NAME);
+ String colName = DefaultRealmConstants.COLUMN_NAME_ROLE_NAME;
while (rs.next()) {
lst.add(rs.getString(colName));
}
@@ -114,12 +99,10 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement getAllUserNamesStmt = dbConnection
- .prepareStatement(data
- .getUserStoreReaderSQL(DefaultRealmConstants.GET_USERS_ALL));
+ .prepareStatement(DefaultRealmConstants.GET_USERS_ALL_SQL);
ResultSet rs = getAllUserNamesStmt.executeQuery();
List lst = new LinkedList();
- String colName = data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_USER_NAME);
+ String colName = DefaultRealmConstants.COLUMN_NAME_USER_NAME;
while (rs.next()) {
String name = rs.getString(colName);
lst.add(name);
@@ -157,14 +140,11 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement getRolePropertiesStmt = dbConnection
- .prepareStatement(data
- .getUserStoreReaderSQL(DefaultRealmConstants.GET_ROLE_ATTRIBUTES));
+ .prepareStatement(DefaultRealmConstants.GET_ROLE_ATTRIBUTES_SQL);
getRolePropertiesStmt.setString(1, roleName);
ResultSet rs = getRolePropertiesStmt.executeQuery();
- String colAttrName = data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_ATTR_NAME);
- String colAttrValue = data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_ATTR_VALUE);
+ String colAttrName = DefaultRealmConstants.COLUMN_NAME_ATTR_NAME;
+ String colAttrValue = DefaultRealmConstants.COLUMN_NAME_ATTR_VALUE;
while (rs.next()) {
String name = rs.getString(colAttrName);
String value = rs.getString(colAttrValue);
@@ -200,14 +180,11 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement getUserPropertiesStmt = dbConnection
- .prepareStatement(data
- .getUserStoreReaderSQL(DefaultRealmConstants.GET_USER_ATTRIBUTES));
+ .prepareStatement(DefaultRealmConstants.GET_USER_ATTRIBUTES_SQL);
getUserPropertiesStmt.setString(1, userName);
ResultSet rs = getUserPropertiesStmt.executeQuery();
- String colAttrName = data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_ATTR_NAME);
- String colAttrValue = data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_ATTR_VALUE);
+ String colAttrName = DefaultRealmConstants.COLUMN_NAME_ATTR_NAME;
+ String colAttrValue = DefaultRealmConstants.COLUMN_NAME_ATTR_VALUE;
while (rs.next()) {
String name = rs.getString(colAttrName);
String value = rs.getString(colAttrValue);
@@ -243,11 +220,9 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement getUserAttributeNamesStmt = dbConnection
- .prepareStatement(data
- .getUserStoreReaderSQL(DefaultRealmConstants.GET_ATTRIBUTE_NAMES));
+ .prepareStatement(DefaultRealmConstants.GET_ATTRIBUTE_NAMES_SQL);
ResultSet rs = getUserAttributeNamesStmt.executeQuery();
- String colName = data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_ATTR_NAME);
+ String colName = DefaultRealmConstants.COLUMN_NAME_ATTR_NAME;
List lst = new ArrayList();
while (rs.next()) {
lst.add(rs.getString(colName));
@@ -272,7 +247,31 @@
}
public String[] getUserRoles(String userName) throws UserStoreException {
- return data.getUserRoles(userName);
+ String[] names = new String[0];
+ Connection dbConnection = null;
+ try {
+ dbConnection = dataSource.getConnection();
+ if (dbConnection == null) {
+ throw new UserStoreException(Messages
+ .getMessage("null_connection"));
+ }
+ dbConnection.setAutoCommit(false);
+ names = DefaultDatabaseUtil.getUserRoles(dbConnection, userName);
+ } catch (SQLException e) {
+ log.debug(e);
+ throw new UserStoreException(Messages
+ .getMessage("errorReadingFromUserStore"), e);
+ } finally {
+ try {
+ if (dbConnection != null) {
+ dbConnection.close();
+ }
+ } catch (SQLException e) {
+ throw new UserStoreException(Messages
+ .getMessage("errorClosingConnection"), e);
+ }
+ }
+ return names;
}
public boolean isExistingUser(String userName) throws UserStoreException {
@@ -351,20 +350,17 @@
if (propertyName != null && propertyName.length() != 0) {
getPropValue = dbConnection
- .prepareStatement(data
- .getUserStoreReaderSQL(DefaultRealmConstants.GET_USERS_WITH_PROPERTY));
+ .prepareStatement(DefaultRealmConstants.GET_USERS_WITH_PROPERTY_SQL);
getPropValue.setString(1, propertyName);
getPropValue.setString(2, propetyValue);
} else {
getPropValue = dbConnection
- .prepareStatement(data
- .getUserStoreReaderSQL(DefaultRealmConstants.GET_USERS_WITH_PROPERTY_VALUE));
+ .prepareStatement(DefaultRealmConstants.GET_USERS_WITH_PROPERTY_VALUE_SQL);
getPropValue.setString(1, propetyValue);
}
ResultSet rs = getPropValue.executeQuery();
- String colName = data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_USER_NAME);
+ String colName = DefaultRealmConstants.COLUMN_NAME_USER_NAME;
List lst = new ArrayList();
while (rs.next()) {
lst.add(rs.getString(colName));
@@ -400,12 +396,10 @@
}
dbConnection.setAutoCommit(false);
PreparedStatement getUserInRole = dbConnection
- .prepareStatement(data
- .getUserStoreReaderSQL(DefaultRealmConstants.GET_USERS_IN_ROLE));
+ .prepareStatement(DefaultRealmConstants.GET_USERS_IN_ROLE_SQL);
getUserInRole.setString(1, roleName);
ResultSet rs = getUserInRole.executeQuery();
- String colName = data
- .getColumnName(DefaultRealmConstants.COLUMN_ID_USER_NAME);
+ String colName = DefaultRealmConstants.COLUMN_NAME_USER_NAME;
List lst = new ArrayList();
while (rs.next()) {
lst.add(rs.getString(colName));
@@ -429,9 +423,6 @@
return names;
}
- public Map getUserProfileProperties(String username, String profileName)
- throws UserStoreException {
- return null;
- }
+
}
Modified: trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/util/DefaultDatabaseUtil.java
==============================================================================
--- trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/util/DefaultDatabaseUtil.java (original)
+++ trunk/registry/modules/core/src/main/java/org/wso2/registry/users/def/util/DefaultDatabaseUtil.java Thu Mar 6 21:51:42 2008
@@ -147,7 +147,28 @@
return id;
}
-
+
+ public static String[] getUserRoles(Connection dbConnection, String userName) throws UserStoreException {
+ String[] names = new String[0];
+ try {
+ PreparedStatement getUserRolesStmt = dbConnection
+ .prepareStatement(DefaultRealmConstants.GET_USER_ROLES_SQL);
+ getUserRolesStmt.setString(1, userName);
+ ResultSet rs = getUserRolesStmt.executeQuery();
+ List lst = new LinkedList();
+ String colName = DefaultRealmConstants.COLUMN_NAME_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 UserStoreException("errorReadingFromUserStore", e);
+ }
+ return names;
+ }
}
More information about the Registry-dev
mailing list