Author: dimuthul
Date: Wed Dec  5 20:56:59 2007
New Revision: 10581

Log:

Fixing Commons 39.



Modified:
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/Authorizer.java
   
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLAuthorizer.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/DefaultRealmConstants.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/readwrite/DefaultRealmTest.java

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/Authorizer.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/Authorizer.java
   (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/Authorizer.java
   Wed Dec  5 20:56:59 2007
@@ -32,7 +32,13 @@
     /**
      * Returns all roles who are authorized to perform an action on a resource
      */
-    public String[] getAuthorizedRolesForResource(String resourceId,
+    public String[] getAllowedRolesForResource(String resourceId,
+            String action) throws UserManagerException;
+    
+    /**
+     * Returns all roles who are authorized to perform an action on a resource
+     */
+    public String[] getDeniedRolesForResource(String resourceId,
             String action) throws UserManagerException;
 
 }

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLAuthorizer.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLAuthorizer.java
      (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/acl/realm/ACLAuthorizer.java
      Wed Dec  5 20:56:59 2007
@@ -14,11 +14,16 @@
         this.adminUserName = user;
     }
 
-    public String[] getAuthorizedRolesForResource(String resourceId,
-            String action) throws UserManagerException {
-        return authorizer.getAuthorizedRolesForResource(resourceId, action);
+    public String[] getAllowedRolesForResource(String resourceId,
+            String action) throws UserManagerException{
+        return authorizer.getAllowedRolesForResource(resourceId, action);
     }
-
+    
+    public String[] getDeniedRolesForResource(String resourceId,
+            String action) throws UserManagerException{
+        return authorizer.getDeniedRolesForResource(resourceId, action);
+    }
+    
   
     public String[] getAllowedUsersForResource(String resourceId,
             String action) throws UserManagerException{

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
  Wed Dec  5 20:56:59 2007
@@ -102,11 +102,11 @@
     }
 
 
-    public String[] getAuthorizedRolesForResource(String resourceId,
+    public String[] getAllowedRolesForResource(String resourceId,
             String action) throws UserManagerException {
         String[] names = new String[0];
         try {
-            PreparedStatement getAuthorizedRolesForResourceStmt = 
dbConnection.prepareStatement(DefaultRealmConstants.GET_ROLES_WITH_RESOURCE_PERMISSION);
+            PreparedStatement getAuthorizedRolesForResourceStmt = 
dbConnection.prepareStatement(DefaultRealmConstants.GET_ALLOWED_ROLES_FOR_RESOURCE);
             getAuthorizedRolesForResourceStmt.setString(1, resourceId);
             getAuthorizedRolesForResourceStmt.setString(2, action);
             ResultSet rs = getAuthorizedRolesForResourceStmt.executeQuery();
@@ -125,6 +125,31 @@
         return names;
     }
     
+    public String[] getDeniedRolesForResource(String resourceId,
+            String action) throws UserManagerException{
+        
+        String[] names = new String[0];
+        try {
+            PreparedStatement getAuthorizedRolesForResourceStmt = 
dbConnection.prepareStatement(DefaultRealmConstants.GET_DENIED_ROLES_FOR_RESOURCE);
+            getAuthorizedRolesForResourceStmt.setString(1, resourceId);
+            getAuthorizedRolesForResourceStmt.setString(2, action);
+            ResultSet rs = getAuthorizedRolesForResourceStmt.executeQuery();
+            List lst = new LinkedList();
+            while (rs.next()) {
+                lst.add(rs.getString(DefaultRealmConstants.COLUMN_ROLE_NAME));
+            }
+            if (lst.size() > 0) {
+                names = (String[]) lst.toArray(new String[lst.size()]);
+            }
+            getAuthorizedRolesForResourceStmt.close();
+        } catch (SQLException e) {
+            log.debug(e);
+            throw new UserManagerException("errorReadingFromUserStore", e);
+        }
+        return names;
+        
+    }
+    
     
     private Boolean getUserAuthorizationConsideringRoles(String userName,
             String resourceId, String action) throws UserManagerException {
@@ -163,7 +188,7 @@
         Boolean isAuthorized = null;
         try {
             PreparedStatement isRoleAuthorizedStmt = dbConnection
-                    .prepareStatement(DefaultRealmConstants.GET_ROLE_ALLOWED);
+                    
.prepareStatement(DefaultRealmConstants.GET_ROLE_AUTHORIZED);
             isRoleAuthorizedStmt.setString(1, resourceId);
             isRoleAuthorizedStmt.setString(2, action);
             isRoleAuthorizedStmt.setString(3, roleName);
@@ -185,7 +210,7 @@
         Boolean result = null;
         try {
             PreparedStatement isUserAuthorizedStmt = dbConnection
-                    .prepareStatement(DefaultRealmConstants.GET_USER_ALLOWED);
+                    
.prepareStatement(DefaultRealmConstants.GET_USER_AUTHORIZED);
             isUserAuthorizedStmt.setString(1, resourceId);
             isUserAuthorizedStmt.setString(2, action);
             isUserAuthorizedStmt.setString(3, userName);

Modified: 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultRealmConstants.java
==============================================================================
--- 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultRealmConstants.java
      (original)
+++ 
trunk/commons/usermanager/modules/core/src/main/java/org/wso2/usermanager/readwrite/DefaultRealmConstants.java
      Wed Dec  5 20:56:59 2007
@@ -13,40 +13,123 @@
     public static final String UPDATE_USER = "update um_users set password= ? 
where user_name= ?";
     public static final String DELETE_USER ="delete from um_users where 
user_name = ?";
     public static final String DELETE_ROLE = "delete from um_roles where 
role_name = ?";
-    public static final String DELETE_USER_ROLE = "delete from um_user_roles 
where user_id=(select id from um_users where user_name=?) and role_id=(select 
id from um_roles where role_name=?)";
-    public static final String DELETE_ROLE_ATTRIBUTE = "delete from 
um_role_attributes where role_id = ?";
-    public static final String DELETE_USER_ATTRIBUTE = "delete from 
um_user_attributes where user_id = ?";
-    public static final String DELETE_PERMISSION_ON_RESOURCE = "delete from 
um_permissions where resource_id = ?";
+    
+    public static final String DELETE_USER_ROLE = "delete from um_user_roles" +
+               " where user_id=(select id from um_users where user_name=?)" +
+               " and role_id=(select id from um_roles where role_name=?)";
+    
+    public static final String DELETE_ROLE_ATTRIBUTE = "delete from 
um_role_attributes" +
+               " where role_id = ?";
+    
+    public static final String DELETE_USER_ATTRIBUTE = "delete from 
um_user_attributes" +
+               " where user_id = ?";
+    
+    public static final String DELETE_PERMISSION_ON_RESOURCE = "delete from 
um_permissions" +
+               " where resource_id = ?";
+    
     public static final String GET_USER ="select * from um_users where 
user_name=?";
     public static final String GET_ROLE = "select * from um_roles where 
role_name=?";
 
-    public static final String DELETE_USER_PERMISSION = "delete from 
um_user_permissions where user_id = ? and permission_id = ?";
-    public static final String DELETE_ROLE_PERMISSION = "delete from 
um_role_permissions where role_id = ? and permission_id = ?";
+    public static final String DELETE_USER_PERMISSION = "delete from 
um_user_permissions" +
+               " where user_id = ? and permission_id = ?";
+    
+    public static final String DELETE_ROLE_PERMISSION = "delete from 
um_role_permissions" +
+               " where role_id = ? and permission_id = ?";
     
+    public static final String GET_USER_ROLES = "select um_roles.role_name" +
+               " from um_user_roles, um_roles, um_users where 
um_users.user_name=?" +
+               " and um_users.id=um_user_roles.user_id and" +
+               " um_roles.id=um_user_roles.role_id";
     
+    public static final String GET_ROLE_ATTRIBUTES = "select *" +
+               " from um_role_attributes, um_roles" +
+               " where um_roles.id = um_role_attributes.role_id" +
+               " and um_roles.role_name=?";
     
-    public static final String GET_USER_ROLES = "select um_roles.role_name 
from um_user_roles, um_roles, um_users where um_users.user_name=? and 
um_users.id=um_user_roles.user_id and um_roles.id=um_user_roles.role_id";
-    public static final String GET_ROLE_ATTRIBUTES = "select * from 
um_role_attributes, um_roles where um_roles.id = um_role_attributes.role_id and 
um_roles.role_name=?";
-    public static final String GET_USER_ATTRIBUTES = "select * from 
um_user_attributes, um_users where um_users.id = um_user_attributes.user_id and 
um_users.user_name=?";
-    public static final String GET_PERMISSION = "select id from um_permissions 
where um_permissions.resource_id=? and um_permissions.action=?";
-    public static final String GET_ROLE_ALLOWED = "select 
um_role_permissions.is_allowed from um_role_permissions, um_permissions, 
um_roles where um_role_permissions.role_id=um_roles.id and 
um_role_permissions.permission_id=um_permissions.id and 
um_permissions.resource_id=? and um_permissions.action=? and 
um_roles.role_name=?";
-    public static final String GET_USER_ALLOWED = "select 
um_user_permissions.is_allowed from um_user_permissions, um_permissions, 
um_users where um_user_permissions.user_id=um_users.id and 
um_user_permissions.permission_id=um_permissions.id and 
um_permissions.resource_id=? and um_permissions.action=? and 
um_users.user_name=?";
-    public static final String GET_ROLES_WITH_RESOURCE_PERMISSION = "select 
um_roles.role_name 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.role_id=um_roles.id";
-    public static final String GET_ALLOWED_USERS_ON_RESOURCE = "select 
um_users.user_name from um_user_permissions, um_permissions, um_users where 
um_permissions.resource_id=? and um_permissions.action=? and 
um_permissions.id=um_user_permissions.permission_id and 
um_user_permissions.user_id=um_users.id and um_user_permissions.is_allowed=1";
-    public static final String GET_DENIED_USERS_ON_RESOURCE = "select 
um_users.user_name from um_user_permissions, um_permissions, um_users where 
um_permissions.resource_id=? and um_permissions.action=? and 
um_permissions.id=um_user_permissions.permission_id and 
um_user_permissions.user_id=um_users.id and um_user_permissions.is_allowed=0";
+    public static final String GET_USER_ATTRIBUTES = "select *" +
+               " from um_user_attributes, um_users" +
+               " where um_users.id = um_user_attributes.user_id" +
+               " and um_users.user_name=?";
+    
+    public static final String GET_PERMISSION = "select id" +
+               " from um_permissions where um_permissions.resource_id=?" +
+               " and um_permissions.action=?";
+   
+    public static final String GET_ROLE_AUTHORIZED = "select" +
+               " um_role_permissions.is_allowed" +
+               " from um_role_permissions, um_permissions, um_roles" +
+               " where um_role_permissions.role_id=um_roles.id" +
+               " and um_role_permissions.permission_id=um_permissions.id" +
+               " and um_permissions.resource_id=?" +
+               " and um_permissions.action=? and um_roles.role_name=?";
+    
+    public static final String GET_USER_AUTHORIZED = "select 
um_user_permissions.is_allowed" +
+               " from um_user_permissions, um_permissions, um_users" +
+               " where um_user_permissions.user_id=um_users.id" +
+               " and um_user_permissions.permission_id=um_permissions.id" +
+               " and um_permissions.resource_id=?" +
+               " and um_permissions.action=?" +
+               " and um_users.user_name=?";
 
-    public static final String GET_ROLE_PERMISSION = "select * from 
um_role_permissions where permission_id=?";
-    public static final String GET_USER_PERMISSION = "select * from 
um_user_permissions where permission_id=?";
+    public static final String GET_ALLOWED_ROLES_FOR_RESOURCE = "select 
um_roles.role_name" +
+               " 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.role_id=um_roles.id" +
+               " and um_role_permissions.is_allowed=1";
+    
+    public static final String GET_DENIED_ROLES_FOR_RESOURCE = "select 
um_roles.role_name" +
+               " 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.role_id=um_roles.id" +
+               " and um_role_permissions.is_allowed=0";
+    
+    public static final String GET_ALLOWED_USERS_ON_RESOURCE = "select 
um_users.user_name" +
+               " from um_user_permissions, um_permissions, um_users" +
+               " where um_permissions.resource_id=?" +
+               " and um_permissions.action=?" +
+               " and um_permissions.id=um_user_permissions.permission_id" +
+               " and um_user_permissions.user_id=um_users.id" +
+               " and um_user_permissions.is_allowed=1";
+    
+    public static final String GET_DENIED_USERS_ON_RESOURCE = "select 
um_users.user_name" +
+               " from um_user_permissions, um_permissions, um_users" +
+               " where um_permissions.resource_id=?" +
+               " and um_permissions.action=?" +
+               " and um_permissions.id=um_user_permissions.permission_id" +
+               " and um_user_permissions.user_id=um_users.id" +
+               " and um_user_permissions.is_allowed=0";
+
+    public static final String GET_ROLE_PERMISSION = "select * from 
um_role_permissions" +
+               " where permission_id=?";
+    public static final String GET_USER_PERMISSION = "select * from 
um_user_permissions" +
+               " where permission_id=?";
     public static final String GET_ROLES_ALL = "select role_name from 
um_roles";
     public static final String GET_USERS_ALL = "select user_name from 
um_users";
     public static final String GET_USER_ID = "select id from um_users where 
user_name=?";
     public static final String GET_ROLE_ID = "select id from um_roles where 
role_name=?";
     
-    public static final String GET_RESOURCE_PERMISSION = "select * from 
um_permissions where um_permissions.resource_id=?";
-    public static final String GET_ATTRIBUTE_NAMES = "select distinct 
attr_name from  um_user_attributes";
+    public static final String GET_RESOURCE_PERMISSION = "select * from 
um_permissions" +
+               " where um_permissions.resource_id=?";
+    public static final String GET_ATTRIBUTE_NAMES = "select distinct 
attr_name" +
+               " from  um_user_attributes";
+    
+    public static final String GET_USERS_IN_ROLE = "select um_users.user_name" 
+
+               " from um_users, um_user_roles, um_roles" +
+               " where um_users.id=um_user_roles.user_id" +
+               " and um_roles.id=um_user_roles.role_id" +
+               " and um_roles.role_name=?";
+    
+    public static final String GET_USERS_WITH_PROPERTY = "select user_name" +
+               " from um_users, um_user_attributes where um_users.id 
=um_user_attributes.user_id" +
+               " and um_user_attributes.attr_name=? and 
um_user_attributes.attr_value=?";
     
-    public static final String GET_USERS_IN_ROLE = "select um_users.user_name 
from um_users, um_user_roles, um_roles where um_users.id=um_user_roles.user_id 
and um_roles.id=um_user_roles.role_id and um_roles.role_name=?";
-    public static final String GET_USERS_WITH_PROPVALUE = "select user_name 
from um_users, um_user_attributes where um_users.id =um_user_attributes.user_id 
and um_user_attributes.attr_name=? and um_user_attributes.attr_value=?";
+    public static final String GET_USERS_WITH_PROPERTY_VALUE = "select 
user_name" +
+    " from um_users, um_user_attributes where um_users.id 
=um_user_attributes.user_id" +
+    " and um_user_attributes.attr_value=?";
      
     public static final String COLUMN_ATTR_NAME = "attr_name";
     public static final String COLUMN_ATTR_VALUE = "attr_value";

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
     Wed Dec  5 20:56:59 2007
@@ -156,10 +156,19 @@
             String propetyValue) throws UserManagerException {
         String[] names = new String[0];
         try {
-            PreparedStatement getPropValue = dbConnection
-                    
.prepareStatement(DefaultRealmConstants.GET_USERS_WITH_PROPVALUE);
-            getPropValue.setString(1, propertyName);
-            getPropValue.setString(2, propetyValue);
+            PreparedStatement getPropValue = null;
+            
+            if(propertyName != null && propertyName.length() != 0){
+                getPropValue= dbConnection
+                    
.prepareStatement(DefaultRealmConstants.GET_USERS_WITH_PROPERTY);
+                getPropValue.setString(1, propertyName);
+                getPropValue.setString(2, propetyValue);
+            }else{
+                getPropValue= dbConnection
+                
.prepareStatement(DefaultRealmConstants.GET_USERS_WITH_PROPERTY_VALUE);
+                getPropValue.setString(1, propetyValue);
+            }
+           
             ResultSet rs = getPropValue.executeQuery();
             List lst = new ArrayList();
             while (rs.next()) {

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
   Wed Dec  5 20:56:59 2007
@@ -90,6 +90,7 @@
         // restore stuff for further testing
         admin.addUser("vajira", "credential");
         admin.addUser("juhia", "jooo");
+             
     }
 
     public void attributesStuff() throws Exception {
@@ -103,6 +104,9 @@
         
         String[] names = reader.getUserNamesWithPropertyValue("telephone", 
"9870");
         TestCase.assertEquals("dimuthu", names[0]);
+        
+        admin.getUserNamesWithPropertyValue(null, "9870");
+        TestCase.assertEquals("dimuthu", names[0]);
 
         Map stored = reader.getUserProperties("dimuthu");
         TestCase.assertEquals(props.size(), stored.size());
@@ -120,6 +124,8 @@
 
         String[] attrNames = reader.getUserPropertyNames();
         TestCase.assertEquals(2, attrNames.length);
+        
+        
 
     }
 
@@ -167,9 +173,6 @@
         admin.addRole("hora");
         admin.addUserToRole("dimuthu", "normal");
         admin.addUserToRole("vajira", "admin");
-        
-        
-      
     }
 
     public void authorizationStuff() throws Exception {
@@ -199,11 +202,16 @@
         String au = Arrays.toString(authorizedUsers);
         TestCase.assertTrue(au.contains("vajira"));
         TestCase.assertTrue(au.contains("dimuthu"));
-        String[] authorizedRoles = athzr.getAuthorizedRolesForResource(
+        
+        String[] authorizedRoles = athzr.getAllowedRolesForResource(
                 "server", "login");
         String ar = Arrays.toString(authorizedRoles);
         TestCase.assertTrue(ar.contains("admin"));
-
+    
+        String[] deniedRoles = athzr.getDeniedRolesForResource(
+                "denyResource", "deny");
+        TestCase.assertEquals(deniedRoles[0], "admin");
+    
         acAdmin.clearUserAuthorization("dimuthu", "floor", "dance");
 
         String[] deniedUsers = athzr.getDeniedUsersForResource("denyResource",
@@ -230,6 +238,8 @@
         acAdmin.copyAuthorizations("server", "desktop");
         TestCase
                 .assertTrue(athzr.isRoleAuthorized("admin", "desktop", 
"login"));
+        
+        
 
     }
 

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

Reply via email to