From f8dbd2c95981cd1e960982b656c5b6f877029897 Mon Sep 17 00:00:00 2001 From: slaws Date: Wed, 29 Jun 2011 13:47:21 +0000 Subject: Add itest for testing WS Policy as applied to the WS binding. Not in build yet. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1141102 13f79535-47bb-0310-9956-ffa450edef68 --- .../trunk/testing/itest/ws/wspolicy/README | 116 +++++++++++++++++++++ .../trunk/testing/itest/ws/wspolicy/pom.xml | 63 +++++++++++ .../binding/ws/axis2/helloworld/HelloWorld.java | 29 ++++++ .../ws/axis2/helloworld/HelloWorldClient.java | 35 +++++++ .../ws/axis2/helloworld/HelloWorldService.java | 45 ++++++++ .../ws/axis2/helloworld/ServerPWCBHandler.java | 55 ++++++++++ .../main/resources/META-INF/sca-contribution.xml | 23 ++++ ....apache.tuscany.sca.definitions.xml.Definitions | 17 +++ .../wspolicy/src/main/resources/helloworldKeys.jks | Bin 0 -> 1354 bytes .../binding/ws/axis2/helloworld/definitions.xml | 102 ++++++++++++++++++ .../ws/axis2/helloworld/helloworld.composite | 46 ++++++++ .../binding/ws/axis2/helloworld/helloworld.wsdl | 90 ++++++++++++++++ .../sca/binding/ws/axis2/HelloworldTestCase.java | 50 +++++++++ 13 files changed, 671 insertions(+) create mode 100644 sca-java-2.x/trunk/testing/itest/ws/wspolicy/README create mode 100644 sca-java-2.x/trunk/testing/itest/ws/wspolicy/pom.xml create mode 100644 sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorld.java create mode 100644 sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldClient.java create mode 100644 sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldService.java create mode 100644 sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/ServerPWCBHandler.java create mode 100644 sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions create mode 100644 sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/helloworldKeys.jks create mode 100644 sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml create mode 100644 sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.composite create mode 100644 sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.wsdl create mode 100644 sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloworldTestCase.java (limited to 'sca-java-2.x/trunk/testing/itest/ws/wspolicy') diff --git a/sca-java-2.x/trunk/testing/itest/ws/wspolicy/README b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/README new file mode 100644 index 0000000000..60a1b09598 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/README @@ -0,0 +1,116 @@ +No Security +=========== + +POST /HelloWorldService/HelloWorld HTTP/1.1 +Content-Type: text/xml; charset=UTF-8 +SOAPAction: "" +User-Agent: Axis2 +Host: localhost:8081 +Content-Length: 287 + + + + + + fred + + + + +HTTP/1.1 200 OK +Content-Type: text/xml; charset=utf-8 +Transfer-Encoding: chunked + +146 + + + + + Hello fred null subject + + + + +Integrity +========= + +POST /HelloWorldService/HelloWorld HTTP/1.1 +Content-Type: text/xml; charset=UTF-8 +SOAPAction: "" +User-Agent: Axis2 +Host: localhost:8081 +Content-Length: 3714 + + + + + + + 2011-06-29T13:19:32.343Z + 2011-06-29T13:24:32.343Z + + + MIICPTCCAaagAwIBAgIESZNUvDANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVSz + ELMAkGA1UECBMCVUsxEzARBgNVBAcTCldpbmNoZXN0ZXIxDzANBgNVBAoTBkFwYWNoZTEPMA0GA1UECxMGQXBhY2hlMRAwDgYDVQQDEwdUdXNjYW55MB4XDT + A5MDIxMTIyNDQxMloXDTM2MDYyODIyNDQxMlowYzELMAkGA1UEBhMCVUsxCzAJBgNVBAgTAlVLMRMwEQYDVQQHEwpXaW5jaGVzdGVyMQ8wDQYDVQQKEwZBcG + FjaGUxDzANBgNVBAsTBkFwYWNoZTEQMA4GA1UEAxMHVHVzY2FueTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAm9V5SuYbkyZreLyHuEaorRya3fEkpF + q2n3Sg9kaQH5L0Zb81MNEUkoNk4jeFDC7GnQ4QQU9UfM/xAX3d0VIZSFdp7I5lxVRnXg5tcacDmckuJRCAO0AkeI4aRTD/iHQ2RfcJCwZtXJPdo2OywBGIf4 + CQnZI5mkNDAbK2SEaN+/cCAwEAATANBgkqhkiG9w0BAQUFAAOBgQAX593t0K195ZQc3g2+mIhjuwh5tKktaKS6x0AEmaTxI1c3F8LY6bK89DiQ1gEf36ryfA + CGgHrRyufgcQtlIHEbbppPiPHgaBW4pQjJqyMa9/TlU+OqhBcc7dyGZd9MU0ZNwJPXW4vmSFLKp95bjmfxXNPm7Oln1StAD3BLo5YsYA== + + + + + + + + + + + cUwRlwItvnyGcmaDX9hBhoVYgUA= + + + + + + + AR60PsgLRdjhQjx3Kn5myNfcx4g= + + + + jvDnLfKdyxnDCVtmJr0lrwQsigBBlZhYMyYJeQswjit1th4fxatyywV4wRxu/rm3iuNl+svnS9HA + Vyv1Enr2/5+2QFTAeKKcGa/HtpSL/dtZr8UTHwFVR9/ecDpAxupb2k2vumpxH2WQlvnrj1lVQjE4 + ewLiWB6NEjdhnbYL9Ws= + + + + + + + + + + + <_ns_:getGreetings xmlns:_ns_="http://helloworld"> + fred + + + \ No newline at end of file diff --git a/sca-java-2.x/trunk/testing/itest/ws/wspolicy/pom.xml b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/pom.xml new file mode 100644 index 0000000000..fdeb21177d --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/pom.xml @@ -0,0 +1,63 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + itest-ws + 2.0-SNAPSHOT + ../pom.xml + + + itest-ws-wspolicy + Apache Tuscany SCA iTest WS with WSPolicy + + + + + org.apache.tuscany.sca + tuscany-base-runtime-pom + pom + 2.0-SNAPSHOT + + + + org.apache.tuscany.sca + tuscany-binding-ws-runtime-axis2 + 2.0-SNAPSHOT + + + + org.mortbay.jetty + jetty + 6.1.19 + + + + org.codehaus.woodstox + wstx-asl + 3.2.9 + + + + + ${project.artifactId} + + diff --git a/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorld.java b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorld.java new file mode 100644 index 0000000000..057b00a21c --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorld.java @@ -0,0 +1,29 @@ +/* + * 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.binding.ws.axis2.helloworld; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface HelloWorld { + + String getGreetings(String s); + +} diff --git a/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldClient.java b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldClient.java new file mode 100644 index 0000000000..212617af6a --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldClient.java @@ -0,0 +1,35 @@ +/* + * 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.binding.ws.axis2.helloworld; + +import org.oasisopen.sca.annotation.Reference; + +public class HelloWorldClient implements HelloWorld { + + @Reference + public HelloWorld helloWorldWS; + + public String getGreetings(String s) { + String response = helloWorldWS.getGreetings(s); + System.out.println("At client: " + response); + return response; + } + +} diff --git a/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldService.java b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldService.java new file mode 100644 index 0000000000..f514fc9b94 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldService.java @@ -0,0 +1,45 @@ +/* + * 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.binding.ws.axis2.helloworld; + +import javax.security.auth.Subject; + +import org.oasisopen.sca.RequestContext; +import org.oasisopen.sca.annotation.Context; + +public class HelloWorldService implements HelloWorld { + + @Context + protected RequestContext requestContext; + + public String getGreetings(String name) { + Subject subject = requestContext.getSecuritySubject(); + String response = "Hello " + name + " "; + + if (subject == null){ + response += "null subject"; + } else { + response += subject.getPrincipals().iterator().next().getName(); + } + + System.out.println("At service: " + response); + return response; + } +} diff --git a/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/ServerPWCBHandler.java b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/ServerPWCBHandler.java new file mode 100644 index 0000000000..4ada132172 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/ServerPWCBHandler.java @@ -0,0 +1,55 @@ +/* + * 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.binding.ws.axis2.helloworld; + +import java.io.IOException; + +import javax.security.auth.callback.Callback; +import javax.security.auth.callback.CallbackHandler; +import javax.security.auth.callback.UnsupportedCallbackException; + +import org.apache.ws.security.WSPasswordCallback; + +/** + * Sample userid passwd generation class + */ +public class ServerPWCBHandler implements CallbackHandler { + + public void handle(Callback[] callbacks) throws IOException, + UnsupportedCallbackException { + for (int i = 0; i < callbacks.length; i++) { + System.out.println("*** Calling Server User/Passwd Handler...."); + WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i]; + System.out.println("User Id = " + pwcb.getIdentifer()); + System.out.println("Password = " + pwcb.getPassword()); + + if ( pwcb.getUsage() == WSPasswordCallback.USERNAME_TOKEN ) { + if ( pwcb.getIdentifer().equals("TuscanyWsUser") && + pwcb.getPassword().equals("TuscanyWsUserPasswd") ){ + return; + } else { + throw new UnsupportedCallbackException(pwcb, "Authentication Failed : UserId - Password mismatch"); + } + } else if ( pwcb.getUsage() == WSPasswordCallback.SIGNATURE ) { + pwcb.setPassword("TuscanyWsUserPasswd"); + } + } + } + +} diff --git a/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..350ad6be96 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + \ No newline at end of file diff --git a/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions new file mode 100644 index 0000000000..04fe620be4 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions @@ -0,0 +1,17 @@ +# 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. +org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml \ No newline at end of file diff --git a/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/helloworldKeys.jks b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/helloworldKeys.jks new file mode 100644 index 0000000000..e2184ad3c6 Binary files /dev/null and b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/helloworldKeys.jks differ diff --git a/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml new file mode 100644 index 0000000000..95089c39f3 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TuscanyWsUser + TuscanyWsUser + org.apache.tuscany.sca.binding.ws.axis2.helloworld.ServerPWCBHandler + + + + JKS + helloworldKeys.jks + TuscanyWsUserPasswd + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.composite b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.composite new file mode 100644 index 0000000000..6c199611a1 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.composite @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.wsdl b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.wsdl new file mode 100644 index 0000000000..15b89dbcea --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.wsdl @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloworldTestCase.java b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloworldTestCase.java new file mode 100644 index 0000000000..d21d3c3682 --- /dev/null +++ b/sca-java-2.x/trunk/testing/itest/ws/wspolicy/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloworldTestCase.java @@ -0,0 +1,50 @@ +/* + * 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.binding.ws.axis2; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.binding.ws.axis2.helloworld.HelloWorld; +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; + +public class HelloworldTestCase extends TestCase { + + private Node node; + private HelloWorld helloWorld; + + public void testCalculator() throws Exception { + assertEquals("Hello fred myname", helloWorld.getGreetings("fred")); + } + + @Override + protected void setUp() throws Exception { + node = NodeFactory.newInstance().createNode(new Contribution("test", "target/classes")); + node.start(); + helloWorld = node.getService(HelloWorld.class, "HelloWorldClient"); + } + + @Override + protected void tearDown() throws Exception { + node.stop(); + } + +} -- cgit v1.2.3