Author: ffang Date: Tue Feb 21 07:51:45 2012 New Revision: 1291637 URL: http://svn.apache.org/viewvc?rev=1291637&view=rev Log: Merged revisions 1291635 via svnmerge from https://svn.apache.org/repos/asf/cxf/branches/2.5.x-fixes
................ r1291635 | ffang | 2012-02-21 15:45:50 +0800 (二, 21 2 2012) | 9 lines Merged revisions 1291628 via svnmerge from https://svn.apache.org/repos/asf/cxf/trunk ........ r1291628 | ffang | 2012-02-21 15:31:08 +0800 (二, 21 2 2012) | 1 line [CXF-4122]CXFRequestData should get chance to setEnableRevocation from message context When use WS-SecurityPolicy ........ ................ Modified: cxf/branches/2.4.x-fixes/ (props changed) cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java cxf/branches/2.4.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java cxf/branches/2.4.x-fixes/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/security/DoubleIt.wsdl Propchange: cxf/branches/2.4.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java?rev=1291637&r1=1291636&r2=1291637&view=diff ============================================================================== --- cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java (original) +++ cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java Tue Feb 21 07:51:45 2012 @@ -195,6 +195,7 @@ public class WSS4JInInterceptor extends } reqData.setWssConfig(config); + SOAPMessage doc = getSOAPMessage(msg); boolean doDebug = LOG.isLoggable(Level.FINE); @@ -241,6 +242,14 @@ public class WSS4JInInterceptor extends */ doReceiverAction(doAction, reqData); + /*get chance to check msg context enableRevocation setting + *when use policy based ws-security where the WSHandler configuration + *isn't available + */ + boolean enableRevocation = reqData.isRevocationEnabled() + || MessageUtils.isTrue(msg.getContextualProperty(SecurityConstants.ENABLE_REVOCATION)); + reqData.setEnableRevocation(enableRevocation); + if (doTimeLog) { t1 = System.currentTimeMillis(); } Modified: cxf/branches/2.4.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java?rev=1291637&r1=1291636&r2=1291637&view=diff ============================================================================== --- cxf/branches/2.4.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java (original) +++ cxf/branches/2.4.x-fixes/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java Tue Feb 21 07:51:45 2012 @@ -84,6 +84,7 @@ public class SecurityPolicyTest extends public static final String POLICY_CXF3041_ADDRESS = "http://localhost:" + PORT + "/SecPolTestCXF3041"; public static final String POLICY_CXF3042_ADDRESS = "http://localhost:" + PORT + "/SecPolTestCXF3042"; public static final String POLICY_CXF3452_ADDRESS = "http://localhost:" + PORT + "/SecPolTestCXF3452"; + public static final String POLICY_CXF4122_ADDRESS = "http://localhost:" + PORT + "/SecPolTestCXF4122"; private static final String NAMESPACE = "http://www.example.org/contract/DoubleIt"; private static final QName SERVICE_QNAME = new QName(NAMESPACE, "DoubleItService"); @@ -529,4 +530,52 @@ public class SecurityPolicyTest extends || errorMessage.contains("Error during certificate path validation")); } } + + @Test + public void testCXF4122() throws Exception { + URL wsdl = SecurityPolicyTest.class.getResource("DoubleIt.wsdl"); + EndpointImpl ep = (EndpointImpl)Endpoint.create(new DoubleItImpl()); + ep.setEndpointName( + new QName("http://www.example.org/contract/DoubleIt", "DoubleItPortCXF4122") + ); + ep.setWsdlLocation(wsdl.getPath()); + ep.setAddress(POLICY_CXF4122_ADDRESS); + ep.publish(); + EndpointInfo ei = ep.getServer().getEndpoint().getEndpointInfo(); + setCryptoProperties(ei, "bob.properties", "revocation.properties"); + ei.setProperty(SecurityConstants.ENABLE_REVOCATION, Boolean.TRUE); + + + + SpringBusFactory bf = new SpringBusFactory(); + + Bus bus = bf.createBus(); + SpringBusFactory.setDefaultBus(bus); + SpringBusFactory.setThreadDefaultBus(bus); + Service service = Service.create(wsdl, SERVICE_QNAME); + + DoubleItPortType pt; + + QName + portQName = new QName(NAMESPACE, "DoubleItPortCXF4122"); + pt = service.getPort(portQName, DoubleItPortType.class); + updateAddressPort(pt, PORT); + ((BindingProvider)pt).getRequestContext().put(SecurityConstants.CALLBACK_HANDLER, + new KeystorePasswordCallback()); + ((BindingProvider)pt).getRequestContext().put(SecurityConstants.SIGNATURE_PROPERTIES, + getClass().getResource("revocation.properties")); + ((BindingProvider)pt).getRequestContext().put(SecurityConstants.ENCRYPT_PROPERTIES, + getClass().getResource("bob.properties")); + try { + pt.doubleIt(5); + fail("should fail on server side when do signature validation due the revoked certificates"); + } catch (Exception ex) { + String errorMessage = ex.getMessage(); + // Different errors using different JDKs... + assertTrue(errorMessage.contains("Certificate has been revoked") + || errorMessage.contains("Certificate revocation") + || errorMessage.contains("Error during certificate path validation")); + } + + } } Modified: cxf/branches/2.4.x-fixes/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/security/DoubleIt.wsdl URL: http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/security/DoubleIt.wsdl?rev=1291637&r1=1291636&r2=1291637&view=diff ============================================================================== --- cxf/branches/2.4.x-fixes/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/security/DoubleIt.wsdl (original) +++ cxf/branches/2.4.x-fixes/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/security/DoubleIt.wsdl Tue Feb 21 07:51:45 2012 @@ -222,6 +222,23 @@ </wsdl:fault> </wsdl:operation> </wsdl:binding> + <wsdl:binding name="DoubleItBindingCXF4122" type="tns:DoubleItPortType"> + <wsp:PolicyReference URI="#CXF4122" /> + <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:body use="literal" name="DoubleItFault" /> + </wsdl:fault> + </wsdl:operation> + </wsdl:binding> @@ -262,6 +279,9 @@ <wsdl:port name="DoubleItPortCXF4119" binding="tns:DoubleItBindingCXF4119"> <soap:address location="http://localhost:9010/SecPolTestCXF4119" /> </wsdl:port> + <wsdl:port name="DoubleItPortCXF4122" binding="tns:DoubleItBindingCXF4122"> + <soap:address location="http://localhost:9010/SecPolTestCXF4122" /> + </wsdl:port> </wsdl:service> <wsp:Policy wsu:Id="DoubleItBindingPolicy"> @@ -864,4 +884,62 @@ </wsp:All> </wsp:ExactlyOne> </wsp:Policy> + <wsp:Policy wsu:Id="CXF4122"> + <wsp:ExactlyOne> + <wsp:All> + <sp:AsymmetricBinding + xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> + <wsp:Policy> + <sp:InitiatorToken> + <wsp:Policy> + <sp:X509Token + sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient"> + <wsp:Policy> + <sp:WssX509V1Token11 /> + </wsp:Policy> + </sp:X509Token> + </wsp:Policy> + </sp:InitiatorToken> + <sp:RecipientToken> + <wsp:Policy> + <sp:X509Token + sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never"> + <wsp:Policy> + <sp:WssX509V1Token11 /> + </wsp:Policy> + </sp:X509Token> + </wsp:Policy> + </sp:RecipientToken> + <sp:AlgorithmSuite> + <wsp:Policy> + <sp:TripleDesRsa15 /> + </wsp:Policy> + </sp:AlgorithmSuite> + <sp:Layout> + <wsp:Policy> + <sp:Lax /> + </wsp:Policy> + </sp:Layout> + <sp:IncludeTimestamp /> + <sp:EncryptSignature /> + <sp:OnlySignEntireHeadersAndBody /> + <sp:EncryptBeforeSigning /> + </wsp:Policy> + </sp:AsymmetricBinding> + <sp:SignedParts + xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> + <sp:Body /> + </sp:SignedParts> + <sp:EncryptedParts + xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> + <sp:Body /> + </sp:EncryptedParts> + <sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> + <wsp:Policy> + <sp:MustSupportRefIssuerSerial /> + </wsp:Policy> + </sp:Wss10> + </wsp:All> + </wsp:ExactlyOne> + </wsp:Policy> </wsdl:definitions>
