You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by pa...@apache.org on 2002/06/03 06:17:24 UTC

cvs commit: jakarta-jetspeed/src/java/org/apache/jetspeed/om/registry SecurityAccess.java SecurityAllow.java SecurityEntry.java

paulsp      2002/06/02 21:17:24

  Modified:    src/java/org/apache/jetspeed/services Tag: security_14
                        Registry.java
               src/java/org/apache/jetspeed/services/registry Tag:
                        security_14 RegistryFragment.java
                        TestMarshallRegistry.java
               webapp/WEB-INF/conf Tag: security_14 registry.xml
  Added:       webapp/WEB-INF/psml/test Tag: security_14
                        testcase-security.xreg
               src/java/org/apache/jetspeed/om/registry/base Tag:
                        security_14 BaseSecurityAccess.java
                        BaseSecurityAllow.java BaseSecurityEntry.java
               src/java/org/apache/jetspeed/om/registry Tag: security_14
                        SecurityAccess.java SecurityAllow.java
                        SecurityEntry.java
  Log:
  o Add SecurityAccess, SecurityAllow, and SecurityEntry interface and
    base implementation
  o Update registry unit test
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.5.2.1   +4 -1      jakarta-jetspeed/src/java/org/apache/jetspeed/services/Registry.java
  
  Index: Registry.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/Registry.java,v
  retrieving revision 1.5
  retrieving revision 1.5.2.1
  diff -u -r1.5 -r1.5.2.1
  --- Registry.java	10 Sep 2001 22:39:50 -0000	1.5
  +++ Registry.java	3 Jun 2002 04:17:23 -0000	1.5.2.1
  @@ -65,7 +65,7 @@
    * 
    * @see org.apache.jetspeed.services.registry.RegistryService
    * @author <a href="mailto:raphael@apache.org">Rapha�l Luta</a>
  - * @version $Id: Registry.java,v 1.5 2001/09/10 22:39:50 sgala Exp $
  + * @version $Id: Registry.java,v 1.5.2.1 2002/06/03 04:17:23 paulsp Exp $
    */
   public class Registry {
    
  @@ -80,6 +80,9 @@
   
       /** Default MediaType Registry name */
       public static String MEDIA_TYPE = "MediaType";
  +
  +    /** Default Security Registry name */
  +    public static String SECURITY = "Security";
   
       /** Default Skin Registry name */
       public static String SKIN = "Skin";
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.6.2.1   +13 -1     jakarta-jetspeed/src/java/org/apache/jetspeed/services/registry/RegistryFragment.java
  
  Index: RegistryFragment.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/registry/RegistryFragment.java,v
  retrieving revision 1.6
  retrieving revision 1.6.2.1
  diff -u -r1.6 -r1.6.2.1
  --- RegistryFragment.java	29 Jul 2001 13:42:00 -0000	1.6
  +++ RegistryFragment.java	3 Jun 2002 04:17:23 -0000	1.6.2.1
  @@ -65,7 +65,7 @@
    * by Castor XML serialization
    *
    * @author <a href="mailto:raphael@apache.org">Rapha�l Luta</a>
  - * @version $Id: RegistryFragment.java,v 1.6 2001/07/29 13:42:00 raphael Exp $
  + * @version $Id: RegistryFragment.java,v 1.6.2.1 2002/06/03 04:17:23 paulsp Exp $
    */
   public class RegistryFragment extends Hashtable implements java.io.Serializable {
   
  @@ -212,4 +212,16 @@
           }
       }
                  
  +    public Vector getSecurityEntries()
  +    {
  +        return (Vector)get(Registry.SECURITY);
  +    }
  +    
  +    public void setSecurityEntries(Vector securityEntries)
  +    {
  +        if (securityEntries!=null)
  +        {
  +            put(Registry.SECURITY, securityEntries);
  +        }
  +    }
   }
  
  
  
  1.3.2.1   +225 -1    jakarta-jetspeed/src/java/org/apache/jetspeed/services/registry/TestMarshallRegistry.java
  
  Index: TestMarshallRegistry.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/registry/TestMarshallRegistry.java,v
  retrieving revision 1.3
  retrieving revision 1.3.2.1
  diff -u -r1.3 -r1.3.2.1
  --- TestMarshallRegistry.java	10 Apr 2002 23:35:41 -0000	1.3
  +++ TestMarshallRegistry.java	3 Jun 2002 04:17:23 -0000	1.3.2.1
  @@ -88,7 +88,7 @@
    * TestMarshallRegistry
    *
    * @author <a href="taylor@apache.org">David Sean Taylor</a>
  - * @version $Id: TestMarshallRegistry.java,v 1.3 2002/04/10 23:35:41 taylor Exp $
  + * @version $Id: TestMarshallRegistry.java,v 1.3.2.1 2002/06/03 04:17:23 paulsp Exp $
    */
   
   public class TestMarshallRegistry extends TestCase {    
  @@ -335,6 +335,230 @@
       }
   
       
  +    /**
  +     * Tests unmarshaling registry fragment
  +     * @throws Exception
  +     */
  +    public void testUnmarshallSecurityRegistry() throws Exception 
  +    {
  +        System.out.println("Testing marshalling of Registry security-entry");
  +
  +        String xregFile = "../webapp/WEB-INF/psml/test/testcase-security.xreg";
  +
  +        Mapping mapping = null;
  +        String mapFile = getMappingFileName();
  +        File map = new File(mapFile);
  +        if (map.exists() && map.isFile() && map.canRead())
  +        {
  +            try
  +            {
  +                FileReader reader = new FileReader(xregFile);
  +                mapping = new Mapping();
  +                InputSource is = new InputSource( new FileReader(map) );
  +                is.setSystemId( mapFile );
  +                mapping.loadMapping( is );
  +                Unmarshaller unmarshaller = new Unmarshaller(mapping);
  +                RegistryFragment fragment = (RegistryFragment)unmarshaller.unmarshal(reader);
  +                assertNotNull(fragment);
  +                Vector securityEntries = fragment.getSecurityEntries();
  +                assertTrue( "Security Entries exist", !securityEntries.isEmpty());
  +
  +                // test abstract
  +                SecurityEntry securityEntry = (SecurityEntry)securityEntries.firstElement();
  +                assertNotNull(securityEntry);
  +                assertTrue(securityEntry.getId().equals("admin-all"));
  +
  +                // Get the action
  +                Vector securityAccesses = securityEntry.getAccesses();
  +                assertNotNull( "Got SecurityAccesses", securityAccesses);
  +                SecurityAccess securityAccess = (SecurityAccess) securityAccesses.firstElement();
  +                assertNotNull( "Got SecurityAccess", securityAccess);
  +                assertEquals( "Verify action", "view", securityAccess.getAction());
  +                
  +                // Get allows
  +                Vector securityAllows = securityAccess.getAllows();
  +                assertNotNull( "Got SecurityAllows", securityAllows);
  +                SecurityAllow securityAllow = (SecurityAllow) securityAllows.firstElement();
  +                assertNotNull( "Got SecurityAllow", securityAllow);
  +                assertEquals( "Verify role", "clerk", securityAllow.getRole());
  +                assertNull( "Verify user" , securityAllow.getUser());
  +
  +                securityAllow = (SecurityAllow) securityAllows.elementAt(1);
  +                assertNotNull( "Got SecurityAllow", securityAllow);
  +                assertNull( "Verify role", securityAllow.getRole());
  +                assertEquals( "Verify user", "joe" , securityAllow.getUser());
  +                
  +                securityAllow = (SecurityAllow) securityAllows.elementAt(2);
  +                assertNotNull( "Got SecurityAllow", securityAllow);
  +                assertEquals( "Verify role", "manager", securityAllow.getRole());
  +                assertEquals( "Verify user", "fred" , securityAllow.getUser());
  +/*
  +                Iterator it = securityEntry.getAccesses();    
  +                HashMap mapParams = new HashMap();
  +                while (it.hasNext())
  +                {
  +                    String name = (String)it.next();
  +                    Parameter p = securityEntry.getParameter(name);
  +                    assertNotNull(p);
  +                    //System.out.println("PARAM:" + p.getName() + " = " + p.getValue());
  +                    mapParams.put(p.getName(), p);
  +                }
  +                assertTrue(mapParams.containsKey("showtitle"));
  +                assertTrue(mapParams.containsKey("stylesheet"));
  +                assertTrue(mapParams.containsKey("itemdisplayed"));
  +
  +                // test ref 
  +                PortletEntry hack = (PortletEntry)portlets.elementAt(2);
  +                assertNotNull(hack);
  +                assertTrue(hack.getName().equals("XMLHack"));
  +                assertTrue(hack.isHidden());
  +                assertTrue(hack.getType().equals("ref"));
  +                assertTrue(hack.getParent().equals("RSS"));
  +                assertTrue(!hack.isApplication());
  +                assertTrue(hack.getTitle().equals("XMLHack Title"));
  +                assertTrue(hack.getDescription().equals("XMLHack Description"));
  +                assertTrue(hack.getMetaInfo().getTitle().equals("XMLHack Title"));
  +                assertTrue(hack.getMetaInfo().getDescription().equals("XMLHack Description"));
  +                assertTrue(hack.getClassname().equals("org.apache.jetspeed.portal.portlets.NewRSSPortlet"));
  +
  +                mapParams.clear();
  +                it = hack.getParameterNames();
  +                while (it.hasNext())
  +                {
  +                    String name = (String)it.next();
  +                    Parameter p = hack.getParameter(name);
  +                    assertNotNull(p);
  +                    //System.out.println("HACK PARAM:" + p.getName() + " = " + p.getValue());
  +                    mapParams.put(p.getName(), p);
  +                }
  +                assertTrue(mapParams.containsKey("showtitle"));
  +                assertTrue(mapParams.containsKey("stylesheet"));
  +                assertTrue(mapParams.containsKey("itemdisplayed"));
  +                assertTrue(mapParams.containsKey("HACK"));
  +                Parameter p = (Parameter)mapParams.get("HACK");
  +                assertTrue(p.getValue().equals("hacker"));
  +                Parameter p2 = (Parameter)mapParams.get("showtitle");
  +                MetaInfo p2m = p2.getMetaInfo();
  +                assertTrue(p2m.getTitle().equals("Show title description ?"));
  +                assertTrue(p2.getTitle().equals("Show title description ?"));
  +                Map pMap = hack.getParameterMap();
  +                String v15 = (String)pMap.get("itemdisplayed");
  +                assertTrue(v15.equals("15"));
  +
  +                // test falling back on meta info               
  +
  +                PortletEntry mp = (PortletEntry)portlets.elementAt(5);
  +                assertNotNull(mp);
  +                assertTrue(mp.getName().equals("MetaTest"));
  +                assertTrue(mp.getType().equals("ref"));
  +                assertTrue(mp.getParent().equals("AdminScreen"));
  +                assertTrue(mp.getClassname().equals("org.apache.jetspeed.portal.portlets.TurbineScreenPortlet"));
  +                String title = mp.getTitle();
  +                assertNotNull(title);
  +                assertTrue(title.equals("Turbine Screen in a portlet"));
  +                assertTrue(mp.getDescription().equals("We put the Admin Screen in a portlet."));
  +                MetaInfo meta = mp.getMetaInfo();
  +                assertNotNull(meta);
  +                assertTrue(mp.getMetaInfo().getTitle().equals("Turbine Screen in a portlet"));
  +                assertTrue(meta.getDescription().equals("We put the Admin Screen in a portlet."));
  +
  +                // media type
  +                Iterator mpi = mp.listMediaTypes();
  +                assertNotNull(mpi);
  +                HashMap mpMap = new HashMap();
  +                while(mpi.hasNext())
  +                {
  +                    String s = (String)mpi.next();
  +                    mpMap.put(s, s);
  +                }
  +                assertTrue(mpMap.containsKey("html"));
  +                assertTrue(mpMap.containsKey("wml"));
  +                assertTrue(mpMap.containsKey("xml"));
  +                assertTrue(mp.hasMediaType("wml"));
  +                
  +                PortletEntry mt = (PortletEntry)portlets.elementAt(6);
  +                assertNotNull(mt);
  +                assertTrue(mt.getName().equals("NoMediaType"));
  +                assertTrue(mt.getType().equals("ref"));
  +                Iterator mti = mt.listMediaTypes();
  +                assertNotNull(mti);
  +                assertTrue(mti.hasNext());
  +                String s = (String)mti.next();
  +                assertTrue(s.equals("html"));
  +             
  +                assertTrue(hack.getURL().equals("http://www.xmlhack.com/rss.php"));
  +                assertTrue(hack.isCachedOnURL());
  +
  +                PortletEntry keytest = (PortletEntry)portlets.elementAt(7);
  +                assertNotNull(keytest);
  +                assertTrue(keytest.getName().equals("KeyTest"));
  +                assertTrue(keytest.getType().equals("ref"));
  +                it = keytest.getParameterNames();
  +                mpMap.clear();
  +                while (it.hasNext())
  +                {
  +                    String name = (String)it.next();
  +                    CachedParameter cp = keytest.getCachedParameter(name);
  +                    mpMap.put(cp.getName(), cp);
  +                    //System.out.println("param = " + cp.getName() + "," + cp.getValue());
  +                    //System.out.println("keys = " + cp.isCachedOnName() + "," + cp.isCachedOnValue());
  +
  +                }
  +                assertTrue(keytest.isCachedOnURL() == false);
  +                CachedParameter cp = (CachedParameter)mpMap.get("newsid");
  +                assertNotNull(cp);
  +                assertTrue(cp.isCachedOnName() == false);
  +                assertTrue(cp.isCachedOnValue() == true);
  +                cp = (CachedParameter)mpMap.get("sportsid");
  +                assertNotNull(cp);
  +                assertTrue(cp.isCachedOnName() == true);
  +                assertTrue(cp.isCachedOnValue() == false);                             
  +                cp = (CachedParameter)mpMap.get("contact2");
  +                assertNotNull(cp);
  +                assertTrue(cp.isCachedOnName() == true);
  +                assertTrue(cp.isCachedOnValue() == true);
  +                cp = (CachedParameter)mpMap.get("showtitle");
  +                assertNotNull(cp);
  +                assertTrue(cp.isCachedOnName() == true);
  +                assertTrue(cp.isCachedOnValue() == true);
  +
  +                // categories
  +                PortletEntry feeder = (PortletEntry)portlets.elementAt(3);
  +                assertNotNull(feeder);
  +                assertTrue(feeder.getName().equals("Feeder"));
  +                assertTrue(feeder.getType().equals("ref"));
  +                Iterator fi = feeder.listCategories();
  +                Category cat = (Category)fi.next();
  +                assertTrue(cat.getName().equals("news.world.politics"));
  +                assertTrue(cat.getGroup().equals("news"));
  +                assertTrue(feeder.hasCategory("news.world.politics", "news"));
  +                feeder.addCategory("news.us.economy");
  +                assertTrue(feeder.hasCategory("news.us.economy"));
  +                feeder.removeCategory("news.us.economy");
  +                assertTrue(!feeder.hasCategory("news.us.economy"));
  +/*
  +                /*
  +                Iterator fi = feeder.listCategories();
  +                    Category cat = (Category)fi.next();
  +                    System.out.println("cat = " + cat.getName());
  +                    System.out.println("cat.group = " + cat.getGroup());
  +                }
  +                */
  +            }
  +            catch (Exception e)
  +            {
  +                String errmsg = "Error in xreg mapping creation: " + e.toString();
  +               // e.printStackTrace();
  +               assertNotNull(errmsg, null);
  +            }
  +        }
  +        else
  +        {
  +            String errmsg = "Registy Mapping not found or not a file or unreadable: ";
  +            System.err.println(errmsg);
  +            assertNotNull(errmsg, null);
  +        }  
  +    }
       /**
        * Tests IdentityElement unmarshaling entryset base stuff
        * @throws Exception
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.8.2.1   +38 -0     jakarta-jetspeed/webapp/WEB-INF/conf/registry.xml
  
  Index: registry.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed/webapp/WEB-INF/conf/registry.xml,v
  retrieving revision 1.8
  retrieving revision 1.8.2.1
  diff -u -r1.8 -r1.8.2.1
  --- registry.xml	29 Mar 2002 01:08:58 -0000	1.8
  +++ registry.xml	3 Jun 2002 04:17:24 -0000	1.8.2.1
  @@ -33,6 +33,12 @@
         <bind-xml name="skin-entry"/>
       </field>
   
  +    <field name="securityEntries"
  +           type="org.apache.jetspeed.om.registry.base.BaseSecurityEntry"
  +           collection="vector">
  +      <bind-xml name="security-entry"/>
  +    </field>
  +
     </class>
   
     <class name="org.apache.jetspeed.om.registry.base.BasePortletEntry">
  @@ -351,4 +357,36 @@
   		</field>	
   	</class>
   
  +  <class name="org.apache.jetspeed.om.registry.base.BaseSecurityEntry">
  +    <map-to xml="security-entry"/>
  +    <field name="id" type="java.lang.String">
  +      <bind-xml name="id" node="attribute"/>
  +    </field>
  +    <field name="accesses"
  +           type="org.apache.jetspeed.om.registry.base.BaseSecurityAccess"
  +           collection="vector">
  +      <bind-xml name="id"/>
  +    </field>
  +  </class>
  +
  +  <class name="org.apache.jetspeed.om.registry.base.BaseSecurityAccess">
  +    <map-to xml="access"/>
  +    <field name="action" type="java.lang.String">
  +      <bind-xml name="action" node="attribute"/>
  +    </field>
  +    <field name="allows"
  +           type="org.apache.jetspeed.om.registry.base.BaseSecurityAllow"
  +           collection="vector">
  +      <bind-xml name="allow-if"/>
  +    </field>
  +  </class>
  +  <class name="org.apache.jetspeed.om.registry.base.BaseSecurityAllow">
  +    <map-to xml="allow-if"/>
  +    <field name="role" type="java.lang.String">
  +      <bind-xml name="role" node="attribute"/>
  +    </field>
  +    <field name="user" type="java.lang.String">
  +      <bind-xml name="user" node="attribute"/>
  +    </field>
  +  </class>
   </mapping>
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +115 -0    jakarta-jetspeed/webapp/WEB-INF/psml/test/Attic/testcase-security.xreg
  
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +114 -0    jakarta-jetspeed/src/java/org/apache/jetspeed/om/registry/base/Attic/BaseSecurityAccess.java
  
  
  
  
  1.1.2.1   +111 -0    jakarta-jetspeed/src/java/org/apache/jetspeed/om/registry/base/Attic/BaseSecurityAllow.java
  
  
  
  
  1.1.2.1   +114 -0    jakarta-jetspeed/src/java/org/apache/jetspeed/om/registry/base/Attic/BaseSecurityEntry.java
  
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +89 -0     jakarta-jetspeed/src/java/org/apache/jetspeed/om/registry/Attic/SecurityAccess.java
  
  
  
  
  1.1.2.1   +86 -0     jakarta-jetspeed/src/java/org/apache/jetspeed/om/registry/Attic/SecurityAllow.java
  
  
  
  
  1.1.2.1   +90 -0     jakarta-jetspeed/src/java/org/apache/jetspeed/om/registry/Attic/SecurityEntry.java
  
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>