You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2008/05/29 04:38:11 UTC

svn commit: r661186 - in /incubator/tuscany/java/sca/modules/policy-security/src: main/java/org/apache/tuscany/sca/policy/identity/ main/java/org/apache/tuscany/sca/policy/security/ main/resources/META-INF/services/ test/java/org/ test/java/org/apache/...

Author: lresende
Date: Wed May 28 19:38:10 2008
New Revision: 661186

URL: http://svn.apache.org/viewvc?rev=661186&view=rev
Log:
Bring support for Authorization and Security Identity Policy stuff back to runtime

Added:
    incubator/tuscany/java/sca/modules/policy-security/src/test/java/org/
    incubator/tuscany/java/sca/modules/policy-security/src/test/java/org/apache/
    incubator/tuscany/java/sca/modules/policy-security/src/test/java/org/apache/tuscany/
    incubator/tuscany/java/sca/modules/policy-security/src/test/java/org/apache/tuscany/sca/
    incubator/tuscany/java/sca/modules/policy-security/src/test/java/org/apache/tuscany/sca/policy/
    incubator/tuscany/java/sca/modules/policy-security/src/test/java/org/apache/tuscany/sca/policy/security/
    incubator/tuscany/java/sca/modules/policy-security/src/test/java/org/apache/tuscany/sca/policy/security/PolicyProcessorTestCase.java   (with props)
Modified:
    incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java
    incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/SecurityPolicyDefinitionsProvider.java
    incubator/tuscany/java/sca/modules/policy-security/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor

Modified: incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java?rev=661186&r1=661185&r2=661186&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProcessor.java Wed May 28 19:38:10 2008
@@ -52,7 +52,7 @@
     public SecurityIdentityPolicyProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
         this.monitor = monitor;
     }
-    
+
     /**
      * Report a error.
      * 
@@ -63,7 +63,7 @@
     private void error(String message, Object model, Object... messageParameters) {
         if (monitor != null) {
             Problem problem = new ProblemImpl(this.getClass().getName(), "policy-security-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters);
-                                              monitor.problem(problem);
+            monitor.problem(problem);
         }        
     }    
 
@@ -78,7 +78,7 @@
                     if ("runAs".equals(ac)) {
                         String roleName = reader.getAttributeValue(null, ROLE);
                         if (roleName == null) {
-                        	error("RequiredAttributeRolesMissing", reader);
+                            error("RequiredAttributeRolesMissing", reader);
                             throw new IllegalArgumentException("Required attribute 'roles' is missing.");
                         }
                         policy.setRunAsRole(roleName);
@@ -104,7 +104,7 @@
     }
 
     public void write(SecurityIdentityPolicy policy, XMLStreamWriter writer) throws ContributionWriteException,
-        XMLStreamException {
+    XMLStreamException {
         writer.writeStartElement(SecurityIdentityPolicy.NAME.getLocalPart());
 
         String child = policy.isUseCallerIdentity() ? "useCallerIdentity" : "runAs";

Modified: incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/SecurityPolicyDefinitionsProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/SecurityPolicyDefinitionsProvider.java?rev=661186&r1=661185&r2=661186&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/SecurityPolicyDefinitionsProvider.java (original)
+++ incubator/tuscany/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/SecurityPolicyDefinitionsProvider.java Wed May 28 19:38:10 2008
@@ -41,7 +41,7 @@
     private static final String tuscanyDefinitionsFile = "org/apache/tuscany/sca/policy/security/tuscany_definitions.xml";
     private String definitionsFile = "org/apache/tuscany/sca/policy/security/definitions.xml";
     URLArtifactProcessor urlArtifactProcessor = null;
-    
+
     public SecurityPolicyDefinitionsProvider(ExtensionPointRegistry registry) {
         URLArtifactProcessorExtensionPoint documentProcessors = registry.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
         urlArtifactProcessor = (URLArtifactProcessor)documentProcessors.getProcessor(SCADefinitions.class);
@@ -57,27 +57,27 @@
                     return getClass().getClassLoader().getResource(definitionsFile);
                 }
             });           
-        
+
             URI uri = new URI(definitionsFile);
 
             scaDefns = (SCADefinitions)urlArtifactProcessor.read(null, 
-                                                             uri, 
-                                                             definitionsFileUrl);
-            
+                                                                 uri, 
+                                                                 definitionsFileUrl);
+
             definitionsFileUrl = AccessController.doPrivileged(new PrivilegedAction<URL>() {
                 public URL run() {
                     return getClass().getClassLoader().getResource(tuscanyDefinitionsFile);
                 }
             }); 
-            
+
             uri = new URI(definitionsFile);
             tuscanyDefns = (SCADefinitions)urlArtifactProcessor.read(null, 
-                                                             uri, 
-                                                             definitionsFileUrl);
-            
+                                                                     uri, 
+                                                                     definitionsFileUrl);
+
             SCADefinitionsUtil.aggregateSCADefinitions(tuscanyDefns, scaDefns);
             return scaDefns;
-            
+
         } catch ( Exception e ) {
             throw new SCADefinitionsProviderException(e);
         }

Modified: incubator/tuscany/java/sca/modules/policy-security/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-security/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor?rev=661186&r1=661185&r2=661186&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/policy-security/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor (original)
+++ incubator/tuscany/java/sca/modules/policy-security/src/main/resources/META-INF/services/org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor Wed May 28 19:38:10 2008
@@ -16,4 +16,10 @@
 # under the License. 
 
 # Implementation class for the artifact processor extension
+org.apache.tuscany.sca.policy.authorization.AuthorizationPolicyProcessor;qname=http://www.osoa.org/xmlns/sca/1.0#authorization,model=org.apache.tuscany.sca.policy.authorization.AuthorizationPolicy
+org.apache.tuscany.sca.policy.authorization.AuthorizationPolicyProcessor;qname=http://www.osoa.org/xmlns/sca/1.0#allow,model=org.apache.tuscany.sca.policy.authorization.AuthorizationPolicy
+org.apache.tuscany.sca.policy.authorization.AuthorizationPolicyProcessor;qname=http://www.osoa.org/xmlns/sca/1.0#permitAll,model=org.apache.tuscany.sca.policy.authorization.AuthorizationPolicy
+org.apache.tuscany.sca.policy.authorization.AuthorizationPolicyProcessor;qname=http://www.osoa.org/xmlns/sca/1.0#denyAll,model=org.apache.tuscany.sca.policy.authorization.AuthorizationPolicy
+org.apache.tuscany.sca.policy.identity.SecurityIdentityPolicyProcessor;qname=http://www.osoa.org/xmlns/sca/1.0#securityIdentity,model=org.apache.tuscany.sca.policy.identity.SecurityIdentityPolicy
+org.apache.tuscany.sca.policy.identity.SecurityIdentityPolicyProcessor;qname=http://www.osoa.org/xmlns/sca/1.0#runAs,model=org.apache.tuscany.sca.policy.identity.SecurityIdentityPolicy
 org.apache.tuscany.sca.policy.security.jaas.JaasAuthenticationPolicyProcessor;qname=http://tuscany.apache.org/xmlns/sca/1.0#jaasAuthentication,model=org.apache.tuscany.sca.policy.security.jaas.JaasAuthenticationPolicy
\ No newline at end of file

Added: incubator/tuscany/java/sca/modules/policy-security/src/test/java/org/apache/tuscany/sca/policy/security/PolicyProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-security/src/test/java/org/apache/tuscany/sca/policy/security/PolicyProcessorTestCase.java?rev=661186&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/policy-security/src/test/java/org/apache/tuscany/sca/policy/security/PolicyProcessorTestCase.java (added)
+++ incubator/tuscany/java/sca/modules/policy-security/src/test/java/org/apache/tuscany/sca/policy/security/PolicyProcessorTestCase.java Wed May 28 19:38:10 2008
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package org.apache.tuscany.sca.policy.security;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamReader;
+
+import junit.framework.Assert;
+
+import org.apache.tuscany.sca.assembly.xml.Constants;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.policy.authorization.AuthorizationPolicy;
+import org.apache.tuscany.sca.policy.authorization.AuthorizationPolicyProcessor;
+import org.apache.tuscany.sca.policy.identity.SecurityIdentityPolicy;
+import org.apache.tuscany.sca.policy.identity.SecurityIdentityPolicyProcessor;
+import org.junit.Test;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class PolicyProcessorTestCase {
+    private final static List<String> SEQ =
+        Arrays.asList("permitAll",
+                      "allow [r1, r2]",
+                      "denyAll",
+                      "runAs admin",
+                      "useCallerIdentity",
+                      "permitAll",
+                      "allow [r1, r2]",
+                      "denyAll",
+                      "runAs admin");
+
+    @Test
+    public void testRead() throws Exception {
+        List<String> results = new ArrayList<String>();
+        Map<QName, StAXArtifactProcessor> processors = new HashMap<QName, StAXArtifactProcessor>();
+        processors.put(AuthorizationPolicy.NAME, new AuthorizationPolicyProcessor(null,null));
+        processors.put(SecurityIdentityPolicy.NAME, new SecurityIdentityPolicyProcessor(null,null));
+        processors.put(new QName(Constants.SCA10_NS, "allow"), new AuthorizationPolicyProcessor(null,null));
+        processors.put(new QName(Constants.SCA10_NS, "permitAll"), new AuthorizationPolicyProcessor(null,null));
+        processors.put(new QName(Constants.SCA10_NS, "denyAll"), new AuthorizationPolicyProcessor(null,null));
+        processors.put(new QName(Constants.SCA10_NS, "runAs"), new SecurityIdentityPolicyProcessor(null,null));
+        InputStream is = getClass().getResourceAsStream("mock_policy_definitions.xml");
+        XMLInputFactory factory = XMLInputFactory.newInstance();
+        XMLStreamReader reader = factory.createXMLStreamReader(is);
+        while (true) {
+            int event = reader.getEventType();
+            if (event == XMLStreamConstants.START_ELEMENT) {
+                if ("policySet".equals(reader.getName().getLocalPart())) {
+                    reader.nextTag();
+                    results.add(processors.get(reader.getName()).read(reader).toString());
+                }
+            }
+            if (reader.hasNext()) {
+                reader.next();
+            } else {
+                break;
+            }
+        }
+        Assert.assertEquals(SEQ, results);
+    }
+}

Propchange: incubator/tuscany/java/sca/modules/policy-security/src/test/java/org/apache/tuscany/sca/policy/security/PolicyProcessorTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/policy-security/src/test/java/org/apache/tuscany/sca/policy/security/PolicyProcessorTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date