morciuch    2004/03/30 20:49:11

  Modified:    src/java/org/apache/jetspeed/modules/actions/portlets
                        GenericMVCAction.java IndexPortletRegistry.java
                        PsmlUpdateAction.java RegistryUpdateAction.java
               src/java/org/apache/jetspeed/modules/actions/portlets/security
                        GroupUpdateAction.java PermissionUpdateAction.java
                        RolePermissionUpdateAction.java
                        RoleUpdateAction.java
                        UserGroupRoleUpdateAction.java
                        UserGroupUpdateAction.java
                        UserRoleUpdateAction.java UserUpdateAction.java
               src/java/org/apache/jetspeed/services JetspeedSecurity.java
               src/java/org/apache/jetspeed/services/security
                        JetspeedDBSecurityService.java
                        JetspeedSecurityService.java
               webapp/WEB-INF/conf JetspeedSecurity.properties
                        JetspeedSecurity.template
  Log:
  Secured all security and registry portlet actions. A secured action may only be 
executed by user having one of the roles defined in 
services.JetspeedSecurity.admin.roles property. See JIRA issue JS1-421 for more 
information.
  
  Revision  Changes    Path
  1.7       +26 -3     
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/GenericMVCAction.java
  
  Index: GenericMVCAction.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/GenericMVCAction.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- GenericMVCAction.java     23 Feb 2004 02:56:58 -0000      1.6
  +++ GenericMVCAction.java     31 Mar 2004 04:49:10 -0000      1.7
  @@ -24,15 +24,14 @@
   import org.apache.jetspeed.portal.PortletInstance;
   import org.apache.jetspeed.portal.portlets.GenericMVCContext;
   import org.apache.jetspeed.portal.portlets.GenericMVCPortlet;
  +import org.apache.jetspeed.services.JetspeedSecurity;
   import org.apache.jetspeed.services.logging.JetspeedLogFactoryService;
   import org.apache.jetspeed.services.logging.JetspeedLogger;
   import org.apache.jetspeed.services.persistence.PersistenceManager;
   import org.apache.jetspeed.services.persistence.PortalPersistenceException;
   import org.apache.jetspeed.services.rundata.JetspeedRunData;
   import org.apache.jetspeed.util.PortletSessionState;
  -
   import org.apache.turbine.util.RunData;
  -
   import org.apache.velocity.context.Context;
   
   
  @@ -52,7 +51,7 @@
       /**
        * Static initialization of the logger for this class
        */    
  -    private static final JetspeedLogger logger = 
JetspeedLogFactoryService.getLogger(GenericMVCAction.class.getName());      
  +    protected static final JetspeedLogger logger = 
JetspeedLogFactoryService.getLogger(GenericMVCAction.class.getName());      
         
       /** Creates a new instance of GenericMVCAction */
       public GenericMVCAction()
  @@ -254,5 +253,29 @@
           PortletInstance instance = getPortletInstance(context);
           instance.setAttribute(attrName, value);
           PersistenceManager.store(instance);
  +    }
  +    
  +    /**
  +     * Throws an exception if user attempts to perform unathorized action.
  +     * 
  +     * @param data
  +     * @throws SecurityException
  +     */
  +    public void checkAdministrativeAction(RunData data) throws SecurityException
  +    {
  +             if (!JetspeedSecurity.hasAdminRole(data.getUser()))
  +             {
  +                     if (logger.isWarnEnabled())
  +                     {
  +                             logger.warn(
  +                                     "User ["
  +                                             + data.getUser().getUserName()
  +                                             + "] attempted to perform 
administrative action");
  +                     }
  +                     throw new SecurityException(
  +                             "User ["
  +                                     + data.getUser().getUserName()
  +                                     + "] must be an administrator to perform this 
action");
  +             }       
       }
     }
  
  
  
  1.6       +2 -2      
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/IndexPortletRegistry.java
  
  Index: IndexPortletRegistry.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/IndexPortletRegistry.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- IndexPortletRegistry.java 23 Feb 2004 02:56:58 -0000      1.5
  +++ IndexPortletRegistry.java 31 Mar 2004 04:49:10 -0000      1.6
  @@ -39,7 +39,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">Mark Orciuch</a>
    * @version $Id$
    */
  -public class IndexPortletRegistry extends GenericMVCAction
  +public class IndexPortletRegistry extends SecureGenericMVCAction
   {
   
       /**
  
  
  
  1.18      +2 -2      
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/PsmlUpdateAction.java
  
  Index: PsmlUpdateAction.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/PsmlUpdateAction.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- PsmlUpdateAction.java     23 Feb 2004 02:56:58 -0000      1.17
  +++ PsmlUpdateAction.java     31 Mar 2004 04:49:10 -0000      1.18
  @@ -81,7 +81,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
    * @version $Id$
    */
  -public class PsmlUpdateAction extends VelocityPortletAction
  +public class PsmlUpdateAction extends SecureVelocityPortletAction
   {
   
       protected static final String PSML_REFRESH_FLAG = "psmlRefreshFlag";
  
  
  
  1.10      +2 -2      
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/RegistryUpdateAction.java
  
  Index: RegistryUpdateAction.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/RegistryUpdateAction.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- RegistryUpdateAction.java 23 Feb 2004 02:56:58 -0000      1.9
  +++ RegistryUpdateAction.java 31 Mar 2004 04:49:10 -0000      1.10
  @@ -54,7 +54,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">Jeremy Ford</a>
    * @version $Id$
    */
  -public abstract class RegistryUpdateAction extends VelocityPortletAction
  +public abstract class RegistryUpdateAction extends SecureVelocityPortletAction
   {
       protected String registryEntryName = "";
       protected String registry = "";
  
  
  
  1.10      +10 -18    
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/GroupUpdateAction.java
  
  Index: GroupUpdateAction.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/GroupUpdateAction.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- GroupUpdateAction.java    23 Feb 2004 02:53:08 -0000      1.9
  +++ GroupUpdateAction.java    31 Mar 2004 04:49:10 -0000      1.10
  @@ -17,27 +17,19 @@
   package org.apache.jetspeed.modules.actions.portlets.security;
   
   // velocity
  -import org.apache.velocity.context.Context;
  -
  -// turbine util
  -import org.apache.turbine.util.RunData;
  -import org.apache.turbine.util.StringUtils;
  -import org.apache.turbine.util.DynamicURI;
  -
  -// jetspeed security
  -import org.apache.jetspeed.services.JetspeedSecurity;
  -import org.apache.jetspeed.services.security.GroupException;
  +import org.apache.jetspeed.modules.actions.portlets.SecureVelocityPortletAction;
   import org.apache.jetspeed.om.security.Group;
   import org.apache.jetspeed.om.security.JetspeedGroupFactory;
  -
  -// jetspeed services
  +import org.apache.jetspeed.portal.portlets.VelocityPortlet;
  +import org.apache.jetspeed.services.JetspeedSecurity;
   import org.apache.jetspeed.services.logging.JetspeedLogFactoryService;
   import org.apache.jetspeed.services.logging.JetspeedLogger;
   import org.apache.jetspeed.services.resources.JetspeedResources;
  -
  -// jetspeed velocity
  -import org.apache.jetspeed.modules.actions.portlets.VelocityPortletAction;
  -import org.apache.jetspeed.portal.portlets.VelocityPortlet;
  +import org.apache.jetspeed.services.security.GroupException;
  +import org.apache.turbine.util.DynamicURI;
  +import org.apache.turbine.util.RunData;
  +import org.apache.turbine.util.StringUtils;
  +import org.apache.velocity.context.Context;
   
   
   /**
  @@ -47,7 +39,7 @@
    * @version $Id$
    */
   
  -public class GroupUpdateAction extends VelocityPortletAction
  +public class GroupUpdateAction extends SecureVelocityPortletAction
   {
       private static final String TEMP_GROUP = "tempGroup";
       
  
  
  
  1.9       +10 -17    
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/PermissionUpdateAction.java
  
  Index: PermissionUpdateAction.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/PermissionUpdateAction.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- PermissionUpdateAction.java       23 Feb 2004 02:53:08 -0000      1.8
  +++ PermissionUpdateAction.java       31 Mar 2004 04:49:10 -0000      1.9
  @@ -17,26 +17,19 @@
   package org.apache.jetspeed.modules.actions.portlets.security;
   
   // velocity
  -import org.apache.velocity.context.Context;
  -
  -// turbine util
  -import org.apache.turbine.util.RunData;
  -import org.apache.turbine.util.StringUtils;
  -import org.apache.turbine.util.DynamicURI;
  -
  -// jetspeed om
  -import org.apache.jetspeed.om.security.Permission;
  +import org.apache.jetspeed.modules.actions.portlets.SecureVelocityPortletAction;
   import org.apache.jetspeed.om.security.JetspeedPermissionFactory;
  -// jetspeed services
  +import org.apache.jetspeed.om.security.Permission;
  +import org.apache.jetspeed.portal.portlets.VelocityPortlet;
   import org.apache.jetspeed.services.JetspeedSecurity;
   import org.apache.jetspeed.services.logging.JetspeedLogFactoryService;
   import org.apache.jetspeed.services.logging.JetspeedLogger;
  -import org.apache.jetspeed.services.security.JetspeedSecurityException;
   import org.apache.jetspeed.services.resources.JetspeedResources;
  -
  -// jetspeed velocity
  -import org.apache.jetspeed.modules.actions.portlets.VelocityPortletAction;
  -import org.apache.jetspeed.portal.portlets.VelocityPortlet;
  +import org.apache.jetspeed.services.security.JetspeedSecurityException;
  +import org.apache.turbine.util.DynamicURI;
  +import org.apache.turbine.util.RunData;
  +import org.apache.turbine.util.StringUtils;
  +import org.apache.velocity.context.Context;
   
   
   /**
  @@ -45,7 +38,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
    * @version $Id$
    */
  -public class PermissionUpdateAction extends VelocityPortletAction
  +public class PermissionUpdateAction extends SecureVelocityPortletAction
   {
       private static final String TEMP_PERMISSION = "tempPermission";
   
  
  
  
  1.9       +11 -19    
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/RolePermissionUpdateAction.java
  
  Index: RolePermissionUpdateAction.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/RolePermissionUpdateAction.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- RolePermissionUpdateAction.java   23 Feb 2004 02:53:08 -0000      1.8
  +++ RolePermissionUpdateAction.java   31 Mar 2004 04:49:10 -0000      1.9
  @@ -17,31 +17,23 @@
   package org.apache.jetspeed.modules.actions.portlets.security;
   
   // java util
  -import java.util.Vector;
  -import java.util.List;
   import java.util.Iterator;
  +import java.util.List;
  +import java.util.Vector;
   
  -// velocity
  -import org.apache.velocity.context.Context;
  -
  -// turbine util
  -import org.apache.turbine.util.RunData;
  -import org.apache.turbine.util.StringUtils;
  -import org.apache.turbine.util.DynamicURI;
  -
  -// jetspeed om
  -import org.apache.jetspeed.om.security.Role;
  +import org.apache.jetspeed.modules.actions.portlets.SecureVelocityPortletAction;
   import org.apache.jetspeed.om.security.Permission;
  -
  -// jetspeed services
  +import org.apache.jetspeed.om.security.Role;
  +import org.apache.jetspeed.portal.portlets.VelocityPortlet;
   import org.apache.jetspeed.services.JetspeedSecurity;
   import org.apache.jetspeed.services.logging.JetspeedLogFactoryService;
   import org.apache.jetspeed.services.logging.JetspeedLogger;
   import org.apache.jetspeed.services.resources.JetspeedResources;
   import org.apache.jetspeed.services.security.JetspeedSecurityException;
  -// jetspeed velocity
  -import org.apache.jetspeed.modules.actions.portlets.VelocityPortletAction;
  -import org.apache.jetspeed.portal.portlets.VelocityPortlet;
  +import org.apache.turbine.util.DynamicURI;
  +import org.apache.turbine.util.RunData;
  +import org.apache.turbine.util.StringUtils;
  +import org.apache.velocity.context.Context;
   
   /**
    * This action sets up the template context for editing security permissions in the 
Turbine database
  @@ -50,7 +42,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
    * @version $Id$
    */
  -public class RolePermissionUpdateAction extends VelocityPortletAction
  +public class RolePermissionUpdateAction extends SecureVelocityPortletAction
   {
       private static final String TEMP_ROLE = "tempRole";
   
  
  
  
  1.14      +9 -17     
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/RoleUpdateAction.java
  
  Index: RoleUpdateAction.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/RoleUpdateAction.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- RoleUpdateAction.java     23 Feb 2004 02:53:08 -0000      1.13
  +++ RoleUpdateAction.java     31 Mar 2004 04:49:10 -0000      1.14
  @@ -17,27 +17,19 @@
   package org.apache.jetspeed.modules.actions.portlets.security;
   
   // velocity
  -import org.apache.velocity.context.Context;
  -
  -// turbine util
  -import org.apache.turbine.util.RunData;
  -import org.apache.turbine.util.StringUtils;
  -import org.apache.turbine.util.DynamicURI;
  -
  -// jetspeed om
  +import org.apache.jetspeed.modules.actions.portlets.SecureVelocityPortletAction;
   import org.apache.jetspeed.om.security.JetspeedRoleFactory;
   import org.apache.jetspeed.om.security.Role;
  -
  -// jetspeed services
  +import org.apache.jetspeed.portal.portlets.VelocityPortlet;
   import org.apache.jetspeed.services.JetspeedSecurity;
   import org.apache.jetspeed.services.logging.JetspeedLogFactoryService;
   import org.apache.jetspeed.services.logging.JetspeedLogger;
  -import org.apache.jetspeed.services.security.RoleException;
   import org.apache.jetspeed.services.resources.JetspeedResources;
  -
  -// jetspeed velocity
  -import org.apache.jetspeed.modules.actions.portlets.VelocityPortletAction;
  -import org.apache.jetspeed.portal.portlets.VelocityPortlet;
  +import org.apache.jetspeed.services.security.RoleException;
  +import org.apache.turbine.util.DynamicURI;
  +import org.apache.turbine.util.RunData;
  +import org.apache.turbine.util.StringUtils;
  +import org.apache.velocity.context.Context;
   
   
   /**
  @@ -46,7 +38,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
    * @version $Id$
    */
  -public class RoleUpdateAction extends VelocityPortletAction
  +public class RoleUpdateAction extends SecureVelocityPortletAction
   {
       private static final String TEMP_ROLE = "tempRole";
   
  
  
  
  1.3       +3 -3      
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/UserGroupRoleUpdateAction.java
  
  Index: UserGroupRoleUpdateAction.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/UserGroupRoleUpdateAction.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- UserGroupRoleUpdateAction.java    23 Feb 2004 02:53:08 -0000      1.2
  +++ UserGroupRoleUpdateAction.java    31 Mar 2004 04:49:10 -0000      1.3
  @@ -20,7 +20,7 @@
   import java.util.Iterator;
   import java.util.Vector;
   
  -import org.apache.jetspeed.modules.actions.portlets.VelocityPortletAction;
  +import org.apache.jetspeed.modules.actions.portlets.SecureVelocityPortletAction;
   import org.apache.jetspeed.om.profile.Portlets;
   import org.apache.jetspeed.om.profile.Profile;
   import org.apache.jetspeed.om.profile.ProfileLocator;
  @@ -49,7 +49,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">Mark Orciuch</a>
    * @version $Id$
    */
  -public class UserGroupRoleUpdateAction extends VelocityPortletAction
  +public class UserGroupRoleUpdateAction extends SecureVelocityPortletAction
   {
   
       /**
  
  
  
  1.5       +4 -5      
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/UserGroupUpdateAction.java
  
  Index: UserGroupUpdateAction.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/UserGroupUpdateAction.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- UserGroupUpdateAction.java        23 Feb 2004 02:53:08 -0000      1.4
  +++ UserGroupUpdateAction.java        31 Mar 2004 04:49:10 -0000      1.5
  @@ -21,14 +21,13 @@
   import java.util.Iterator;
   import java.util.List;
   
  -import org.apache.jetspeed.modules.actions.portlets.VelocityPortletAction;
  -import org.apache.jetspeed.modules.actions.portlets.security.SecurityConstants;
  +import org.apache.jetspeed.modules.actions.portlets.SecureVelocityPortletAction;
   import org.apache.jetspeed.om.security.Group;
   import org.apache.jetspeed.om.security.JetspeedUser;
   import org.apache.jetspeed.portal.portlets.VelocityPortlet;
  +import org.apache.jetspeed.services.JetspeedSecurity;
   import org.apache.jetspeed.services.logging.JetspeedLogFactoryService;
   import org.apache.jetspeed.services.logging.JetspeedLogger;
  -import org.apache.jetspeed.services.JetspeedSecurity;
   import org.apache.jetspeed.services.resources.JetspeedResources;
   import org.apache.turbine.util.DynamicURI;
   import org.apache.turbine.util.RunData;
  @@ -43,7 +42,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
    * @version $Id$
    */
  -public class UserGroupUpdateAction extends VelocityPortletAction
  +public class UserGroupUpdateAction extends SecureVelocityPortletAction
   {
       /**
        * Static initialization of the logger for this class
  
  
  
  1.12      +17 -26    
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/UserRoleUpdateAction.java
  
  Index: UserRoleUpdateAction.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/UserRoleUpdateAction.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- UserRoleUpdateAction.java 23 Feb 2004 02:53:08 -0000      1.11
  +++ UserRoleUpdateAction.java 31 Mar 2004 04:49:10 -0000      1.12
  @@ -17,38 +17,29 @@
   package org.apache.jetspeed.modules.actions.portlets.security;
   
   // java util
  -import java.util.Vector;
  -import java.util.List;
   import java.util.Iterator;
  +import java.util.List;
  +import java.util.Vector;
   
  -// velocity
  -import org.apache.velocity.context.Context;
  -
  -// turbine util
  -import org.apache.turbine.util.RunData;
  -import org.apache.turbine.util.StringUtils;
  -import org.apache.turbine.util.DynamicURI;
  -
  -// turbine om
  -import org.apache.jetspeed.om.security.Role;
  +import org.apache.jetspeed.modules.actions.portlets.SecureVelocityPortletAction;
  +import org.apache.jetspeed.om.profile.Portlets;
  +import org.apache.jetspeed.om.profile.Profile;
  +import org.apache.jetspeed.om.profile.ProfileLocator;
   import org.apache.jetspeed.om.security.JetspeedUser;
  -
  -// jetspeed services
  +import org.apache.jetspeed.om.security.Role;
  +import org.apache.jetspeed.portal.portlets.VelocityPortlet;
   import org.apache.jetspeed.services.JetspeedSecurity;
  -import org.apache.jetspeed.services.resources.JetspeedResources;
   import org.apache.jetspeed.services.Profiler;
  -import org.apache.jetspeed.om.profile.ProfileLocator;
  -import org.apache.jetspeed.om.profile.Profile;
  -import org.apache.jetspeed.om.profile.Portlets;
  +import org.apache.jetspeed.services.PsmlManager;
   import org.apache.jetspeed.services.logging.JetspeedLogFactoryService;
   import org.apache.jetspeed.services.logging.JetspeedLogger;
  -import org.apache.jetspeed.services.PsmlManager;
  -import org.apache.jetspeed.util.PortletUtils;
  +import org.apache.jetspeed.services.resources.JetspeedResources;
   import org.apache.jetspeed.services.rundata.JetspeedRunData;
  -
  -// jetspeed velocity
  -import org.apache.jetspeed.modules.actions.portlets.VelocityPortletAction;
  -import org.apache.jetspeed.portal.portlets.VelocityPortlet;
  +import org.apache.jetspeed.util.PortletUtils;
  +import org.apache.turbine.util.DynamicURI;
  +import org.apache.turbine.util.RunData;
  +import org.apache.turbine.util.StringUtils;
  +import org.apache.velocity.context.Context;
   
   
   /**
  @@ -58,7 +49,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
    * @version $Id$
    */
  -public class UserRoleUpdateAction extends VelocityPortletAction
  +public class UserRoleUpdateAction extends SecureVelocityPortletAction
   {
       
       /**
  
  
  
  1.17      +14 -32    
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/UserUpdateAction.java
  
  Index: UserUpdateAction.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/portlets/security/UserUpdateAction.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- UserUpdateAction.java     23 Feb 2004 02:53:08 -0000      1.16
  +++ UserUpdateAction.java     31 Mar 2004 04:49:10 -0000      1.17
  @@ -17,45 +17,27 @@
   package org.apache.jetspeed.modules.actions.portlets.security;
   
   // java util
  +import java.io.StringWriter;
   import java.util.Date;
  -import java.util.Properties;
   import java.util.Locale;
  +import java.util.Properties;
   
  -// java io
  -import java.io.StringWriter;
  -
  -// velocity context
  -import org.apache.velocity.context.Context;
  -
  -// turbine util
  -import org.apache.turbine.util.RunData;
  -import org.apache.turbine.util.StringUtils;
  -import org.apache.turbine.util.DynamicURI;
  -
  -// turbine velocity
  -import org.apache.turbine.services.velocity.TurbineVelocity;
  -
  -// turbine om security
  +import org.apache.jetspeed.modules.actions.portlets.SecureVelocityPortletAction;
   import org.apache.jetspeed.om.security.JetspeedUser;
  -import org.apache.jetspeed.services.security.NotUniqueUserException;
  -
  -//turbine email
  -import org.apache.turbine.util.mail.SimpleEmail;
  -
  -import org.apache.turbine.services.resources.TurbineResources;
  -
  -// jetspeed velocity
  -import org.apache.jetspeed.modules.actions.portlets.VelocityPortletAction;
   import org.apache.jetspeed.portal.portlets.VelocityPortlet;
  -
  -// jetspeed services
  +import org.apache.jetspeed.services.JetspeedSecurity;
   import org.apache.jetspeed.services.TemplateLocator;
   import org.apache.jetspeed.services.logging.JetspeedLogFactoryService;
   import org.apache.jetspeed.services.logging.JetspeedLogger;
   import org.apache.jetspeed.services.resources.JetspeedResources;
  -
  -// jetspeed security
  -import org.apache.jetspeed.services.JetspeedSecurity;
  +import org.apache.jetspeed.services.security.NotUniqueUserException;
  +import org.apache.turbine.services.resources.TurbineResources;
  +import org.apache.turbine.services.velocity.TurbineVelocity;
  +import org.apache.turbine.util.DynamicURI;
  +import org.apache.turbine.util.RunData;
  +import org.apache.turbine.util.StringUtils;
  +import org.apache.turbine.util.mail.SimpleEmail;
  +import org.apache.velocity.context.Context;
   
   /**
    * This action sets up the template context for editing users in the Turbine 
database.
  @@ -65,7 +47,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]">Paul Spencer</a>
    * @version $Id$
    */
  -public class UserUpdateAction extends VelocityPortletAction
  +public class UserUpdateAction extends SecureVelocityPortletAction
   {
       private static final String TEMP_USER = "tempUser";
       
  
  
  
  1.21      +18 -1     
jakarta-jetspeed/src/java/org/apache/jetspeed/services/JetspeedSecurity.java
  
  Index: JetspeedSecurity.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/JetspeedSecurity.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- JetspeedSecurity.java     23 Feb 2004 04:00:57 -0000      1.20
  +++ JetspeedSecurity.java     31 Mar 2004 04:49:10 -0000      1.21
  @@ -18,6 +18,7 @@
   
   import java.security.Principal;
   import java.util.Iterator;
  +import java.util.List;
   
   import org.apache.jetspeed.om.SecurityReference;
   import org.apache.jetspeed.om.profile.Entry;
  @@ -37,6 +38,7 @@
   import org.apache.jetspeed.services.security.JetspeedSecurityService;
   import org.apache.jetspeed.services.security.LoginException;
   import org.apache.jetspeed.services.security.PortalResource;
  +import org.apache.turbine.om.security.User;
   import org.apache.turbine.services.TurbineServices;
   
   
  @@ -590,6 +592,21 @@
           return ((JetspeedSecurityService)getService()).getAnonymousUserName();
       }
   
  +     /*
  +      * @see JetspeedSecurityService#getAdminRoles
  +      */
  +     public static List getAdminRoles()
  +     {
  +             return ((JetspeedSecurityService)getService()).getAdminRoles();
  +     }
  +
  +     /*
  +      * @see JetspeedSecurityService#hasAdminRole
  +      */
  +     public static boolean hasAdminRole(User user)
  +     {
  +             return ((JetspeedSecurityService)getService()).hasAdminRole(user);
  +     }
   
       //////////////////////////////////////////////////////////////////////////
       //
  
  
  
  1.25      +64 -9     
jakarta-jetspeed/src/java/org/apache/jetspeed/services/security/JetspeedDBSecurityService.java
  
  Index: JetspeedDBSecurityService.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/security/JetspeedDBSecurityService.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- JetspeedDBSecurityService.java    23 Feb 2004 03:58:11 -0000      1.24
  +++ JetspeedDBSecurityService.java    31 Mar 2004 04:49:10 -0000      1.25
  @@ -16,25 +16,27 @@
   
   package org.apache.jetspeed.services.security;
   
  +import java.util.ArrayList;
   import java.util.HashMap;
  +import java.util.Iterator;
  +import java.util.List;
  +
   import javax.servlet.ServletConfig;
   
  -// Jetspeed
   import org.apache.jetspeed.om.security.JetspeedUser;
   import org.apache.jetspeed.om.security.JetspeedUserFactory;
   import org.apache.jetspeed.om.security.UserNamePrincipal;
   import org.apache.jetspeed.portal.Portlet;
  -import org.apache.jetspeed.services.logging.JetspeedLogFactoryService;
  -import org.apache.jetspeed.services.logging.JetspeedLogger;
  +import org.apache.jetspeed.services.JetspeedPortalAccessController;
   import org.apache.jetspeed.services.JetspeedSecurity;
   import org.apache.jetspeed.services.JetspeedUserManagement;
  -import org.apache.jetspeed.services.JetspeedPortalAccessController;
  +import org.apache.jetspeed.services.logging.JetspeedLogFactoryService;
  +import org.apache.jetspeed.services.logging.JetspeedLogger;
   import org.apache.jetspeed.services.rundata.JetspeedRunData;
  -
  -// Turbine
  -import org.apache.turbine.services.TurbineServices;
  -import org.apache.turbine.services.TurbineBaseService;
  +import org.apache.turbine.om.security.User;
   import org.apache.turbine.services.InitializationException;
  +import org.apache.turbine.services.TurbineBaseService;
  +import org.apache.turbine.services.TurbineServices;
   import org.apache.turbine.services.resources.ResourceService;
   
   /**
  @@ -63,6 +65,7 @@
       private final static String CONFIG_LOGON_AUTO_DISABLE = "logon.auto.disable";
       private final static String CONFIG_ACTIONS_ANON_DISABLE = 
"actions.anon.disable";
       private final static String CONFIG_ACTIONS_ALLUSERS_DISABLE = 
"actions.allusers.disable";
  +     private final static String CONFIG_ACTIONS_ADMIN_ROLES = "admin.roles";
   
       private final static String CONFIG_NEWUSER_ROLES     = "newuser.roles";
       private final static String CONFIG_DEFAULT_PERMISSION_LOGGEDIN     = 
"permission.default.loggedin";
  @@ -71,6 +74,8 @@
       private final static String [] DEFAULT_PERMISSIONS = {""};
       private final static String [] DEFAULT_CONFIG_NEWUSER_ROLES = 
       { "user" };
  +     private final static String [] DEFAULT_ADMIN_ROLES = 
  +     { "admin" };
   
       String roles[] = null;
       boolean caseInsensitiveUsername = false;
  @@ -79,6 +84,7 @@
       boolean actionsAnonDisable = true;
       boolean actionsAllUsersDisable = false;
       String anonymousUser = "anon";
  +     String[] adminRoles = null;
   
       int strikeCount = 3;             // 3 within the interval
       int strikeMax = 20;              // 20 total failures 
  @@ -111,6 +117,7 @@
           try
           {
               roles = serviceConf.getStringArray(CONFIG_NEWUSER_ROLES);
  +                     adminRoles = 
serviceConf.getStringArray(CONFIG_ACTIONS_ADMIN_ROLES);
           }
           catch (Exception e)
           {}
  @@ -120,6 +127,11 @@
               roles = DEFAULT_CONFIG_NEWUSER_ROLES;
           }
   
  +             if (null == adminRoles || adminRoles.length == 0)
  +             {
  +                     adminRoles = DEFAULT_ADMIN_ROLES;
  +             }
  +
           caseInsensitiveUsername = 
serviceConf.getBoolean(CONFIG_CASEINSENSITIVE_USERNAME, caseInsensitiveUsername);
           caseInsensitivePassword = 
serviceConf.getBoolean(CONFIG_CASEINSENSITIVE_PASSWORD, caseInsensitivePassword);
           caseInsensitiveUpper = serviceConf.getBoolean(CONFIG_CASEINSENSITIVE_UPPER, 
caseInsensitiveUpper);
  @@ -448,6 +460,49 @@
           return anonymousUser;
       }
   
  +     /*
  +      * Gets the list of administrative roles
  +      *    
  +      * @return list of admin roles
  +      */
  +      public List getAdminRoles()
  +      {
  +             List result = new ArrayList();
  +             for (int i = 0; i < adminRoles.length; i++)
  +             {
  +                     result.add(adminRoles[i]);
  +             }
  +             
  +             return result;
  +      }
  +
  +     /**
  +      * Returns true if user has administrative role
  +      * 
  +      * @param user
  +      * @return true if user has administrative role
  +      */
  +     public boolean hasAdminRole(User user)
  +     {
  +             String username = user.getUserName();
  +             try
  +             {
  +                     List adminRoles = getAdminRoles();
  +                     for (Iterator it = adminRoles.iterator(); it.hasNext();)
  +                     {
  +                             if (JetspeedSecurity.hasRole(username, 
(String)it.next()))
  +                             {
  +                                     return true;
  +                             }
  +                     }
  +             }
  +             catch (Exception e)
  +             {       
  +                     logger.error(e);                
  +             }
  +             
  +             return false;
  +     }
   
   }
   
  
  
  
  1.12      +18 -3     
jakarta-jetspeed/src/java/org/apache/jetspeed/services/security/JetspeedSecurityService.java
  
  Index: JetspeedSecurityService.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/security/JetspeedSecurityService.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- JetspeedSecurityService.java      23 Feb 2004 03:58:11 -0000      1.11
  +++ JetspeedSecurityService.java      31 Mar 2004 04:49:10 -0000      1.12
  @@ -16,11 +16,13 @@
   
   package org.apache.jetspeed.services.security;
   
  -import org.apache.jetspeed.services.rundata.JetspeedRunData;
  -import org.apache.turbine.services.Service;
  +import java.util.List;
   
   import org.apache.jetspeed.om.security.JetspeedUser;
   import org.apache.jetspeed.portal.Portlet;
  +import org.apache.jetspeed.services.rundata.JetspeedRunData;
  +import org.apache.turbine.om.security.User;
  +import org.apache.turbine.services.Service;
   
   /**
    * The Security Service manages Users, Groups Roles and Permissions in the 
  @@ -252,6 +254,19 @@
        */
       public String getAnonymousUserName();
   
  +     /*
  +      * Gets the list of administrative roles
  +      *    
  +      * @return list of admin roles
  +      */
  +      public List getAdminRoles();
  +
  +     /*
  +      * Returns true if user has adminstrative role
  +      *    
  +      * @return
  +      */
  +      public boolean hasAdminRole(User user);
   
   }
   
  
  
  
  1.82      +9 -1      jakarta-jetspeed/webapp/WEB-INF/conf/JetspeedSecurity.properties
  
  Index: JetspeedSecurity.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/webapp/WEB-INF/conf/JetspeedSecurity.properties,v
  retrieving revision 1.81
  retrieving revision 1.82
  diff -u -r1.81 -r1.82
  --- JetspeedSecurity.properties       29 Mar 2004 21:38:43 -0000      1.81
  +++ JetspeedSecurity.properties       31 Mar 2004 04:49:10 -0000      1.82
  @@ -174,6 +174,14 @@
   #
   services.JetspeedSecurity.system.permissions =
   
  +#
  +# Comma separated list of administrative roles. Only users 
  +# with administratives roles can perform secured portlet actions
  +#
  +# Default: admin
  +#
  +services.JetspeedSecurity.admin.roles = admin
  +
   #########################################
   # Action buttons                        #
   #########################################
  
  
  
  1.14      +9 -1      jakarta-jetspeed/webapp/WEB-INF/conf/JetspeedSecurity.template
  
  Index: JetspeedSecurity.template
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed/webapp/WEB-INF/conf/JetspeedSecurity.template,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- JetspeedSecurity.template 17 Mar 2004 19:10:26 -0000      1.13
  +++ JetspeedSecurity.template 31 Mar 2004 04:49:10 -0000      1.14
  @@ -174,6 +174,14 @@
   #
   services.JetspeedSecurity.system.permissions =
   
  +#
  +# Comma separated list of administrative roles. Only users 
  +# with administratives roles can perform secured portlet actions
  +#
  +# Default: admin
  +#
  +services.JetspeedSecurity.admin.roles = admin
  +
   #########################################
   # Action buttons                        #
   #########################################
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to