[jboss-svn-commits] JBoss Portal SVN: r5355 - trunk/core/src/main/org/jboss/portal/core/impl/model/portal
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Oct 7 19:16:43 EDT 2006
Author: julien at jboss.com
Date: 2006-10-07 19:16:31 -0400 (Sat, 07 Oct 2006)
New Revision: 5355
Modified:
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/AbstractPortalObjectContainer.java
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/ContainerContext.java
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/ObjectNode.java
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/PersistentPortalObjectContainer.java
trunk/core/src/main/org/jboss/portal/core/impl/model/portal/TransientPortalObjectContainer.java
Log:
abstracted a bit more PersistentPortalObjectContainer to AbstractPortalObjectContainer
Modified: trunk/core/src/main/org/jboss/portal/core/impl/model/portal/AbstractPortalObjectContainer.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/impl/model/portal/AbstractPortalObjectContainer.java 2006-10-07 22:02:12 UTC (rev 5354)
+++ trunk/core/src/main/org/jboss/portal/core/impl/model/portal/AbstractPortalObjectContainer.java 2006-10-07 23:16:31 UTC (rev 5355)
@@ -22,12 +22,139 @@
package org.jboss.portal.core.impl.model.portal;
import org.jboss.portal.core.model.portal.PortalObjectContainer;
+import org.jboss.portal.core.model.portal.PortalObjectPermission;
+import org.jboss.portal.core.model.portal.PortalObject;
+import org.jboss.portal.core.model.portal.Context;
import org.jboss.portal.jems.as.system.AbstractJBossService;
+import org.jboss.portal.security.PortalPermission;
+import org.jboss.portal.security.PortalPermissionCollection;
+import org.jboss.portal.security.PortalSecurityException;
+import org.jboss.portal.security.SecurityConstants;
+import org.jboss.portal.security.RoleSecurityBinding;
+import org.jboss.portal.security.spi.provider.PermissionFactory;
+import org.jboss.portal.security.spi.provider.SecurityConfigurationException;
+import org.jboss.portal.security.spi.provider.AuthorizationDomain;
+import org.jboss.portal.security.spi.provider.DomainConfigurator;
+import org.jboss.portal.security.spi.provider.PermissionRepository;
+import java.util.Collection;
+import java.util.Set;
+import java.util.Iterator;
+import java.util.HashSet;
+
/**
* @author <a href="mailto:julien at jboss.org">Julien Viet</a>
* @version $Revision$
*/
-public abstract class AbstractPortalObjectContainer extends AbstractJBossService implements PortalObjectContainer
+public abstract class AbstractPortalObjectContainer extends AbstractJBossService
+ implements PortalObjectContainer, PermissionFactory, AuthorizationDomain, DomainConfigurator, PermissionRepository
{
+
+ public PortalObject getObject(String id)
+ {
+ ObjectNode node = getObjectNode(id);
+
+ //
+ if (node != null)
+ {
+ return node.getObject();
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ public Context getContext()
+ {
+ return (Context)getObject("");
+ }
+
+ public String getType()
+ {
+ return PortalObjectPermission.PERMISSION_TYPE;
+ }
+
+ public DomainConfigurator getConfigurator()
+ {
+ return this;
+ }
+
+ public PermissionRepository getPermissionRepository()
+ {
+ return this;
+ }
+
+ public PermissionFactory getPermissionFactory()
+ {
+ return this;
+ }
+
+ public PortalPermission createPermissionContainer(PortalPermissionCollection collection) throws PortalSecurityException
+ {
+ return new PortalObjectPermission(collection);
+ }
+
+ public PortalPermission createPermission(String uri, String action) throws PortalSecurityException
+ {
+ return new PortalObjectPermission(uri,action);
+ }
+
+ public PortalPermission createPermission(String uri, Collection actions) throws PortalSecurityException
+ {
+ return new PortalObjectPermission(uri,actions);
+ }
+
+ protected abstract ObjectNode getObjectNode(String id);
+
+ public PortalPermission getPermission(String roleName, String uri) throws PortalSecurityException
+ {
+ ObjectNode objectNode = getObjectNode(uri);
+ if (objectNode != null)
+ {
+ for (Iterator i = objectNode.getBindings().iterator(); i.hasNext();)
+ {
+ RoleSecurityBinding binding = (RoleSecurityBinding)i.next();
+ String constraintRoleName = binding.getRole();
+ if (constraintRoleName.equals(roleName) || SecurityConstants.UNCHECKED_ROLE_NAME.equals(constraintRoleName))
+ {
+ return createPermission(uri, binding.getActions());
+ }
+ }
+ }
+ return null;
+ }
+
+ public void removeBindings(String uri) throws SecurityConfigurationException
+ {
+ ObjectNode on = getObjectNode(uri);
+ if(on == null)
+ {
+ throw new SecurityConfigurationException("The object should exist prior its security is configured : fixme");
+ }
+ on.setBindings(new HashSet());
+ }
+
+ public void setBindings(String uri, Set bindings) throws SecurityConfigurationException
+ {
+ ObjectNode on = getObjectNode(uri);
+ if(on == null)
+ {
+ throw new SecurityConfigurationException("The object should exist prior its security is configured : fixme");
+ }
+ on.setBindings(bindings);
+ }
+
+ public Set getBindings(String uri)
+ {
+ ObjectNode on = getObjectNode(uri);
+ if (on != null)
+ {
+ return on.getBindings();
+ }
+ else
+ {
+ return null;
+ }
+ }
}
Modified: trunk/core/src/main/org/jboss/portal/core/impl/model/portal/ContainerContext.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/impl/model/portal/ContainerContext.java 2006-10-07 22:02:12 UTC (rev 5354)
+++ trunk/core/src/main/org/jboss/portal/core/impl/model/portal/ContainerContext.java 2006-10-07 23:16:31 UTC (rev 5355)
@@ -21,7 +21,6 @@
*/
package org.jboss.portal.core.impl.model.portal;
-import org.jboss.portal.api.node.event.PortalNodeEventListener;
import org.jboss.portal.core.model.portal.PortalObjectContainer;
/**
@@ -34,14 +33,6 @@
*/
PortalObjectContainer getContainer();
-// /**
-// */
-// void beforeChildRemoved(ObjectNode node);
-//
-// /**
-// */
-// void afterChildRemoved(ObjectNode node);
-
/**
*/
void destroyChild(ObjectNode node);
@@ -50,11 +41,7 @@
*/
void createChild(ObjectNode node);
-// /**
-// */
-// void beforeChildAdded(ObjectNode node);
-//
-// /**
-// */
-// void afterChildAdded(ObjectNode node);
+ /**
+ */
+ void updated(ObjectNode node);
}
Modified: trunk/core/src/main/org/jboss/portal/core/impl/model/portal/ObjectNode.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/impl/model/portal/ObjectNode.java 2006-10-07 22:02:12 UTC (rev 5354)
+++ trunk/core/src/main/org/jboss/portal/core/impl/model/portal/ObjectNode.java 2006-10-07 23:16:31 UTC (rev 5355)
@@ -24,12 +24,15 @@
import org.jboss.portal.core.model.portal.NoSuchPortalObjectException;
import org.jboss.portal.core.model.portal.DuplicatePortalObjectException;
import org.jboss.portal.jems.hibernate.ContextObject;
+import org.jboss.portal.security.RoleSecurityBinding;
import org.jboss.logging.Logger;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Set;
/**
* @author <a href="mailto:julien at jboss.org">Julien Viet</a>
@@ -247,4 +250,47 @@
{
this.securityConstraints = securityConstraints;
}
+
+ public void setBindings(Set bindings)
+ {
+ // Clear existing constraints
+ securityConstraints.clear();
+ for (Iterator i = securityConstraints.values().iterator(); i.hasNext();)
+ {
+ ObjectNodeSecurityConstraint onsc = (ObjectNodeSecurityConstraint)i.next();
+ i.remove();
+ onsc.setObjectNode(null);
+ }
+
+ // Replace with new ones
+ for (Iterator i = bindings.iterator(); i.hasNext();)
+ {
+ RoleSecurityBinding sc = (RoleSecurityBinding)i.next();
+
+ // Optmize a bit
+ if (sc.getActions().size() > 0)
+ {
+ ObjectNodeSecurityConstraint onsc = new ObjectNodeSecurityConstraint(sc.getActions(),sc.getRole());
+
+ //
+ onsc.setObjectNode(this);
+ securityConstraints.put(onsc.getRole(), onsc);
+ }
+ }
+
+ //
+ context.updated(this);
+ }
+
+ public Set getBindings()
+ {
+ Set bindings = new HashSet();
+ for (Iterator i = securityConstraints.values().iterator(); i.hasNext();)
+ {
+ ObjectNodeSecurityConstraint onsc = (ObjectNodeSecurityConstraint)i.next();
+ RoleSecurityBinding sc = new RoleSecurityBinding(onsc.getActions(), onsc.getRole());
+ bindings.add(sc);
+ }
+ return bindings;
+ }
}
Modified: trunk/core/src/main/org/jboss/portal/core/impl/model/portal/PersistentPortalObjectContainer.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/impl/model/portal/PersistentPortalObjectContainer.java 2006-10-07 22:02:12 UTC (rev 5354)
+++ trunk/core/src/main/org/jboss/portal/core/impl/model/portal/PersistentPortalObjectContainer.java 2006-10-07 23:16:31 UTC (rev 5355)
@@ -25,29 +25,13 @@
import org.hibernate.SessionFactory;
import org.hibernate.Query;
import org.jboss.logging.Logger;
-import org.jboss.portal.core.model.portal.Context;
-import org.jboss.portal.core.model.portal.PortalObject;
import org.jboss.portal.core.model.portal.PortalObjectContainer;
-import org.jboss.portal.core.model.portal.PortalObjectPermission;
import org.jboss.portal.security.impl.JBossAuthorizationDomainRegistry;
-import org.jboss.portal.security.PortalPermission;
-import org.jboss.portal.security.PortalPermissionCollection;
-import org.jboss.portal.security.PortalSecurityException;
-import org.jboss.portal.security.SecurityConstants;
-import org.jboss.portal.security.RoleSecurityBinding;
import org.jboss.portal.security.spi.auth.PortalAuthorizationManagerFactory;
import org.jboss.portal.security.spi.provider.AuthorizationDomain;
-import org.jboss.portal.security.spi.provider.SecurityConfigurationException;
-import org.jboss.portal.security.spi.provider.DomainConfigurator;
-import org.jboss.portal.security.spi.provider.PermissionFactory;
-import org.jboss.portal.security.spi.provider.PermissionRepository;
import org.jboss.portal.jems.hibernate.ObjectContextualizer;
import javax.naming.InitialContext;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Set;
-import java.util.HashSet;
/**
*
@@ -55,7 +39,6 @@
* @version $Revision$
*/
public class PersistentPortalObjectContainer extends AbstractPortalObjectContainer
- implements AuthorizationDomain, DomainConfigurator, PermissionRepository, PermissionFactory
{
/** The query for lookup. */
@@ -110,6 +93,12 @@
session.save(node.getObject());
session.flush();
}
+
+ public void updated(ObjectNode node)
+ {
+ Session session = sessionFactory.getCurrentSession();
+ session.flush();
+ }
};
//
@@ -197,25 +186,6 @@
}
}
- public PortalObject getObject(String id)
- {
- Session session = sessionFactory.getCurrentSession();
- ObjectNode node = lookup(session, id);
- if (node != null)
- {
- return node.getObject();
- }
- else
- {
- return null;
- }
- }
-
- public Context getContext()
- {
- return (Context)getObject("");
- }
-
/**
* todo : use AOP for tx demarcation.
*/
@@ -225,7 +195,7 @@
Session session = sessionFactory.getCurrentSession();
// Create root context if it does not exist
- ObjectNode root = lookup(session, "");
+ ObjectNode root = getObjectNode(session, "");
if (root == null)
{
// Bootstrap the root node
@@ -252,145 +222,13 @@
// AuthorizationDomain interface methods
//*******************************************************************
- public String getType()
+ protected ObjectNode getObjectNode(String uri)
{
- return PortalObjectPermission.PERMISSION_TYPE;
+ return getObjectNode(sessionFactory.getCurrentSession(), uri);
}
-
- public DomainConfigurator getConfigurator()
+ private ObjectNode getObjectNode(Session session, String path)
{
- return this;
- }
-
-
- public PermissionRepository getPermissionRepository()
- {
- return this;
- }
-
-
- public PermissionFactory getPermissionFactory()
- {
- return this;
- }
-
- public Set getBindings(String uri)
- {
- Set constraints = null;
- Set onscs = getConstraints(uri, sessionFactory.getCurrentSession());
- if (onscs != null)
- {
- constraints = new HashSet();
- for (Iterator i = onscs.iterator(); i.hasNext();)
- {
- ObjectNodeSecurityConstraint onsc = (ObjectNodeSecurityConstraint)i.next();
- RoleSecurityBinding sc = new RoleSecurityBinding(onsc.getActions(), onsc.getRole());
- constraints.add(sc);
- }
- }
- return constraints;
- }
-
-
- public void setBindings(String uri, Set bindings) throws SecurityConfigurationException
- {
- setConstraints(uri,bindings,sessionFactory.getCurrentSession());
- }
-
- public void removeBindings(String uri) throws SecurityConfigurationException
- {
- removeConstraints(uri,sessionFactory.getCurrentSession());
- }
-
- public PortalPermission getPermission(String roleName, String uri) throws PortalSecurityException
- {
- if(sessionFactory == null)
- {
- throw new IllegalStateException("sessionFactory is null");
- }
- Set set = getConstraints(uri,sessionFactory.getCurrentSession());
- if (set != null && !set.isEmpty())
- {
- for (Iterator i = set.iterator(); i.hasNext();)
- {
- ObjectNodeSecurityConstraint sc = (ObjectNodeSecurityConstraint)i.next();
- String constraintRoleName = sc.getRole();
- if (constraintRoleName.equals(roleName) || SecurityConstants.UNCHECKED_ROLE_NAME.equals(constraintRoleName))
- {
- return createPermission(uri, sc.getActions());
- }
- }
- }
- return null;
- }
-
- public PortalPermission createPermissionContainer(PortalPermissionCollection collection) throws PortalSecurityException
- {
- return new PortalObjectPermission(collection);
- }
-
- public PortalPermission createPermission(String uri, String action) throws PortalSecurityException
- {
- return new PortalObjectPermission(uri,action);
- }
-
- public PortalPermission createPermission(String uri, Collection actions) throws PortalSecurityException
- {
- return new PortalObjectPermission(uri,actions);
- }
-
- private void removeConstraints(String uri, Session session) throws SecurityConfigurationException
- {
- ObjectNode on = lookup(session, uri);
- if(on != null)
- {
- on.getSecurityConstraints().clear();
- session.flush();
- }
- else
- {
- throw new SecurityConfigurationException("The object should exist prior its security is configured : fixme");
- }
- }
-
- private void setConstraints(String uri, Set constraints, Session session) throws SecurityConfigurationException
- {
- ObjectNode on = lookup(session, uri);
- if(on == null)
- {
- throw new SecurityConfigurationException("The object should exist prior its security is configured : fixme");
- }
-
- // Clear existing constraints
- on.getSecurityConstraints().clear();
- for (Iterator i = on.getSecurityConstraints().values().iterator(); i.hasNext();)
- {
- ObjectNodeSecurityConstraint onsc = (ObjectNodeSecurityConstraint)i.next();
- i.remove();
- onsc.setObjectNode(null);
- }
-
- // Replace with new ones
- for (Iterator i = constraints.iterator(); i.hasNext();)
- {
- RoleSecurityBinding sc = (RoleSecurityBinding)i.next();
-
- // Optmize a bit
- if (sc.getActions().size() > 0)
- {
- ObjectNodeSecurityConstraint onsc = new ObjectNodeSecurityConstraint(sc.getActions(),sc.getRole());
-
- //
- onsc.setObjectNode(on);
- on.getSecurityConstraints().put(onsc.getRole(), onsc);
- }
- }
- session.flush();
- }
-
- private ObjectNode lookup(Session session, String path)
- {
String s = LOOKUP_QUERY;
if (path.length() == 0)
{
@@ -404,15 +242,4 @@
Object objectNode = query.uniqueResult();
return (ObjectNode)objectNode;
}
-
- private Set getConstraints(String uri, Session session)
- {
- Set constraints = null;
- ObjectNode on = lookup(session, uri);
- if (on != null)
- {
- constraints = new HashSet(on.getSecurityConstraints().values());
- }
- return constraints;
- }
}
Modified: trunk/core/src/main/org/jboss/portal/core/impl/model/portal/TransientPortalObjectContainer.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/impl/model/portal/TransientPortalObjectContainer.java 2006-10-07 22:02:12 UTC (rev 5354)
+++ trunk/core/src/main/org/jboss/portal/core/impl/model/portal/TransientPortalObjectContainer.java 2006-10-07 23:16:31 UTC (rev 5355)
@@ -58,6 +58,9 @@
public void createChild(ObjectNode node)
{
}
+ public void updated(ObjectNode node)
+ {
+ }
};
}
@@ -69,9 +72,16 @@
ctx.setObjectNode(root);
}
- public PortalObject getObject(String id)
+ /**
+ * @see PortalObjectContainer#getAuthorizationDomain()
+ */
+ public AuthorizationDomain getAuthorizationDomain()
{
- //
+ throw new IllegalStateException("Unimplemented");
+ }
+
+ protected ObjectNode getObjectNode(String id)
+ {
ObjectNode node = root;
int prev = 0;
int index = id.indexOf('.');
@@ -92,26 +102,6 @@
}
//
- if (node != null)
- {
- return node.getObject();
- }
- else
- {
- return null;
- }
+ return node;
}
-
- public Context getContext()
- {
- return (Context)root.getObject();
- }
-
- /**
- * @see PortalObjectContainer#getAuthorizationDomain()
- */
- public AuthorizationDomain getAuthorizationDomain()
- {
- throw new IllegalStateException("Unimplemented");
- }
}
More information about the jboss-svn-commits
mailing list