Author: dimuthul
Date: Sat Jan 19 03:31:07 2008
New Revision: 12514

Log:

Changing the Hybrid realm.
Using inclusion instead of inheritence



Added:
   
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/WSASAuthenticator.java
   
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/WSASStrategyImpl.java
   
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/WSASUserStoreAdmin.java
   
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/WSASUserStoreReader.java
Removed:
   
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/HybridAccessControlAdmin.java
   
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/HybridAuthenticator.java
   
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/HybridAuthorizer.java
   
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/HybridSQLStorage.java
   
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/HybridUserStoreAdmin.java
   
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/HybridUserStoreReader.java
Modified:
   
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/WSASRegistryRealm.java

Added: 
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/WSASAuthenticator.java
==============================================================================
--- (empty file)
+++ 
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/WSASAuthenticator.java
        Sat Jan 19 03:31:07 2008
@@ -0,0 +1,15 @@
+package org.wso2.mashup.realm.wsas;
+
+import org.wso2.mashup.utils.MashupUtils;
+import org.wso2.usermanager.Authenticator;
+import org.wso2.usermanager.UserManagerException;
+
+public class WSASAuthenticator implements Authenticator {
+
+    public boolean authenticate(String userName, Object credentials)
+            throws UserManagerException {
+
+        return MashupUtils.authenticateUser(userName, (String) credentials);
+    }
+
+}

Modified: 
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/WSASRegistryRealm.java
==============================================================================
--- 
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/WSASRegistryRealm.java
        (original)
+++ 
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/WSASRegistryRealm.java
        Sat Jan 19 03:31:07 2008
@@ -10,39 +10,30 @@
 import org.wso2.usermanager.UserManagerException;
 import org.wso2.usermanager.UserStoreAdmin;
 import org.wso2.usermanager.UserStoreReader;
+import org.wso2.usermanager.readwrite.DefaultAccessControlAdmin;
+import org.wso2.usermanager.readwrite.DefaultAuthorizer;
 import org.wso2.usermanager.readwrite.DefaultRealmConfig;
-import org.wso2.usermanager.readwrite.UUIDGenerator;
+import org.wso2.usermanager.readwrite.DefaultStrategy;
 
 public class WSASRegistryRealm implements Realm {
     
-    private HybridAuthenticator authenticator = null;
-    
-    private HybridAuthorizer authorizer = null;
-    private HybridAccessControlAdmin aclAdmin = null;
-    
-    private HybridUserStoreAdmin usAdmin = null;
-    private HybridUserStoreReader usReader = null;
+    private Authenticator authenticator = null;
+    private Authorizer authorizer = null;
+    private AccessControlAdmin aclAdmin = null;
     
+    private UserStoreAdmin usAdmin = null;
+    private UserStoreReader usReader = null;
+
     private DefaultRealmConfig config = null;
     
     private DataSource dataSource = null;
-    public Object getRealmConfiguration() throws UserManagerException {
-        DefaultRealmConfig retConfig;
-        if (config == null) {
-            retConfig = new DefaultRealmConfig();
-        } else {
-            retConfig = new DefaultRealmConfig(config);
-        }
-        return retConfig;
-    }
-
+    
     public void init(Object configBean) throws UserManagerException {
         if (!(configBean instanceof DefaultRealmConfig)) {
             return;
         }
-        this.config = (DefaultRealmConfig) configBean;
-        this.config = (DefaultRealmConfig) configBean;
-        
+        DefaultRealmConfig config = (DefaultRealmConfig) configBean;
+
         BasicDataSource basicDataSource = null;
         if (config.getDataSource() == null) {
             basicDataSource = new BasicDataSource();
@@ -51,16 +42,15 @@
             basicDataSource.setUsername(config.getConnectionUserName());
             basicDataSource.setPassword(config.getConnectionPassword());
         }
-        
-        dataSource = (DataSource)basicDataSource;
-        
-        UUIDGenerator.getUUID();
-        
-        authenticator = new HybridAuthenticator();
-        authorizer = new HybridAuthorizer(dataSource);
-        aclAdmin = new HybridAccessControlAdmin(dataSource);
-        usAdmin = new HybridUserStoreAdmin(dataSource);
-        usReader = new HybridUserStoreReader(dataSource);
+        this.config = config;
+        dataSource = (DataSource) basicDataSource;
+
+        authenticator = new WSASAuthenticator();
+        authorizer = new DefaultAuthorizer(dataSource,  
DefaultRealmConfig.PERMISSION_BLOCK_FIRST, (DefaultStrategy)new 
WSASStrategyImpl());
+        aclAdmin = new DefaultAccessControlAdmin(dataSource,
+                (DefaultStrategy)new WSASStrategyImpl());
+        usAdmin = new WSASUserStoreAdmin(dataSource, new WSASStrategyImpl());
+        usReader = new WSASUserStoreReader(dataSource, new WSASStrategyImpl());
 
     }
 
@@ -77,6 +67,16 @@
         return authorizer;
     }
 
+    public Object getRealmConfiguration() throws UserManagerException {
+        DefaultRealmConfig retConfig = null;
+        if (config == null) {
+            retConfig = new DefaultRealmConfig();
+        } else {
+            retConfig = new DefaultRealmConfig(config);
+        }
+        return retConfig;
+    }
+
     public UserStoreAdmin getUserStoreAdmin() throws UserManagerException {
         return usAdmin;
     }
@@ -84,4 +84,5 @@
     public UserStoreReader getUserStoreReader() throws UserManagerException {
         return usReader;
     }
+
 }
\ No newline at end of file

Added: 
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/WSASStrategyImpl.java
==============================================================================
--- (empty file)
+++ 
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/WSASStrategyImpl.java
 Sat Jan 19 03:31:07 2008
@@ -0,0 +1,235 @@
+package org.wso2.mashup.realm.wsas;
+
+import org.apache.axis2.AxisFault;
+import org.wso2.usermanager.UserManagerException;
+import org.wso2.usermanager.readwrite.DefaultRealmConstants;
+import org.wso2.usermanager.readwrite.DefaultStrategy;
+import org.wso2.usermanager.readwrite.util.DefaultStrategyImpl;
+import org.wso2.wsas.admin.service.UserAdmin;
+import org.wso2.wsas.admin.service.util.RoleData;
+import org.wso2.wsas.admin.service.util.UserData;
+
+public class WSASStrategyImpl implements DefaultStrategy{
+    
+    private DefaultStrategyImpl  defaultStrategy = null;
+    
+    public WSASStrategyImpl() {
+        defaultStrategy = new DefaultStrategyImpl();
+    }
+    
+    public static final String GET_ROLE_AUTHORIZED_SQL = "select" +
+    " um_role_permissions.is_allowed" +
+    " from um_role_permissions, um_permissions" +
+    " where um_role_permissions.permission_id=um_permissions.id" +
+    " and um_permissions.resource_id=?" +
+    " and um_permissions.action=? and um_role_permissions.role_id=?";
+    
+    public static final String GET_USER_AUTHORIZED_SQL = "select 
um_user_permissions.is_allowed" +
+    " from um_user_permissions, um_permissions" +
+    " where um_user_permissions.permission_id=um_permissions.id" +
+    " and um_permissions.resource_id=?" +
+    " and um_permissions.action=?" +
+    " and um_user_permissions.user_id=?";
+    
+    public static final String GET_ALLOWED_ROLES_FOR_RESOURCE_SQL = "select 
um_role_permissions.role_id" +
+    " from um_role_permissions, um_permissions" +
+    " where um_permissions.resource_id=?" +
+    " and um_permissions.action=?" +
+    " and um_permissions.id=um_role_permissions.permission_id" +
+    " and um_role_permissions.is_allowed=1";
+    
+    public static final String GET_DENIED_ROLES_FOR_RESOURCE_SQL = "select 
um_role_permissions.role_id" +
+    " from um_role_permissions, um_permissions, um_roles" +
+    " where um_permissions.resource_id=?" +
+    " and um_permissions.action=?" +
+    " and um_permissions.id=um_role_permissions.permission_id" +
+    " and um_role_permissions.is_allowed=0";
+
+    public static final String GET_ALLOWED_USERS_ON_RESOURCE_SQL = "select 
um_user_permissions.user_id" +
+    " from um_user_permissions, um_permissions" +
+    " where um_permissions.resource_id=?" +
+    " and um_permissions.action=?" +
+    " and um_permissions.id=um_user_permissions.permission_id" +
+    " and um_user_permissions.is_allowed=1";
+
+    public static final String GET_DENIED_USERS_ON_RESOURCE_SQL = "select 
um_user_permissions.user_id" +
+    " from um_user_permissions, um_permissions" +
+    " where um_permissions.resource_id=?" +
+    " and um_permissions.action=?" +
+    " and um_permissions.id=um_user_permissions.permission_id" +
+    " and um_user_permissions.is_allowed=0";
+    
+    public static final String DELETE_USER_PERMISSION = "delete from 
um_user_permissions"+
+    " where um_user_permissions.user_id=?";
+
+    public static final String DELETE_ROLE_PERMISSION = "delete from 
um_role_permissions"+
+    " where um_role_permissions.user_id=?";
+
+    
+    public static final String GET_ROLE_ATTRIBUTES_SQL = "select *" +
+    " from um_role_attributes" +
+    " where um_role_attributes.role_id=?";
+    
+    public static final String GET_USER_ATTRIBUTES_SQL = "select *" +
+    " from um_user_attributes" +
+    " where um_user_attributes.user_id=?";
+    
+    public static final String GET_USERS_WITH_PROPERTY_SQL = "select user_id" +
+    " from um_user_attributes"+
+    " where um_user_attributes.attr_name=? and 
um_user_attributes.attr_value=?";
+
+    public static final String GET_USERS_WITH_PROPERTY_VALUE_SQL = "select 
user_id" +
+    " from um_user_attributes " +
+    " where um_user_attributes.attr_value=?";
+    
+    
+    
+    public String getAccessControlAdminSQL(int sqlID) {
+        return defaultStrategy.getAccessControlAdminSQL(sqlID);
+    }
+
+    public String getAuthenticatorSQL(int sqlID) {
+        return null;
+    }
+
+   
+    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 = GET_ROLE_AUTHORIZED_SQL;
+            break;
+        case DefaultRealmConstants.GET_USER_AUTHORIZED:
+            sqlString = GET_USER_AUTHORIZED_SQL;
+            break;
+        case DefaultRealmConstants.GET_ALLOWED_ROLES_FOR_RESOURCE:
+            sqlString = GET_ALLOWED_ROLES_FOR_RESOURCE_SQL;
+            break;
+        case DefaultRealmConstants.GET_DENIED_ROLES_FOR_RESOURCE:
+            sqlString = GET_DENIED_ROLES_FOR_RESOURCE_SQL;
+            break;
+        case DefaultRealmConstants.GET_ALLOWED_USERS_ON_RESOURCE:
+            sqlString = GET_ALLOWED_USERS_ON_RESOURCE_SQL;
+            break;
+        case DefaultRealmConstants.GET_DENIED_USERS_ON_RESOURCE:
+            sqlString = 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 getColumnName(int columnID) {
+        String colName = null;
+        if(columnID == DefaultRealmConstants.COLUMN_ID_USER_NAME){
+            colName = "USER_ID";
+        }else if(columnID == DefaultRealmConstants.COLUMN_ID_ROLE_NAME){
+            colName = "ROLE_ID";
+        }else{
+            colName = defaultStrategy.getColumnName(columnID);
+        }
+        return colName; 
+    }
+
+   
+    public String getUserStoreAdminSQL(int sqlID) {
+        String sqlString = null;
+        switch (sqlID) {
+        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.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 getUserStoreReaderSQL(int sqlID) {
+        String sqlString = null;
+        switch (sqlID) {
+        case DefaultRealmConstants.GET_ROLE_ATTRIBUTES:
+            sqlString = GET_ROLE_ATTRIBUTES_SQL;
+            break;
+        case DefaultRealmConstants.GET_USER_ATTRIBUTES:
+            sqlString = GET_USER_ATTRIBUTES_SQL;
+            break;
+        case DefaultRealmConstants.GET_ATTRIBUTE_NAMES:
+            sqlString = DefaultRealmConstants.GET_ATTRIBUTE_NAMES_SQL;
+            break;
+        case DefaultRealmConstants.GET_USERS_WITH_PROPERTY:
+            sqlString = GET_USERS_WITH_PROPERTY_SQL;
+            break;
+        case DefaultRealmConstants.GET_USERS_WITH_PROPERTY_VALUE:
+            sqlString = GET_USERS_WITH_PROPERTY_VALUE_SQL;
+            break;
+        default:
+            break;
+        }
+        return sqlString;
+    }
+
+    public String getRoleId(String roleName) throws UserManagerException {
+       return roleName;
+    }
+
+    public String getUserId(String userName) throws UserManagerException {
+        return userName;
+    }
+    
+    public String getCommonSQL(int sqlID) {
+        return null;
+    }
+    
+
+    public String[] getUserRoles(String userName) throws UserManagerException {
+        String[] names = new String[0];
+        try {
+            UserAdmin admin = new UserAdmin();
+            UserData[] data =  admin.getUserNames();
+            for(int i=0;i<data.length;i++){
+                if(data[i].getUserName().equals(userName)){
+                    RoleData[] roles = data[i].getRoles();
+                    names = new String[roles.length];
+                    for(int j=0; j<roles.length; j++){
+                        names[j] = roles[j].getRole();
+                    }
+                    break;
+                }
+            }
+        } catch (AxisFault e) {
+            throw new UserManagerException(e.getMessage());
+        }
+        return names;
+    }    
+    
+
+}

Added: 
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/WSASUserStoreAdmin.java
==============================================================================
--- (empty file)
+++ 
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/WSASUserStoreAdmin.java
       Sat Jan 19 03:31:07 2008
@@ -0,0 +1,161 @@
+package org.wso2.mashup.realm.wsas;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.sql.DataSource;
+
+import org.apache.axis2.AxisFault;
+import org.wso2.mashup.MashupConstants;
+import org.wso2.usermanager.UserManagerException;
+import org.wso2.usermanager.UserStoreAdmin;
+import org.wso2.usermanager.readwrite.DefaultStrategy;
+import org.wso2.usermanager.readwrite.DefaultUserStoreAdmin;
+import org.wso2.wsas.admin.service.UserAdmin;
+
+public class WSASUserStoreAdmin
+        extends WSASUserStoreReader implements UserStoreAdmin {
+
+    private UserStoreAdmin defaultAdmin = null;
+    
+    public WSASUserStoreAdmin(DataSource dSource, DefaultStrategy strategy) 
throws UserManagerException {
+        super(dSource, strategy);
+        defaultAdmin = new DefaultUserStoreAdmin(dSource, strategy);
+    }
+
+    public void addRole(String roleName) throws UserManagerException {
+        try {
+            UserAdmin admin = new UserAdmin();
+            admin.addRole(roleName, "");
+        } catch (AxisFault e) {
+            throw new UserManagerException(e.getMessage());
+        }
+
+    }
+
+    public void addUser(String userName, Object credential)
+            throws UserManagerException {
+        try {
+            UserAdmin admin = new UserAdmin();
+            admin.addUser(userName, (String) credential,
+                    MashupConstants.MASHUP_USER_ROLE, "");
+        } catch (AxisFault e) {
+            throw new UserManagerException(e.getMessage());
+        }
+
+    }
+
+    public void addUserToRole(String userName, String roleName)
+            throws UserManagerException {
+        try {
+            UserAdmin admin = new UserAdmin();
+            admin.assignRoleToUser(userName, roleName);
+        } catch (AxisFault e) {
+            throw new UserManagerException(e.getMessage());
+        }
+
+    }
+
+    public void deleteRole(String roleName) throws UserManagerException {
+        Connection dbConnection = null;
+        try {
+            UserAdmin admin = new UserAdmin();
+            admin.deleteRoleCompletely(roleName);
+            defaultAdmin.setRoleProperties(roleName, new HashMap());
+
+            dbConnection = dataSource.getConnection();
+            PreparedStatement deleteUserStmt = dbConnection
+                    .prepareStatement(WSASStrategyImpl.DELETE_ROLE_PERMISSION);
+            deleteUserStmt.setString(1, roleName);
+            deleteUserStmt.executeUpdate();
+            dbConnection.commit();
+            deleteUserStmt.close();
+        } catch (SQLException e) {
+            throw new UserManagerException("errorModifyingUserStore", e);
+        } catch (AxisFault e) {
+            throw new UserManagerException(e.getMessage());
+        } finally {
+            try {
+                if (dbConnection != null) {
+                    dbConnection.close();
+                }
+            } catch (SQLException e) {
+                throw new UserManagerException("errorClosingConnection", e);
+            }
+        }
+
+    }
+
+    public void deleteUser(String userName) throws UserManagerException {
+        Connection dbConnection = null;
+        try {
+            UserAdmin admin = new UserAdmin();
+            admin.deleteUser(userName);
+            defaultAdmin.setUserProperties(userName, new HashMap());
+            dbConnection = dataSource.getConnection();
+            PreparedStatement deleteUserStmt = dbConnection
+                    .prepareStatement(WSASStrategyImpl.DELETE_USER_PERMISSION);
+            deleteUserStmt.setString(1, userName);
+            deleteUserStmt.executeUpdate();
+            dbConnection.commit();
+            deleteUserStmt.close();
+        } catch (SQLException e) {
+            throw new UserManagerException("errorModifyingUserStore", e);
+        } catch (AxisFault e) {
+            throw new UserManagerException(e.getMessage());
+        } finally {
+            try {
+                if (dbConnection != null) {
+                    dbConnection.close();
+                }
+            } catch (SQLException e) {
+                throw new UserManagerException("errorClosingConnection", e);
+            }
+        }
+    }
+
+    public void removeUserFromRole(String userName, String roleName)
+            throws UserManagerException {
+
+        try {
+            UserAdmin admin = new UserAdmin();
+            admin.deleteRoleFromUser(userName, roleName);
+        } catch (Exception e) {
+            throw new UserManagerException(e.getMessage());
+        }
+
+    }
+
+    public void setRoleProperties(String roleName, Map properties)
+            throws UserManagerException {
+        UserAdmin admin = new UserAdmin();
+        defaultAdmin.setRoleProperties(roleName, properties);
+    }
+
+    public void setUserProperties(String userName, Map properties)
+            throws UserManagerException {
+        UserAdmin admin = new UserAdmin();
+        defaultAdmin.setUserProperties(userName, properties);
+    }
+
+    public void updateUser(String userName, Object newCredential,
+            Object oldCredential) throws UserManagerException {
+        try {
+            UserAdmin admin = new UserAdmin();
+            admin.editUserPassword((String) oldCredential, userName,
+                    (String) newCredential);
+        } catch (Exception e) {
+            throw new UserManagerException(e.getMessage());
+        }
+
+    }
+
+    public void updateUser(String userName, Object newCredential)
+            throws UserManagerException {
+        throw new UserManagerException("Unsupported Operation for WSAS Realm");
+    }
+
+}

Added: 
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/WSASUserStoreReader.java
==============================================================================
--- (empty file)
+++ 
trunk/mashup/java/modules/core/src/org/wso2/mashup/realm/wsas/WSASUserStoreReader.java
      Sat Jan 19 03:31:07 2008
@@ -0,0 +1,125 @@
+package org.wso2.mashup.realm.wsas;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.sql.DataSource;
+
+import org.apache.axis2.AxisFault;
+import org.wso2.usermanager.UserManagerException;
+import org.wso2.usermanager.UserStoreReader;
+import org.wso2.usermanager.readwrite.DefaultStrategy;
+import org.wso2.usermanager.readwrite.DefaultUserStoreReader;
+import org.wso2.wsas.admin.service.UserAdmin;
+import org.wso2.wsas.admin.service.util.RoleData;
+import org.wso2.wsas.admin.service.util.UserData;
+
+public class WSASUserStoreReader implements UserStoreReader {
+    
+    private UserStoreReader defaultReader = null;
+    protected DataSource dataSource = null;
+    protected DefaultStrategy strategy = null;
+    
+    public WSASUserStoreReader(DataSource dSource, DefaultStrategy 
strategyObject) throws UserManagerException{
+        strategy = strategyObject;
+        defaultReader = new DefaultUserStoreReader(dSource, strategy);
+        dataSource = dSource;
+    }
+    
+    public String[] getAllRoleNames() throws UserManagerException {
+        try {
+            UserAdmin admin = new UserAdmin();
+            return admin.getRoleNames();
+        } catch (AxisFault e) {
+            throw new UserManagerException(e.getMessage());
+        }
+    }
+
+    public String[] getAllUserNames() throws UserManagerException {
+        try {
+            UserAdmin admin = new UserAdmin();
+            return admin.getUsers();
+        } catch (AxisFault e) {
+            throw new UserManagerException(e.getMessage());
+        }
+    }
+
+    public Map getRoleProperties(String roleName) throws UserManagerException {
+        return defaultReader.getRoleProperties(roleName);
+    }
+
+    public String[] getUserNamesWithPropertyValue(String propertyName,
+            String propetyValue) throws UserManagerException {
+        return defaultReader.getUserNamesWithPropertyValue(propertyName, 
propetyValue);
+    }
+
+    public Map getUserProperties(String userName) throws UserManagerException {
+        return defaultReader.getUserProperties(userName);
+    }
+
+    public String[] getUserPropertyNames() throws UserManagerException {
+        return defaultReader.getUserPropertyNames();
+    }
+
+    public String[] getUserRoles(String userName) throws UserManagerException {
+        String[] names = new String[0];
+        try {
+            UserAdmin admin = new UserAdmin();
+            UserData[] data =  admin.getUserNames();
+            for(int i=0;i<data.length;i++){
+                if(data[i].getUserName().equals(userName)){
+                    RoleData[] roles = data[i].getRoles();
+                    names = new String[roles.length];
+                    for(int j=0; j<roles.length; j++){
+                        names[j] = roles[j].getRole();
+                    }
+                    break;
+                }
+            }
+        } catch (AxisFault e) {
+            throw new UserManagerException(e.getMessage());
+        }
+        return names;
+    }
+
+    public String[] getUsersInRole(String roleName) throws 
UserManagerException {
+        String[] names = new String[0];
+        try {
+            List lst = new ArrayList();
+            UserAdmin admin = new UserAdmin();
+            UserData[] data =  admin.getUserNames();
+            for(int i=0;i<data.length;i++){
+                RoleData[] roles = data[i].getRoles();
+                names = new String[roles.length];
+                for(int j=0; j<roles.length; j++){
+                    if(roles[i].getRole().equals(roleName)){
+                        lst.add(data[i].getUserName());
+                    }
+                }
+            }
+            names = (String[])lst.toArray();
+        } catch (AxisFault e) {
+            throw new UserManagerException(e.getMessage());
+        }
+        return names;
+    }
+
+    public boolean isExistingUser(String userName) throws UserManagerException 
{
+        boolean isExisting = false;
+        try {
+            UserAdmin admin = new UserAdmin();
+            UserData[] data =  admin.getUserNames();
+            for(int i=0;i<data.length;i++){
+                if(data[i].getUserName().equals(userName)){
+                    isExisting = true;
+                }
+            }
+        } catch (AxisFault e) {
+            throw new UserManagerException(e.getMessage());
+        }
+        return isExisting;
+    }
+    
+    
+}

_______________________________________________
Mashup-dev mailing list
[email protected]
http://www.wso2.org/cgi-bin/mailman/listinfo/mashup-dev

Reply via email to