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