You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2008/06/02 10:45:16 UTC

svn commit: r662362 [2/2] - in /servicemix/smx4/nmr/trunk: ./ assembly/ assembly/src/main/descriptors/ assembly/src/main/filtered-resources/ document/ document/src/ document/src/main/ document/src/main/java/ document/src/main/java/org/ document/src/mai...

Added: servicemix/smx4/nmr/trunk/nmr/core/src/test/java/org/apache/servicemix/nmr/core/security/DefaultAuthorizationEntryTest.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/nmr/core/src/test/java/org/apache/servicemix/nmr/core/security/DefaultAuthorizationEntryTest.java?rev=662362&view=auto
==============================================================================
--- servicemix/smx4/nmr/trunk/nmr/core/src/test/java/org/apache/servicemix/nmr/core/security/DefaultAuthorizationEntryTest.java (added)
+++ servicemix/smx4/nmr/trunk/nmr/core/src/test/java/org/apache/servicemix/nmr/core/security/DefaultAuthorizationEntryTest.java Mon Jun  2 01:45:14 2008
@@ -0,0 +1,44 @@
+/*
+ * 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.servicemix.nmr.core.security;
+
+import java.util.Set;
+
+import org.apache.servicemix.nmr.api.security.GroupPrincipal;
+import junit.framework.TestCase;
+
+public class DefaultAuthorizationEntryTest extends TestCase {
+
+    public void testSetRoles() {
+        DefaultAuthorizationEntry entry = new DefaultAuthorizationEntry();
+        entry.setRoles("role1, role2");
+        Set<GroupPrincipal> acls = entry.getAcls();
+        assertNotNull(acls);
+        assertEquals(2, acls.size());
+        assertTrue(acls.contains(new GroupPrincipal("role1")));
+        assertTrue(acls.contains(new GroupPrincipal("role2")));
+    }
+
+    public void testAnyRole() {
+        DefaultAuthorizationEntry entry = new DefaultAuthorizationEntry();
+        entry.setRoles("*");
+        Set<GroupPrincipal> acls = entry.getAcls();
+        assertNotNull(acls);
+        assertEquals(1, acls.size());
+        assertTrue(acls.contains(GroupPrincipal.ANY));
+    }
+}

Added: servicemix/smx4/nmr/trunk/nmr/core/src/test/java/org/apache/servicemix/nmr/core/security/DefaultAuthorizationServiceTest.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/nmr/core/src/test/java/org/apache/servicemix/nmr/core/security/DefaultAuthorizationServiceTest.java?rev=662362&view=auto
==============================================================================
--- servicemix/smx4/nmr/trunk/nmr/core/src/test/java/org/apache/servicemix/nmr/core/security/DefaultAuthorizationServiceTest.java (added)
+++ servicemix/smx4/nmr/trunk/nmr/core/src/test/java/org/apache/servicemix/nmr/core/security/DefaultAuthorizationServiceTest.java Mon Jun  2 01:45:14 2008
@@ -0,0 +1,92 @@
+/*
+ * 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.servicemix.nmr.core.security;
+
+import java.util.Set;
+
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+import org.apache.servicemix.nmr.api.security.AuthorizationEntry;
+import org.apache.servicemix.nmr.api.security.GroupPrincipal;
+
+public class DefaultAuthorizationServiceTest extends TestCase {
+
+    protected DefaultAuthorizationService service;
+
+    protected void setUp() {
+        service = new DefaultAuthorizationService();
+    }
+
+    public void testSet() {
+        addEntry("*", null, "*", AuthorizationEntry.Type.Add);
+        addEntry("ep1", null, "role1", AuthorizationEntry.Type.Set);
+
+        Set<GroupPrincipal> acls = service.getAcls("ep1", null);
+        assertNotNull(acls);
+        assertEquals(1, acls.size());
+        assertTrue(acls.contains(new GroupPrincipal("role1")));
+        acls = service.getAcls("ep2", null);
+        assertNotNull(acls);
+        assertEquals(1, acls.size());
+        assertTrue(acls.contains(GroupPrincipal.ANY));
+    }
+
+    public void testRemoveAdd() {
+        addEntry("*", null, "*", AuthorizationEntry.Type.Add);
+        addEntry("ep.*", null, "*", AuthorizationEntry.Type.Remove);
+        addEntry("ep1", null, "role1", AuthorizationEntry.Type.Add);
+
+        Set<GroupPrincipal> acls = service.getAcls("ep1", null);
+        assertNotNull(acls);
+        assertEquals(1, acls.size());
+        assertTrue(acls.contains(new GroupPrincipal("role1")));
+        acls = service.getAcls("ep2", null);
+        assertNotNull(acls);
+        assertEquals(0, acls.size());
+        acls = service.getAcls("p3", null);
+        assertNotNull(acls);
+        assertEquals(1, acls.size());
+        assertTrue(acls.contains(GroupPrincipal.ANY));
+    }
+
+    public void testRank() {
+        addEntry("*", null, "*", AuthorizationEntry.Type.Add, 0);
+        addEntry("*", null, "*", AuthorizationEntry.Type.Remove, -1);
+        addEntry("ep1", null, "role1", AuthorizationEntry.Type.Add);
+
+        Set<GroupPrincipal> acls = service.getAcls("ep1", null);
+        assertNotNull(acls);
+        assertEquals(2, acls.size());
+        assertTrue(acls.contains(new GroupPrincipal("role1")));
+        assertTrue(acls.contains(GroupPrincipal.ANY));
+    }
+
+    protected void addEntry(String endpoint, QName operation, String roles) {
+        addEntry(endpoint, operation, roles, AuthorizationEntry.Type.Add);
+    }
+
+    protected void addEntry(String endpoint, QName operation, String roles, AuthorizationEntry.Type type) {
+        addEntry(endpoint, operation, roles, type, 0);
+    }
+
+    protected void addEntry(String endpoint, QName operation, String roles, AuthorizationEntry.Type type, int rank) {
+        DefaultAuthorizationEntry entry = new DefaultAuthorizationEntry(endpoint,  operation, roles, type, rank);
+        service.register(entry, null);
+    }
+
+}

Modified: servicemix/smx4/nmr/trunk/nmr/osgi/src/main/resources/META-INF/spring/servicemix-nmr.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/nmr/osgi/src/main/resources/META-INF/spring/servicemix-nmr.xml?rev=662362&r1=662361&r2=662362&view=diff
==============================================================================
--- servicemix/smx4/nmr/trunk/nmr/osgi/src/main/resources/META-INF/spring/servicemix-nmr.xml (original)
+++ servicemix/smx4/nmr/trunk/nmr/osgi/src/main/resources/META-INF/spring/servicemix-nmr.xml Mon Jun  2 01:45:14 2008
@@ -42,7 +42,9 @@
     </osgi:service>
 
     <!-- Flow registry and service tracker -->
-    <bean id="flowRegistry" class="org.apache.servicemix.nmr.core.FlowRegistryImpl" />
+    <bean id="flowRegistry" class="org.apache.servicemix.nmr.core.FlowRegistryImpl">
+        <property name="authorizationService" ref="authorizationService" />
+    </bean>
     <osgi:list id="flows"
                interface="org.apache.servicemix.nmr.api.internal.Flow"
                cardinality="0..N">
@@ -77,4 +79,29 @@
         </osgi:interfaces>
     </osgi:service>
 
+    <!-- AuthorizationService -->
+    <bean id="authorizationService" class="org.apache.servicemix.nmr.core.security.DefaultAuthorizationService" />
+    <osgi:service ref="authorizationService" interface="org.apache.servicemix.nmr.api.security.AuthorizationService" />
+
+    <!-- AuthorizationEntries -->
+    <osgi:list id="authorizationEntries"
+               interface="org.apache.servicemix.nmr.api.security.AuthorizationEntry"
+               cardinality="0..N">
+        <osgi:listener ref="authorizationService" bind-method="register" unbind-method="unregister" />
+    </osgi:list>
+
+    <!-- Default authorization entry -->
+    <osgi:service interface="org.apache.servicemix.nmr.api.security.AuthorizationEntry">
+        <bean class="org.apache.servicemix.nmr.core.security.DefaultAuthorizationEntry">
+            <property name="endpoint" value="*" />
+            <property name="rank" value="-2147483648" />
+            <property name="roles" value="*" />
+            <property name="type" value="Set" />
+        </bean>
+    </osgi:service>
+
+    <!-- AuthenticationService -->
+    <bean id="authenticationService" class="org.apache.servicemix.nmr.core.security.JaasAuthenticationService" />
+    <osgi:service ref="authenticationService" interface="org.apache.servicemix.nmr.api.security.AuthorizationService" />
+
 </beans>

Modified: servicemix/smx4/nmr/trunk/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/smx4/nmr/trunk/pom.xml?rev=662362&r1=662361&r2=662362&view=diff
==============================================================================
--- servicemix/smx4/nmr/trunk/pom.xml (original)
+++ servicemix/smx4/nmr/trunk/pom.xml Mon Jun  2 01:45:14 2008
@@ -35,6 +35,7 @@
   <modules>
       <module>bundles</module>
       <module>nmr</module>
+      <module>document</module>
       <module>jbi</module>
       <module>bundle</module>
       <module>assembly</module>