Repository: cxf Updated Branches: refs/heads/3.1.x-fixes e6416bea1 -> 409188bcc
Adding another secured fault test Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/409188bc Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/409188bc Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/409188bc Branch: refs/heads/3.1.x-fixes Commit: 409188bcc94490f9cd60d6871f853b34e031f300 Parents: e6416be Author: Colm O hEigeartaigh <cohei...@apache.org> Authored: Wed Jan 6 11:32:02 2016 +0000 Committer: Colm O hEigeartaigh <cohei...@apache.org> Committed: Wed Jan 6 11:34:23 2016 +0000 ---------------------------------------------------------------------- .../apache/cxf/systest/ws/fault/FaultTest.java | 35 +++++++++++ .../cxf/systest/ws/fault/DoubleItFault.wsdl | 66 ++++++++++++++++++++ .../org/apache/cxf/systest/ws/fault/client.xml | 8 +++ .../org/apache/cxf/systest/ws/fault/server.xml | 6 ++ 4 files changed, 115 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/409188bc/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/fault/FaultTest.java ---------------------------------------------------------------------- diff --git a/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/fault/FaultTest.java b/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/fault/FaultTest.java index 4bc825b..9a27fc5 100644 --- a/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/fault/FaultTest.java +++ b/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/fault/FaultTest.java @@ -225,4 +225,39 @@ public class FaultTest extends AbstractBusClientServerTestBase { client.destroy(); } + @org.junit.Test + public void testSoap11PolicyWithParts() throws Exception { + + SpringBusFactory bf = new SpringBusFactory(); + URL busFile = FaultTest.class.getResource("client.xml"); + + Bus bus = bf.createBus(busFile.toString()); + SpringBusFactory.setDefaultBus(bus); + SpringBusFactory.setThreadDefaultBus(bus); + + URL wsdl = FaultTest.class.getResource("DoubleItFault.wsdl"); + Service service = Service.create(wsdl, SERVICE_QNAME); + QName portQName = new QName(NAMESPACE, "DoubleItSoap11PolicyWithPartsPort"); + DoubleItPortType utPort = + service.getPort(portQName, DoubleItPortType.class); + updateAddressPort(utPort, PORT); + + // Make a successful invocation + ((BindingProvider)utPort).getRequestContext().put("security.username", "alice"); + utPort.doubleIt(25); + + // Now make an invocation using another username + ((BindingProvider)utPort).getRequestContext().put("security.username", "bob"); + ((BindingProvider)utPort).getRequestContext().put("security.password", "password"); + try { + utPort.doubleIt(25); + fail("Expected failure on bob"); + } catch (Exception ex) { + assertTrue(ex.getMessage().contains("This is a fault")); + } + + ((java.io.Closeable)utPort).close(); + bus.shutdown(true); + } + } http://git-wip-us.apache.org/repos/asf/cxf/blob/409188bc/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/fault/DoubleItFault.wsdl ---------------------------------------------------------------------- diff --git a/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/fault/DoubleItFault.wsdl b/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/fault/DoubleItFault.wsdl index 2d4bf02..df7ffe1 100644 --- a/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/fault/DoubleItFault.wsdl +++ b/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/fault/DoubleItFault.wsdl @@ -93,6 +93,21 @@ </wsdl:fault> </wsdl:operation> </wsdl:binding> + <wsdl:binding name="DoubleItSoap11NoPolicyBinding" type="tns:DoubleItPortType"> + <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> + <wsdl:operation name="DoubleIt"> + <soap:operation soapAction=""/> + <wsdl:input> + <soap:body use="literal"/> + </wsdl:input> + <wsdl:output> + <soap:body use="literal"/> + </wsdl:output> + <wsdl:fault name="DoubleItFault"> + <soap:fault use="literal" name="DoubleItFault"/> + </wsdl:fault> + </wsdl:operation> + </wsdl:binding> <wsdl:service name="DoubleItService"> <wsdl:port name="DoubleItSoap11Port" binding="tns:DoubleItSoap11Binding"> <soap:address location="http://localhost:9009/DoubleItSoap11"/> @@ -109,6 +124,10 @@ <wsdl:port name="DoubleItAsymmetricPort" binding="tns:DoubleItAsymmetricBinding"> <soap12:address location="http://localhost:9009/DoubleItAsymmetric"/> </wsdl:port> + <wsdl:port name="DoubleItSoap11PolicyWithPartsPort" binding="tns:DoubleItSoap11NoPolicyBinding"> + <wsp:PolicyReference URI="#DoubleItPlaintextWithPartsPolicy"/> + <soap:address location="http://localhost:9009/DoubleItSoap11PolicyWithParts"/> + </wsdl:port> </wsdl:service> <wsp:Policy wsu:Id="DoubleItPlaintextPolicy"> <wsp:ExactlyOne> @@ -193,6 +212,53 @@ </wsp:All> </wsp:ExactlyOne> </wsp:Policy> + <wsp:Policy wsu:Id="DoubleItPlaintextWithPartsPolicy"> + <wsp:ExactlyOne> + <wsp:All> + <sp:SymmetricBinding> + <wsp:Policy> + <sp:ProtectionToken> + <wsp:Policy> + <sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Never"> + <wsp:Policy> + <sp:WssX509V3Token10/> + <sp:RequireKeyIdentifierReference/> + </wsp:Policy> + </sp:X509Token> + </wsp:Policy> + </sp:ProtectionToken> + <sp:Layout> + <wsp:Policy> + <sp:Lax/> + </wsp:Policy> + </sp:Layout> + <sp:IncludeTimestamp/> + <sp:OnlySignEntireHeadersAndBody/> + <sp:AlgorithmSuite> + <wsp:Policy> + <sp:Basic128/> + </wsp:Policy> + </sp:AlgorithmSuite> + </wsp:Policy> + </sp:SymmetricBinding> + <sp:SupportingTokens> + <wsp:Policy> + <sp:UsernameToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient"> + <wsp:Policy> + <sp:WssUsernameToken10/> + </wsp:Policy> + </sp:UsernameToken> + </wsp:Policy> + </sp:SupportingTokens> + <sp:EncryptedParts> + <sp:Body/> + </sp:EncryptedParts> + <sp:SignedParts> + <sp:Body/> + </sp:SignedParts> + </wsp:All> + </wsp:ExactlyOne> + </wsp:Policy> <wsp:Policy wsu:Id="DoubleItBinding_DoubleIt_Input_Policy"> <wsp:ExactlyOne> <wsp:All> http://git-wip-us.apache.org/repos/asf/cxf/blob/409188bc/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/fault/client.xml ---------------------------------------------------------------------- diff --git a/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/fault/client.xml b/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/fault/client.xml index 8863d41..b22bb4d 100644 --- a/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/fault/client.xml +++ b/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/fault/client.xml @@ -56,4 +56,12 @@ <entry key="security.callback-handler" value="org.apache.cxf.systest.ws.common.KeystorePasswordCallback"/> </jaxws:properties> </jaxws:client> + + <jaxws:client name="{http://www.example.org/contract/DoubleIt}DoubleItSoap11PolicyWithPartsPort" createdFromAPI="true"> + <jaxws:properties> + <entry key="security.callback-handler" value="org.apache.cxf.systest.ws.common.KeystorePasswordCallback"/> + <entry key="security.encryption.properties" value="bob.properties"/> + <entry key="security.encryption.username" value="bob"/> + </jaxws:properties> + </jaxws:client> </beans> http://git-wip-us.apache.org/repos/asf/cxf/blob/409188bc/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/fault/server.xml ---------------------------------------------------------------------- diff --git a/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/fault/server.xml b/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/fault/server.xml index 3362cab..6fb8461 100644 --- a/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/fault/server.xml +++ b/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/fault/server.xml @@ -50,4 +50,10 @@ <entry key="mtom-enabled" value="true"/> </jaxws:properties> </jaxws:endpoint> + <jaxws:endpoint xmlns:s="http://www.example.org/contract/DoubleIt" id="Soap11PolicyWithParts" address="http://localhost:${testutil.ports.fault.Server}/DoubleItSoap11PolicyWithParts" serviceName="s:DoubleItService" endpointName="s:DoubleItSoap11PolicyWithPartsPort" implementor="org.apache.cxf.systest.ws.fault.DoubleItPortTypeImpl" wsdlLocation="org/apache/cxf/systest/ws/fault/DoubleItFault.wsdl"> + <jaxws:properties> + <entry key="security.callback-handler" value="org.apache.cxf.systest.ws.common.KeystorePasswordCallback"/> + <entry key="security.signature.properties" value="bob.properties"/> + </jaxws:properties> + </jaxws:endpoint> </beans>