[Yanel-commits] rev 34724 - in
public/yanel/trunk/src/contributions/resources/policymanager/src:
build java/org/wyona/yanel/impl/resources/policymanager
michi at wyona.com
michi at wyona.com
Thu Apr 3 11:25:29 CEST 2008
Author: michi
Date: 2008-04-03 11:25:28 +0200 (Thu, 03 Apr 2008)
New Revision: 34724
Removed:
public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyParser.java
Modified:
public/yanel/trunk/src/contributions/resources/policymanager/src/build/dependencies.xml
public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java
Log:
PolicyParser removed
Modified: public/yanel/trunk/src/contributions/resources/policymanager/src/build/dependencies.xml
===================================================================
--- public/yanel/trunk/src/contributions/resources/policymanager/src/build/dependencies.xml 2008-04-03 09:15:44 UTC (rev 34723)
+++ public/yanel/trunk/src/contributions/resources/policymanager/src/build/dependencies.xml 2008-04-03 09:25:28 UTC (rev 34724)
@@ -12,11 +12,14 @@
<dependency groupId="javax.servlet" artifactId="servlet-api" version="2.3"/>
<dependency groupId="avalon-framework" artifactId="avalon-framework-api" version="4.3"/>
<dependency groupId="avalon-framework" artifactId="avalon-framework-impl" version="4.3"/>
+ <!-- TODO: Coordinate with core! -->
+ <dependency groupId="wyona-org-security" artifactId="wyona-org-security-util" version="0.2-dev-r34299"/>
</artifact:dependencies>
<artifact:dependencies pathId="maven2.resource.classpath" filesetId="maven2.resource.fileset">
<remoteRepository refid="wyona.remote.repository"/>
- <!-- No resource specific libs yet -->
+ <!-- TODO: Coordinate with core! -->
+ <dependency groupId="wyona-org-security" artifactId="wyona-org-security-util" version="0.2-dev-r34299"/>
</artifact:dependencies>
<property name="maven2.cp" refid="maven2.classpath"/>
Modified: public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java 2008-04-03 09:15:44 UTC (rev 34723)
+++ public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java 2008-04-03 09:25:28 UTC (rev 34724)
@@ -275,7 +275,7 @@
* Write/Save policy
*/
private void writePolicy(InputStream policyAsInputStream, PolicyManager pm, String path) throws Exception {
- Policy policy = new PolicyParser().parseXML(policyAsInputStream);
+ Policy policy = new org.wyona.security.util.PolicyParser().parseXML(policyAsInputStream);
pm.setPolicy(path, policy);
}
Deleted: public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyParser.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyParser.java 2008-04-03 09:15:44 UTC (rev 34723)
+++ public/yanel/trunk/src/contributions/resources/policymanager/src/java/org/wyona/yanel/impl/resources/policymanager/PolicyParser.java 2008-04-03 09:25:28 UTC (rev 34724)
@@ -1,199 +0,0 @@
-package org.wyona.yanel.impl.resources.policymanager;
-
-import org.wyona.security.core.GroupPolicy;
-import org.wyona.security.core.IdentityPolicy;
-import org.wyona.security.core.UsecasePolicy;
-import org.wyona.security.core.api.AccessManagementException;
-import org.wyona.security.core.api.Group;
-import org.wyona.security.core.api.Identity;
-import org.wyona.security.core.api.Policy;
-
-import org.apache.log4j.Logger;
-
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
-
-import java.util.Vector;
-
-/**
- * Allows to parse an XML such as for example
- * <policy xmlns="http://www.wyona.org/security/1.0" use-inherited-policies="false">
- * <world>
- * <right id="view">Read</right>
- * <right id="write">Write</right>
- * </world>
- * <user id="http://michaelwechner.livejournal.com/">
- * <right id="open" permission="true"/>
- * <right id="write" permission="false"/>
- * </user>
- * <group id="admin">
- * <right id="open" permission="true"/>
- * <right id="write"/>
- * </group>
- * </policy>
- */
-public class PolicyParser implements Policy {
-
- private static Logger log = Logger.getLogger(PolicyParser.class);
- protected DefaultConfigurationBuilder builder = null;
- protected Vector usecasePolicies = null;
- protected boolean useInheritedPolicies = true;
-
- /**
- *
- */
- public PolicyParser() throws Exception {
- usecasePolicies = new Vector();
- }
-
- /**
- *
- */
- public Policy parseXML(java.io.InputStream in) throws Exception {
- boolean enableNamespaces = true;
- builder = new DefaultConfigurationBuilder(enableNamespaces);
- Configuration config = builder.build(in);
-
- String useInheritedPoliciesString = config.getAttribute("use-inherited-policies", "true");
- if (useInheritedPoliciesString.equals("false")) useInheritedPolicies = false;
-
- // TODO: Check for world
-
- Configuration[] userConfigs = config.getChildren("user");
- for (int i = 0; i < userConfigs.length; i++) {
- Configuration[] rightConfigs = userConfigs[i].getChildren("right");
- for (int k = 0; k < rightConfigs.length; k++) {
- UsecasePolicy up = new UsecasePolicy(rightConfigs[k].getAttribute("id"));
- String permission = rightConfigs[k].getAttribute("permission");
- up.addIdentity(new Identity(userConfigs[i].getAttribute("id"), null), new Boolean(permission).booleanValue());
- addUsecasePolicy(up);
- }
- }
-
- Configuration[] groupConfigs = config.getChildren("group");
- for (int i = 0; i < groupConfigs.length; i++) {
- Configuration[] rightConfigs = groupConfigs[i].getChildren("right");
- for (int k = 0; k < rightConfigs.length; k++) {
- UsecasePolicy up = new UsecasePolicy(rightConfigs[k].getAttribute("id"));
- String permission = rightConfigs[k].getAttribute("permission");
- up.addGroupPolicy(new GroupPolicy(groupConfigs[i].getAttribute("id"), new Boolean(permission).booleanValue()));
- addUsecasePolicy(up);
- }
- }
-
- // TODO: Check for hosts
-
- return this;
- }
-
- /**
- * @see
- */
- public UsecasePolicy[] getUsecasePolicies() {
- UsecasePolicy[] ups = new UsecasePolicy[usecasePolicies.size()];
- for (int i = 0; i < ups.length; i++) {
- ups[i] = (UsecasePolicy) usecasePolicies.elementAt(i);
- }
- return ups;
- }
-
- /**
- * @see
- */
- public void addUsecasePolicy(UsecasePolicy up) throws AccessManagementException {
- UsecasePolicy existingUsecasePolicy = null;
-
- for (int i = 0; i < usecasePolicies.size(); i++) {
- UsecasePolicy existingUP = (UsecasePolicy) usecasePolicies.elementAt(i);
- if (existingUP.getName().equals(up.getName())) {
- existingUsecasePolicy = existingUP;
- break;
- }
- }
-
- if (existingUsecasePolicy != null) {
- // Merge identities and groups
- IdentityPolicy[] identityPolicies = up.getIdentityPolicies();
- for (int k = 0; k < identityPolicies.length; k++) {
- boolean identityExists = false;
- IdentityPolicy[] existingIdentityPolicies = existingUsecasePolicy.getIdentityPolicies();
- for (int i = 0; i < existingIdentityPolicies.length; i++) {
- if (identityPolicies[k].getIdentity().getUsername().equals(existingIdentityPolicies[i].getIdentity().getUsername())) {
- identityExists = true;
- break;
- }
- }
- if (!identityExists) {
- existingUsecasePolicy.addIdentity(new Identity(identityPolicies[k].getIdentity().getUsername(), null), identityPolicies[k].getPermission());
- }
- }
-
- GroupPolicy[] groups = up.getGroupPolicies();
- for (int k = 0; k < groups.length; k++) {
- boolean groupExists = false;
- GroupPolicy[] existingGroups = existingUsecasePolicy.getGroupPolicies();
- for (int i = 0; i < existingGroups.length; i++) {
- if (groups[k].getId().equals(existingGroups[i].getId())) {
- groupExists = true;
- break;
- }
- }
- if (!groupExists) {
- existingUsecasePolicy.addGroupPolicy(new GroupPolicy(groups[k].getId(), groups[k].getPermission()));
- }
- }
- } else {
- usecasePolicies.add(up);
- log.info("New usecase policy has been added: " + up.getName());
- }
- }
-
- /**
- * @see
- */
- public String getPath() throws AccessManagementException {
- log.warn("Not implemented yet!");
- return null;
- }
-
- /**
- * @see
- */
- public Policy getParentPolicy() throws AccessManagementException {
- log.warn("Not implemented yet!");
- return null;
- }
-
- /**
- * @see
- */
- public boolean useInheritedPolicies() {
- return useInheritedPolicies;
- }
-
- /**
- *
- */
- public String toString() {
- StringBuffer sb = new StringBuffer("Policy:\n");
- UsecasePolicy[] ups = getUsecasePolicies();
- for (int i = 0; i < ups.length; i++) {
- sb.append(" Usecase: " + ups[i].getName() + "\n");
- Identity[] ids = ups[i].getIdentities();
- for (int j = 0; j < ids.length; j++) {
- if (ids[j].isWorld()) {
- sb.append(" WORLD\n");
- } else {
- sb.append(" User: " + ids[j].getUsername() + "\n");
- }
- }
- GroupPolicy[] gps = ups[i].getGroupPolicies();
- for (int j = 0; j < gps.length; j++) {
- sb.append(" Group: " + gps[j].getId() + " (" + gps[j].getPermission() + ")\n");
- }
- }
- return sb.toString();
- }
-}
-
More information about the Yanel-commits
mailing list