taylor      2002/06/11 11:09:31

  Modified:    src/java/org/apache/jetspeed/services Tag: security_14
                        JetspeedSecurity.java
               src/java/org/apache/jetspeed/services/security/registry Tag:
                        security_14 RegistryAccessController.java
                        TestAccessController.java
               src/java/org/apache/jetspeed/services/security/turbine Tag:
                        security_14 TurbineAuthentication.java
                        TurbineUserManagement.java
               webapp/WEB-INF/conf Tag: security_14
                        JetspeedSecurity.properties
               webapp/WEB-INF/db Tag: security_14 jetspeed.properties
                        jetspeed.script
  Log:
    - New Security Status:
          1. performant ACL implementation.
  DONE    2. Security/Profiler refactoring (AddUser, RemoveUser...)
  STARTED 3. Roles and Groups
          4. Sufficient privilege checks on all security methods
          5. Global setting to turn off all portlet security checks during aggregation
  
  Plan to complete #1, #3 and #5 today
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.10.2.8  +56 -2     
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.10.2.7
  retrieving revision 1.10.2.8
  diff -u -r1.10.2.7 -r1.10.2.8
  --- JetspeedSecurity.java     10 Jun 2002 05:36:19 -0000      1.10.2.7
  +++ JetspeedSecurity.java     11 Jun 2002 18:09:30 -0000      1.10.2.8
  @@ -61,6 +61,12 @@
   import org.apache.turbine.om.security.Group;
   import org.apache.turbine.om.security.Role;
   import org.apache.turbine.om.security.Permission;
  +import org.apache.jetspeed.om.profile.Profile;
  +import org.apache.jetspeed.om.profile.BaseProfile;
  +import org.apache.jetspeed.services.Profiler;
  +import org.apache.jetspeed.services.PsmlManager;
  +import org.apache.jetspeed.services.rundata.JetspeedRunDataService;
  +import org.apache.turbine.services.rundata.RunDataService;
   
   import org.apache.turbine.util.Log;
   import org.apache.jetspeed.services.rundata.JetspeedRunData;
  @@ -84,6 +90,7 @@
   import org.apache.jetspeed.services.security.PortalResource;
   import org.apache.jetspeed.services.security.LoginException;
   
  +
   /**
    * <P>This is a commodity static accessor class around the 
    * <code>JetspeedSecurityService</code></P>
  @@ -403,13 +410,37 @@
            org.apache.turbine.util.security.EntityExistsException
       {
          org.apache.turbine.services.security.TurbineSecurity.addGroup(group);
  +        try
  +        {
  +            JetspeedRunDataService runDataService =
  +               (JetspeedRunDataService)TurbineServices.getInstance()
  +                   .getService(RunDataService.SERVICE_NAME);
  +            JetspeedRunData rundata = runDataService.getCurrentRunData();           
 
  +            Profile profile = new BaseProfile();
  +            profile.setGroup(group);
  +            profile.setMediaType("html");
  +            Profiler.createProfile(rundata, profile);
  +        }
  +        catch (ProfileException e)
  +        {
  +            try
  +            {
  +                removeGroup(group);
  +            }
  +            catch(Exception e2)
  +            {
  +            }
  +            throw new org.apache.turbine.util.security.DataBackendException("Failed 
to create Group PSML", e);
  +        }
  +
       }
       
       public static void removeGroup( Group group )
       throws org.apache.turbine.util.security.DataBackendException, 
              org.apache.turbine.util.security.UnknownEntityException
       {
  -       org.apache.turbine.services.security.TurbineSecurity.removeGroup(group);
  +        PsmlManager.removeGroupDocuments(group);
  +        org.apache.turbine.services.security.TurbineSecurity.removeGroup(group);
       }
       
       public static void addRole(Role role)
  @@ -417,12 +448,35 @@
            org.apache.turbine.util.security.EntityExistsException
       {
          org.apache.turbine.services.security.TurbineSecurity.addRole(role);
  +        try
  +        {
  +            JetspeedRunDataService runDataService =
  +               (JetspeedRunDataService)TurbineServices.getInstance()
  +                   .getService(RunDataService.SERVICE_NAME);
  +            JetspeedRunData rundata = runDataService.getCurrentRunData();
  +            Profile profile = new BaseProfile();
  +            profile.setRole(role);
  +            profile.setMediaType("html");
  +            Profiler.createProfile(rundata, profile);
  +        }
  +        catch (ProfileException e)
  +        {
  +            try
  +            {
  +                removeRole(role);
  +            }
  +            catch(Exception e2)
  +            {
  +            }
  +            throw new org.apache.turbine.util.security.DataBackendException("Failed 
to create Role PSML", e);
  +        }
       }
       
       public static void removeRole(Role role)
       throws org.apache.turbine.util.security.DataBackendException, 
              org.apache.turbine.util.security.UnknownEntityException
       {
  +        PsmlManager.removeRoleDocuments(role);
           org.apache.turbine.services.security.TurbineSecurity.removeRole(role);
                                               
       }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.2   +2 -2      
jakarta-jetspeed/src/java/org/apache/jetspeed/services/security/registry/Attic/RegistryAccessController.java
  
  Index: RegistryAccessController.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/security/registry/Attic/RegistryAccessController.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- RegistryAccessController.java     5 Jun 2002 03:42:36 -0000       1.1.2.1
  +++ RegistryAccessController.java     11 Jun 2002 18:09:30 -0000      1.1.2.2
  @@ -61,7 +61,7 @@
   // Jetspeed import
   import org.apache.jetspeed.om.SecurityReference;
   import org.apache.jetspeed.om.profile.Entry;
  -import org.apache.jetspeed.om.profile.Security;
  +//import org.apache.jetspeed.om.profile.Security;
   import org.apache.jetspeed.om.registry.RegistryEntry;
   import org.apache.jetspeed.om.registry.Security;
   import org.apache.jetspeed.om.registry.SecurityEntry;
  
  
  
  1.1.2.2   +2 -2      
jakarta-jetspeed/src/java/org/apache/jetspeed/services/security/registry/Attic/TestAccessController.java
  
  Index: TestAccessController.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/security/registry/Attic/TestAccessController.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- TestAccessController.java 5 Jun 2002 03:42:36 -0000       1.1.2.1
  +++ TestAccessController.java 11 Jun 2002 18:09:30 -0000      1.1.2.2
  @@ -65,7 +65,7 @@
   import org.apache.jetspeed.om.profile.Profile;
   import org.apache.jetspeed.om.profile.ProfileLocator;
   import org.apache.jetspeed.om.profile.Portlets;
  -import org.apache.jetspeed.om.profile.Security;
  +//import org.apache.jetspeed.om.profile.Security;
   import org.apache.jetspeed.om.profile.PSMLDocument;
   import org.apache.jetspeed.om.profile.psml.PsmlController;
   import org.apache.jetspeed.om.profile.psml.PsmlEntry;
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.9   +5 -3      
jakarta-jetspeed/src/java/org/apache/jetspeed/services/security/turbine/Attic/TurbineAuthentication.java
  
  Index: TurbineAuthentication.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/security/turbine/Attic/TurbineAuthentication.java,v
  retrieving revision 1.1.2.8
  retrieving revision 1.1.2.9
  diff -u -r1.1.2.8 -r1.1.2.9
  --- TurbineAuthentication.java        8 Jun 2002 17:48:25 -0000       1.1.2.8
  +++ TurbineAuthentication.java        11 Jun 2002 18:09:30 -0000      1.1.2.9
  @@ -148,8 +148,10 @@
           {
               user.updateLastLogin();
               JetspeedRunData data = putUserIntoContext(user);
  -            getRunData().save();
  -
  +            if (data != null)
  +            {
  +                data.save();
  +            }
           }
           catch (Exception e)
           {
  
  
  
  1.1.2.5   +86 -1     
jakarta-jetspeed/src/java/org/apache/jetspeed/services/security/turbine/Attic/TurbineUserManagement.java
  
  Index: TurbineUserManagement.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/security/turbine/Attic/TurbineUserManagement.java,v
  retrieving revision 1.1.2.4
  retrieving revision 1.1.2.5
  diff -u -r1.1.2.4 -r1.1.2.5
  --- TurbineUserManagement.java        7 Jun 2002 10:02:07 -0000       1.1.2.4
  +++ TurbineUserManagement.java        11 Jun 2002 18:09:30 -0000      1.1.2.5
  @@ -74,6 +74,10 @@
   import org.apache.jetspeed.om.security.turbine.TurbineUser;
   import org.apache.jetspeed.om.security.turbine.TurbineUserPeer;
   
  +
  +import org.apache.jetspeed.om.profile.BaseProfile;
  +import org.apache.jetspeed.om.profile.Profile;
  +
   // Jetspeed Security
   import org.apache.jetspeed.om.security.JetspeedUser;
   import org.apache.jetspeed.om.security.BaseJetspeedUser;
  @@ -81,6 +85,8 @@
   import org.apache.jetspeed.om.security.UserIdPrincipal;
   
   import org.apache.jetspeed.services.JetspeedSecurity;
  +import org.apache.jetspeed.services.Profiler;
  +import org.apache.jetspeed.services.PsmlManager;
   import org.apache.jetspeed.services.security.UserManagement;
   import org.apache.jetspeed.services.security.JetspeedSecurityService;
   
  @@ -89,6 +95,9 @@
   import org.apache.jetspeed.services.security.UnknownUserException;
   import org.apache.jetspeed.services.security.NotUniqueUserException;
   import org.apache.jetspeed.services.security.JetspeedSecurityException;
  +import org.apache.jetspeed.services.rundata.JetspeedRunDataService;
  +import org.apache.jetspeed.services.rundata.JetspeedRunData;
  +import org.apache.turbine.services.rundata.RunDataService;
   
   // Password encryption
   import javax.mail.internet.MimeUtility;
  @@ -115,6 +124,15 @@
       boolean securePasswords = false;
       String passwordsAlgorithm = "SHA";
   
  +    private final static String CONFIG_NEWUSER_ROLES     = "newuser.roles";
  +    private final static String [] DEFAULT_CONFIG_NEWUSER_ROLES = 
  +    { "user" };
  +
  +    String roles[] = null;
  +
  +    /** The JetspeedRunData Service. */
  +    private JetspeedRunDataService runDataService = null;
  +
       ///////////////////////////////////////////////////////////////////////////
       // User Management Interfaces
       ///////////////////////////////////////////////////////////////////////////
  @@ -297,8 +315,49 @@
                   user.getUserName() + "'", e);
           }
   
  +        addDefaultPSML(user);
       }
   
  +    /*
  +     * A default PSML page is added for the user, and the Jetspeed default roles
  +     * are assigned to the new user.
  +     *
  +     * @param user The new user.
  +     * @throws 
  +     */
  +    protected void addDefaultPSML(JetspeedUser user)
  +        throws JetspeedSecurityException
  +    {
  +        for (int ix = 0; ix < roles.length; ix++)
  +        {
  +            try
  +            {
  +                JetspeedSecurity.grant(user, 
  +                      JetspeedSecurity.getGroup(JetspeedSecurity.JETSPEED_GROUP), 
  +                      JetspeedSecurity.getRole(roles[ix]));
  +            }
  +            catch(Exception e)
  +            {
  +                Log.error("Could not grant role: " + roles[ix] + " to user " + 
user.getUserName(), e);
  +            }
  +        }
  +        try
  +        {
  +            JetspeedRunData rundata = getRunData();
  +            if (rundata != null)
  +            {
  +                Profile profile = new BaseProfile();
  +                profile.setUser(user);
  +                profile.setMediaType("html");
  +                Profiler.createProfile(getRunData(), profile);
  +            }
  +        }
  +        catch (Exception e)
  +        {
  +            removeUser(new UserNamePrincipal(user.getUserName()));
  +            throw new UserException("Failed to create profile for new user ", e);
  +        }
  +    }
   
       /**
        * Removes a <code>JetspeedUser</code> from the permanent store.
  @@ -332,6 +391,7 @@
   
           try
           {
  +            PsmlManager.removeUserDocuments(user);
               TurbineUserPeer.doDelete(criteria);
           }
           catch(Exception e)
  @@ -487,6 +547,21 @@
           passwordsAlgorithm = 
serviceConf.getString(CONFIG_SECURE_PASSWORDS_ALGORITHM,
                                                      passwordsAlgorithm);
   
  +       try
  +        {
  +            roles = serviceConf.getStringArray(CONFIG_NEWUSER_ROLES);
  +        }
  +        catch (Exception e)
  +        {}
  +            
  +        if (null == roles || roles.length == 0)
  +        {
  +            roles = DEFAULT_CONFIG_NEWUSER_ROLES;
  +        }
  +
  +        this.runDataService =
  +           (JetspeedRunDataService)TurbineServices.getInstance()
  +               .getService(RunDataService.SERVICE_NAME);
   
           setInit(true);
        }
  @@ -541,6 +616,16 @@
           }
           return true;
       }
  +
  +    protected JetspeedRunData getRunData()
  +     {
  +         JetspeedRunData rundata = null;
  +         if (this.runDataService != null)
  +         {
  +             rundata = this.runDataService.getCurrentRunData();
  +         }
  +         return rundata;
  +     }
   
   
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.10  +1 -1      
jakarta-jetspeed/webapp/WEB-INF/conf/Attic/JetspeedSecurity.properties
  
  Index: JetspeedSecurity.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/webapp/WEB-INF/conf/Attic/JetspeedSecurity.properties,v
  retrieving revision 1.1.2.9
  retrieving revision 1.1.2.10
  diff -u -r1.1.2.9 -r1.1.2.10
  --- JetspeedSecurity.properties       10 Jun 2002 05:39:17 -0000      1.1.2.9
  +++ JetspeedSecurity.properties       11 Jun 2002 18:09:30 -0000      1.1.2.10
  @@ -19,7 +19,7 @@
   # Authorization Service                 #
   #########################################
   
  
-services.PortalAccessController.classname=org.apache.jetspeed.services.security.turbine.TurbineAccessController
  
+services.PortalAccessController.classname=org.apache.jetspeed.services.security.registry.RegistryAccessController
   
   #########################################
   # User Management Service               #
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.11.2.5  +1 -1      jakarta-jetspeed/webapp/WEB-INF/db/jetspeed.properties
  
  Index: jetspeed.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed/webapp/WEB-INF/db/jetspeed.properties,v
  retrieving revision 1.11.2.4
  retrieving revision 1.11.2.5
  diff -u -r1.11.2.4 -r1.11.2.5
  --- jetspeed.properties       7 Jun 2002 10:02:07 -0000       1.11.2.4
  +++ jetspeed.properties       11 Jun 2002 18:09:30 -0000      1.11.2.5
  @@ -1,4 +1,4 @@
   #Hypersonic SQL database
  -#Fri Jun 07 02:56:59 PDT 2002
  +#Tue Jun 11 11:06:44 PDT 2002
   version=1.4
   modified=yes
  
  
  
  1.13.2.5  +2 -2      jakarta-jetspeed/webapp/WEB-INF/db/jetspeed.script
  
  Index: jetspeed.script
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed/webapp/WEB-INF/db/jetspeed.script,v
  retrieving revision 1.13.2.4
  retrieving revision 1.13.2.5
  diff -u -r1.13.2.4 -r1.13.2.5
  --- jetspeed.script   7 Jun 2002 10:02:07 -0000       1.13.2.4
  +++ jetspeed.script   11 Jun 2002 18:09:30 -0000      1.13.2.5
  @@ -120,7 +120,7 @@
   INSERT INTO ID_TABLE VALUES(1,'TURBINE_PERMISSION',100,10)
   INSERT INTO ID_TABLE VALUES(2,'TURBINE_ROLE',120,10)
   INSERT INTO ID_TABLE VALUES(3,'TURBINE_GROUP',100,10)
  -INSERT INTO ID_TABLE VALUES(4,'TURBINE_USER',290,10)
  +INSERT INTO ID_TABLE VALUES(4,'TURBINE_USER',330,10)
   INSERT INTO ID_TABLE VALUES(5,'TURBINE_SCHEDULED_JOB',100,10)
   INSERT INTO ID_TABLE VALUES(6,'TURBINE_ROLE_PERMISSION',100,10)
   INSERT INTO ID_TABLE VALUES(7,'TURBINE_USER_GROUP_ROLE',100,10)
  @@ -139,4 +139,4 @@
   INSERT INTO COFFEES VALUES('KenyanGrade',2,7.99,1,2)
   INSERT INTO COFFEES VALUES('JoeGrade',3,7.99,1,2)
   INSERT INTO COFFEES VALUES('CantThinkOfAnymoreGrade',4,7.99,1,2)
  -/*C4*/CONNECT USER sa PASSWORD ""
  +/*C1*/CONNECT USER sa PASSWORD ""
  
  
  

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

Reply via email to