[jbossws-commits] JBossWS SVN: r14437 - in stack/cxf/trunk/modules/testsuite/cxf-tests: src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas and 1 other directories.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Thu May 26 09:08:11 EDT 2011


Author: alessio.soldano at jboss.com
Date: 2011-05-26 09:08:10 -0400 (Thu, 26 May 2011)
New Revision: 14437

Added:
   stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/POJOEndpointAuthorizationInterceptor.java
Modified:
   stack/cxf/trunk/modules/testsuite/cxf-tests/scripts/cxf-jars-jaxws.xml
   stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/ServiceIface.java
   stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/ServiceImpl.java
   stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/UsernameAuthorizationTestCase.java
   stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/resources/jaxws/samples/wsse/policy/jaas/auth/WEB-INF/wsdl/SecurityService.wsdl
   stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/resources/jaxws/samples/wsse/policy/jaas/auth/WEB-INF/wsdl/SecurityService_schema1.xsd
Log:
[JBWS-3302] Also add authorization testcase


Modified: stack/cxf/trunk/modules/testsuite/cxf-tests/scripts/cxf-jars-jaxws.xml
===================================================================
--- stack/cxf/trunk/modules/testsuite/cxf-tests/scripts/cxf-jars-jaxws.xml	2011-05-26 12:17:47 UTC (rev 14436)
+++ stack/cxf/trunk/modules/testsuite/cxf-tests/scripts/cxf-jars-jaxws.xml	2011-05-26 13:08:10 UTC (rev 14437)
@@ -320,6 +320,7 @@
        <classes dir="${tests.output.dir}/test-classes">
           <include name="org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/Service*.class"/>
           <include name="org/jboss/test/ws/jaxws/samples/wsse/policy/jaxws/*.class"/>
+          <include name="org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/POJOEndpointAuthorizationInterceptor.class"/>
        </classes>
        <webinf dir="${tests.output.dir}/test-resources/jaxws/samples/wsse/policy/jaas/auth/WEB-INF">
           <include name="jaxws-endpoint-config.xml"/>

Added: stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/POJOEndpointAuthorizationInterceptor.java
===================================================================
--- stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/POJOEndpointAuthorizationInterceptor.java	                        (rev 0)
+++ stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/POJOEndpointAuthorizationInterceptor.java	2011-05-26 13:08:10 UTC (rev 14437)
@@ -0,0 +1,54 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2011, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.ws.jaxws.samples.wsse.policy.jaas;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.cxf.interceptor.security.SimpleAuthorizingInterceptor;
+
+
+/**
+ * A custom interceptor for method-level POJO endpoint authorization 
+ * 
+ * @author alessio.soldano at jboss.com
+ * @since 26-May-2011
+ *
+ */
+public class POJOEndpointAuthorizationInterceptor extends SimpleAuthorizingInterceptor
+{
+   
+   public POJOEndpointAuthorizationInterceptor()
+   {
+      super();
+      readRoles();
+   }
+   
+   private void readRoles()
+   {
+      //just an example, this might read from a configuration file or such
+      Map<String, String> roles = new HashMap<String, String>();
+      roles.put("sayHello", "friend");
+      roles.put("greetMe", "snoppies");
+      setMethodRolesMap(roles);
+   }
+}

Modified: stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/ServiceIface.java
===================================================================
--- stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/ServiceIface.java	2011-05-26 12:17:47 UTC (rev 14436)
+++ stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/ServiceIface.java	2011-05-26 13:08:10 UTC (rev 14437)
@@ -32,4 +32,7 @@
 {
    @WebMethod
    String sayHello();
+   
+   @WebMethod
+   String greetMe();
 }

Modified: stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/ServiceImpl.java
===================================================================
--- stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/ServiceImpl.java	2011-05-26 12:17:47 UTC (rev 14436)
+++ stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/ServiceImpl.java	2011-05-26 13:08:10 UTC (rev 14437)
@@ -35,11 +35,20 @@
    endpointInterface = "org.jboss.test.ws.jaxws.samples.wsse.policy.jaas.ServiceIface"
 )
 @EndpointConfig(configFile = "WEB-INF/jaxws-endpoint-config.xml", configName = "Custom WS-Security Endpoint")
- at InInterceptors(interceptors = "org.jboss.wsf.stack.cxf.security.authentication.SubjectCreatingPolicyInterceptor") //be sure to have dependency on org.apache.cxf module when on AS7 
+//be sure to have dependency on org.apache.cxf module when on AS7, otherwise Apache CXF annotations are ignored 
+ at InInterceptors(interceptors = {
+      "org.jboss.wsf.stack.cxf.security.authentication.SubjectCreatingPolicyInterceptor",
+      "org.jboss.test.ws.jaxws.samples.wsse.policy.jaas.POJOEndpointAuthorizationInterceptor"}
+)
 public class ServiceImpl implements ServiceIface
 {
    public String sayHello()
    {
       return "Secure Hello World!";
    }
+   
+   public String greetMe()
+   {
+      return "Greetings!";
+   }
 }

Modified: stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/UsernameAuthorizationTestCase.java
===================================================================
--- stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/UsernameAuthorizationTestCase.java	2011-05-26 12:17:47 UTC (rev 14436)
+++ stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/java/org/jboss/test/ws/jaxws/samples/wsse/policy/jaas/UsernameAuthorizationTestCase.java	2011-05-26 13:08:10 UTC (rev 14437)
@@ -58,7 +58,7 @@
       assertEquals("Secure Hello World!", proxy.sayHello());
    }
 
-   public void testWrongPassword() throws Exception
+   public void testUnauthenticated() throws Exception
    {
       QName serviceName = new QName("http://www.jboss.org/jbossws/ws-extensions/wssecuritypolicy", "SecurityService");
       URL wsdlURL = new URL(serviceURL + "?wsdl");
@@ -75,6 +75,24 @@
          //OK
       }
    }
+   
+   public void testUnauthorized() throws Exception
+   {
+      QName serviceName = new QName("http://www.jboss.org/jbossws/ws-extensions/wssecuritypolicy", "SecurityService");
+      URL wsdlURL = new URL(serviceURL + "?wsdl");
+      Service service = Service.create(wsdlURL, serviceName);
+      ServiceIface proxy = (ServiceIface)service.getPort(ServiceIface.class);
+      setupWsse(proxy, "kermit");
+      try
+      {
+         proxy.greetMe();
+         fail("User kermit shouldn't be authorized to call greetMe().");
+      }
+      catch (Exception e)
+      {
+         assertEquals("Unauthorized", e.getMessage());
+      }
+   }
 
    private void setupWsse(ServiceIface proxy, String username)
    {

Modified: stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/resources/jaxws/samples/wsse/policy/jaas/auth/WEB-INF/wsdl/SecurityService.wsdl
===================================================================
--- stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/resources/jaxws/samples/wsse/policy/jaas/auth/WEB-INF/wsdl/SecurityService.wsdl	2011-05-26 12:17:47 UTC (rev 14436)
+++ stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/resources/jaxws/samples/wsse/policy/jaas/auth/WEB-INF/wsdl/SecurityService.wsdl	2011-05-26 13:08:10 UTC (rev 14437)
@@ -20,11 +20,21 @@
   <message name="sayHelloResponse">
     <part name="parameters" element="tns:sayHelloResponse"/>
   </message>
+  <message name="greetMe">
+    <part name="parameters" element="tns:greetMe"/>
+  </message>
+  <message name="greetMeResponse">
+    <part name="parameters" element="tns:greetMeResponse"/>
+  </message>
   <portType name="ServiceIface">
     <operation name="sayHello">
       <input message="tns:sayHello"/>
       <output message="tns:sayHelloResponse"/>
     </operation>
+    <operation name="greetMe">
+      <input message="tns:greetMe"/>
+      <output message="tns:greetMeResponse"/>
+    </operation>
   </portType>
   <binding name="SecurityServicePortBinding" type="tns:ServiceIface">
     <wsp:PolicyReference URI="#SecurityServiceUsernameUnsecureTransportPolicy"/>
@@ -38,6 +48,15 @@
         <soap:body use="literal"/>
       </output>
     </operation>
+    <operation name="greetMe">
+      <soap:operation soapAction=""/>
+      <input>
+        <soap:body use="literal"/>
+      </input>
+      <output>
+        <soap:body use="literal"/>
+      </output>
+    </operation>
   </binding>
   <service name="SecurityService">
     <port name="SecurityServicePort" binding="tns:SecurityServicePortBinding">

Modified: stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/resources/jaxws/samples/wsse/policy/jaas/auth/WEB-INF/wsdl/SecurityService_schema1.xsd
===================================================================
--- stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/resources/jaxws/samples/wsse/policy/jaas/auth/WEB-INF/wsdl/SecurityService_schema1.xsd	2011-05-26 12:17:47 UTC (rev 14436)
+++ stack/cxf/trunk/modules/testsuite/cxf-tests/src/test/resources/jaxws/samples/wsse/policy/jaas/auth/WEB-INF/wsdl/SecurityService_schema1.xsd	2011-05-26 13:08:10 UTC (rev 14437)
@@ -14,5 +14,19 @@
       <xs:element name="return" type="xs:string" minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
+  
+  <xs:element name="greetMe" type="tns:greetMe"/>
+
+  <xs:element name="greetMeResponse" type="tns:greetMeResponse"/>
+
+  <xs:complexType name="greetMe">
+    <xs:sequence/>
+  </xs:complexType>
+
+  <xs:complexType name="greetMeResponse">
+    <xs:sequence>
+      <xs:element name="return" type="xs:string" minOccurs="0"/>
+    </xs:sequence>
+  </xs:complexType>
 </xs:schema>
 



More information about the jbossws-commits mailing list