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>