Hi Colm, I tried to build the CXF trunk and ran into this error.
[ERROR] /Users/jiangning/work/cxf/git/cxf/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/StaxSymmetricBindingHandler.java:[454,42] cannot find symbol [ERROR] symbol : method getSha1Identifier() [ERROR] location: interface org.apache.xml.security.stax.securityToken.SecurityToken [ERROR] /Users/jiangning/work/cxf/git/cxf/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/StaxSymmetricBindingHandler.java:[484,33] cannot find symbol [ERROR] symbol : method getSha1Identifier() [ERROR] location: interface org.apache.xml.security.stax.securityToken.SecurityToken [ERROR] /Users/jiangning/work/cxf/git/cxf/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/StaxSymmetricBindingHandler.java:[549,34] cannot find symbol [ERROR] symbol : method setSha1Identifier(java.lang.String) [ERROR] location: class org.apache.xml.security.stax.impl.securityToken.GenericOutboundSecurityToken [ERROR] -> [Help 1] I even try to build the wss4j trunk, but I got more error in the ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project wss4j-ws-security-stax: Compilation failure: Compilation failure: [ERROR] /Users/jiangning/work/wss4j/wss4j/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/processor/output/EncryptOutputProcessor.java:[98,50] cannot find symbol [ERROR] symbol : method getSha1Identifier() [ERROR] location: interface org.apache.xml.security.stax.securityToken.OutboundSecurityToken [ERROR] /Users/jiangning/work/wss4j/wss4j/ws-security-stax/src/main/java/org/apache/wss4j/stax/impl/securityToken/SecurityTokenFactoryImpl.java:[140,65] cannot find symbol [ERROR] symbol : variable KeyIdentifier_IssuerSerial [ERROR] location: class org.apache.wss4j.stax.securityToken.WSSecurityTokenConstants [ERROR] /Users/jiangning/work/wss4j/wss4j/ws-security-stax/src/main/java/org/apache/wss4j/stax/validate/SecurityContextTokenValidatorImpl.java:[42,61] cannot find symbol [ERROR] symbol : constructor AbstractInboundSecurityToken(org.apache.wss4j.stax.ext.WSInboundSecurityContext,java.lang.String,org.apache.xml.security.stax.securityToken.SecurityTokenConstants.KeyIdentifier,boolean) [ERROR] location: class org.apache.xml.security.stax.impl.securityToken.AbstractInboundSecurityToken [ERROR] /Users/jiangning/work/wss4j/wss4j/ws-security-stax/src/main/java/org/apache/wss4j/stax/validate/SecurityContextTokenValidatorImpl.java:[44,82] cannot find symbol [ERROR] symbol : constructor AbstractInboundSecurityToken() [ERROR] location: class org.apache.xml.security.stax.impl.securityToken.AbstractInboundSecurityToken [ERROR] /Users/jiangning/work/wss4j/wss4j/ws-security-stax/src/main/java/org/apache/wss4j/stax/ConfigurationConverter.java:[530,43] cannot find symbol [ERROR] symbol : variable KeyIdentifier_IssuerSerial [ERROR] location: class org.apache.wss4j.stax.securityToken.WSSecurityTokenConstants …… So I guess you didn't commit you local change of wss4j before you updated the CXF code. -- Willem Jiang Red Hat, Inc. FuseSource is now part of Red Hat Web: http://www.fusesource.com | http://www.redhat.com Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) (English) http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese) Twitter: willemjiang Weibo: 姜宁willem On Wednesday, June 26, 2013 at 11:53 PM, [email protected] wrote: > Author: coheigea > Date: Wed Jun 26 15:53:24 2013 > New Revision: 1496976 > > URL: http://svn.apache.org/r1496976 > Log: > Added support for the streaming SymmetricBinding for X.509 + SAML tokens > > Modified: > cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/StaxSymmetricBindingHandler.java > cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/saml/StaxSamlTokenTest.java > cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/x509/StaxX509TokenTest.java > cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/saml/server/stax-server.xml > > Modified: > cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/StaxSymmetricBindingHandler.java > URL: > http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/StaxSymmetricBindingHandler.java?rev=1496976&r1=1496975&r2=1496976&view=diff > ============================================================================== > --- > cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/StaxSymmetricBindingHandler.java > (original) > +++ > cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/StaxSymmetricBindingHandler.java > Wed Jun 26 15:53:24 2013 > @@ -451,7 +451,8 @@ public class StaxSymmetricBindingHandler > > String encryptedKeyID = securityToken.getId(); > SecurityToken tempTok = new SecurityToken(encryptedKeyID, created, expires); > - // TODO revisit > + tempTok.setSHA1(securityToken.getSha1Identifier()); > + > for (String key : securityToken.getSecretKey().keySet()) { > if (securityToken.getSecretKey().get(key) != null) { > tempTok.setKey(securityToken.getSecretKey().get(key)); > @@ -459,7 +460,6 @@ public class StaxSymmetricBindingHandler > break; > } > } > - > //tempTok.setSHA1(getSHA1((byte[])wser.get(WSSecurityEngineResult.TAG_ENCRYPTED_EPHEMERAL_KEY))); > getTokenStore().add(tempTok); > > return encryptedKeyID; > @@ -468,7 +468,6 @@ public class StaxSymmetricBindingHandler > > } > > - // TODO revisit > private org.apache.xml.security.stax.securityToken.SecurityToken > findEncryptedKeyToken() throws XMLSecurityException { > @SuppressWarnings("unchecked") > @@ -481,12 +480,9 @@ public class StaxSymmetricBindingHandler > == incomingEvent.getSecurityEventType()) { > org.apache.xml.security.stax.securityToken.SecurityToken token = > ((AbstractSecuredElementSecurityEvent)incomingEvent).getSecurityToken(); > - if (token != null && token.getSecretKey() != null) { > - for (String key : token.getSecretKey().keySet()) { > - if (token.getSecretKey().get(key) != null) { > - return token; > - } > - } > + if (token != null && token.getSecretKey() != null > + && token.getSha1Identifier() != null) { > + return token; > } > } > } > @@ -550,6 +546,7 @@ public class StaxSymmetricBindingHandler > return encryptedKeySecurityToken.getId(); > } > }; > + encryptedKeySecurityToken.setSha1Identifier(tok.getSHA1()); > outboundTokens.put(WSSConstants.PROP_USE_THIS_TOKEN_ID_FOR_ENCRYPTION, > encryptedKeySecurityTokenProvider); > outboundTokens.put(WSSConstants.PROP_USE_THIS_TOKEN_ID_FOR_SIGNATURE, > > Modified: > cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/saml/StaxSamlTokenTest.java > URL: > http://svn.apache.org/viewvc/cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/saml/StaxSamlTokenTest.java?rev=1496976&r1=1496975&r2=1496976&view=diff > ============================================================================== > --- > cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/saml/StaxSamlTokenTest.java > (original) > +++ > cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/saml/StaxSamlTokenTest.java > Wed Jun 26 15:53:24 2013 > @@ -257,10 +257,8 @@ public class StaxSamlTokenTest extends A > ((java.io.Closeable)saml1Port).close(); > bus.shutdown(true); > } > - > - // TODO > + > @org.junit.Test > - @org.junit.Ignore > public void testSaml2OverSymmetric() throws Exception { > > SpringBusFactory bf = new SpringBusFactory(); > @@ -291,7 +289,7 @@ public class StaxSamlTokenTest extends A > saml2Port.doubleIt(25); > fail("Expected failure on an invocation with a SAML1 Assertion"); > } catch (javax.xml.ws.soap.SOAPFaultException ex) { > - assertTrue(ex.getMessage().contains("Wrong SAML Version")); > + // assertTrue(ex.getMessage().contains("Wrong SAML Version")); > } > > ((BindingProvider)saml2Port).getRequestContext().put( > @@ -299,20 +297,52 @@ public class StaxSamlTokenTest extends A > ); > int result = saml2Port.doubleIt(25); > assertTrue(result == 50); > + > + ((java.io.Closeable)saml2Port).close(); > + bus.shutdown(true); > + } > + > + @org.junit.Test > + public void testSaml2OverSymmetricStreaming() throws Exception { > + > + SpringBusFactory bf = new SpringBusFactory(); > + URL busFile = StaxSamlTokenTest.class.getResource("client/client.xml"); > + > + Bus bus = bf.createBus(busFile.toString()); > + SpringBusFactory.setDefaultBus(bus); > + SpringBusFactory.setThreadDefaultBus(bus); > + > + URL wsdl = StaxSamlTokenTest.class.getResource("DoubleItSaml.wsdl"); > + Service service = Service.create(wsdl, SERVICE_QNAME); > + QName portQName = new QName(NAMESPACE, "DoubleItSaml2SymmetricPort"); > + DoubleItPortType saml2Port = > + service.getPort(portQName, DoubleItPortType.class); > + updateAddressPort(saml2Port, PORT); > + SecurityTestUtil.enableStreaming(saml2Port); > + > + try { > + saml2Port.doubleIt(25); > + fail("Expected failure on an invocation with no SAML Assertion"); > + } catch (javax.xml.ws.soap.SOAPFaultException ex) { > + assertTrue(ex.getMessage().contains("No SAML CallbackHandler available")); > + } > > + ((BindingProvider)saml2Port).getRequestContext().put( > + "ws-security.saml-callback-handler", new SamlCallbackHandler(false) > + ); > try { > - SamlCallbackHandler callbackHandler = > - new SamlCallbackHandler(); > - callbackHandler.setConfirmationMethod(SAML2Constants.CONF_BEARER); > - ((BindingProvider)saml2Port).getRequestContext().put( > - "ws-security.saml-callback-handler", callbackHandler > - ); > saml2Port.doubleIt(25); > - fail("Expected failure on an invocation with a invalid SAML2 Assertion"); > + fail("Expected failure on an invocation with a SAML1 Assertion"); > } catch (javax.xml.ws.soap.SOAPFaultException ex) { > - // expected > + // assertTrue(ex.getMessage().contains("Wrong SAML Version")); > } > > + ((BindingProvider)saml2Port).getRequestContext().put( > + "ws-security.saml-callback-handler", new SamlCallbackHandler() > + ); > + int result = saml2Port.doubleIt(25); > + assertTrue(result == 50); > + > ((java.io.Closeable)saml2Port).close(); > bus.shutdown(true); > } > @@ -320,9 +350,7 @@ public class StaxSamlTokenTest extends A > // Some negative tests. Send a sender-vouches assertion as a > SupportingToken...this will > // fail as the provider will demand that there is a signature covering both > the assertion > // and the message body. > - // TODO > @org.junit.Test > - @org.junit.Ignore > public void testSaml2OverSymmetricSupporting() throws Exception { > > SpringBusFactory bf = new SpringBusFactory(); > @@ -347,7 +375,7 @@ public class StaxSamlTokenTest extends A > saml2Port.doubleIt(25); > fail("Expected failure on an invocation with an unsigned SAML SV Assertion"); > } catch (javax.xml.ws.soap.SOAPFaultException ex) { > - assertTrue(ex.getMessage().contains("SamlToken not satisfied")); > + // assertTrue(ex.getMessage().contains("SamlToken not satisfied")); > } > > ((java.io.Closeable)saml2Port).close(); > @@ -617,35 +645,6 @@ public class StaxSamlTokenTest extends A > bus.shutdown(true); > } > > - // TODO > - @org.junit.Test > - @org.junit.Ignore > - public void testSaml2OverSymmetricSignedElements() throws Exception { > - > - SpringBusFactory bf = new SpringBusFactory(); > - URL busFile = StaxSamlTokenTest.class.getResource("client/client.xml"); > - > - Bus bus = bf.createBus(busFile.toString()); > - SpringBusFactory.setDefaultBus(bus); > - SpringBusFactory.setThreadDefaultBus(bus); > - > - URL wsdl = StaxSamlTokenTest.class.getResource("DoubleItSaml.wsdl"); > - Service service = Service.create(wsdl, SERVICE_QNAME); > - QName portQName = new QName(NAMESPACE, > "DoubleItSaml2SymmetricSignedElementsPort"); > - DoubleItPortType saml2Port = > - service.getPort(portQName, DoubleItPortType.class); > - updateAddressPort(saml2Port, PORT); > - > - ((BindingProvider)saml2Port).getRequestContext().put( > - "ws-security.saml-callback-handler", new SamlCallbackHandler() > - ); > - int result = saml2Port.doubleIt(25); > - assertTrue(result == 50); > - > - ((java.io.Closeable)saml2Port).close(); > - bus.shutdown(true); > - } > - > // See WSS-446 > @org.junit.Test > @org.junit.Ignore > > Modified: > cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/x509/StaxX509TokenTest.java > URL: > http://svn.apache.org/viewvc/cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/x509/StaxX509TokenTest.java?rev=1496976&r1=1496975&r2=1496976&view=diff > ============================================================================== > --- > cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/x509/StaxX509TokenTest.java > (original) > +++ > cxf/trunk/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/x509/StaxX509TokenTest.java > Wed Jun 26 15:53:24 2013 > @@ -68,8 +68,7 @@ public class StaxX509TokenTest extends A > SecurityTestUtil.cleanup(); > stopAllServers(); > } > - /* > - * TODO > + > @org.junit.Test > public void testKeyIdentifier() throws Exception { > > @@ -90,9 +89,9 @@ public class StaxX509TokenTest extends A > // DOM > x509Port.doubleIt(25); > > - // TODO Streaming > - // SecurityTestUtil.enableStreaming(x509Port); > - // x509Port.doubleIt(25); > + // Streaming > + SecurityTestUtil.enableStreaming(x509Port); > + x509Port.doubleIt(25); > > ((java.io.Closeable)x509Port).close(); > bus.shutdown(true); > @@ -122,9 +121,9 @@ public class StaxX509TokenTest extends A > // DOM > x509Port.doubleIt(25); > > - // TODO Streaming > - // SecurityTestUtil.enableStreaming(x509Port); > - // x509Port.doubleIt(25); > + // Streaming > + SecurityTestUtil.enableStreaming(x509Port); > + x509Port.doubleIt(25); > > ((java.io.Closeable)x509Port).close(); > bus.shutdown(true); > @@ -150,9 +149,9 @@ public class StaxX509TokenTest extends A > // DOM > x509Port.doubleIt(25); > > - // TODO Streaming > - // SecurityTestUtil.enableStreaming(x509Port); > - // x509Port.doubleIt(25); > + // Streaming > + SecurityTestUtil.enableStreaming(x509Port); > + x509Port.doubleIt(25); > > ((java.io.Closeable)x509Port).close(); > bus.shutdown(true); > @@ -178,38 +177,14 @@ public class StaxX509TokenTest extends A > // DOM > x509Port.doubleIt(25); > > - // TODO Streaming > - // SecurityTestUtil.enableStreaming(x509Port); > - // x509Port.doubleIt(25); > - > - ((java.io.Closeable)x509Port).close(); > - bus.shutdown(true); > - } > - > - @org.junit.Test > - public void testContentEncryptedElements() throws Exception { > - > - SpringBusFactory bf = new SpringBusFactory(); > - URL busFile = StaxX509TokenTest.class.getResource("client/client.xml"); > - > - Bus bus = bf.createBus(busFile.toString()); > - SpringBusFactory.setDefaultBus(bus); > - SpringBusFactory.setThreadDefaultBus(bus); > - > - URL wsdl = StaxX509TokenTest.class.getResource("DoubleItX509.wsdl"); > - Service service = Service.create(wsdl, SERVICE_QNAME); > - QName portQName = new QName(NAMESPACE, > "DoubleItContentEncryptedElementsPort"); > - DoubleItPortType x509Port = > - service.getPort(portQName, DoubleItPortType.class); > - updateAddressPort(x509Port, PORT); > - > - // DOM > + // Streaming > + SecurityTestUtil.enableStreaming(x509Port); > x509Port.doubleIt(25); > > ((java.io.Closeable)x509Port).close(); > bus.shutdown(true); > } > - */ > + > @org.junit.Test > public void testAsymmetricIssuerSerial() throws Exception { > > @@ -378,7 +353,7 @@ public class StaxX509TokenTest extends A > bus.shutdown(true); > } > > - // TODO > + // TODO - See WSS-457 > @org.junit.Test > @org.junit.Ignore > public void testSymmetricProtectTokens() throws Exception { > @@ -396,6 +371,8 @@ public class StaxX509TokenTest extends A > DoubleItPortType x509Port = > service.getPort(portQName, DoubleItPortType.class); > updateAddressPort(x509Port, PORT); > + > + // DOM > x509Port.doubleIt(25); > > ((java.io.Closeable)x509Port).close(); > @@ -758,9 +735,7 @@ public class StaxX509TokenTest extends A > bus.shutdown(true); > } > > - // TODO > @org.junit.Test > - @org.junit.Ignore > public void testKeyIdentifier2() throws Exception { > > SpringBusFactory bf = new SpringBusFactory(); > > Modified: > cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/saml/server/stax-server.xml > URL: > http://svn.apache.org/viewvc/cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/saml/server/stax-server.xml?rev=1496976&r1=1496975&r2=1496976&view=diff > ============================================================================== > --- > cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/saml/server/stax-server.xml > (original) > +++ > cxf/trunk/systests/ws-security/src/test/resources/org/apache/cxf/systest/ws/saml/server/stax-server.xml > Wed Jun 26 15:53:24 2013 > @@ -121,8 +121,8 @@ > value="org.apache.cxf.systest.ws.wssec10.client.KeystorePasswordCallback"/> > <entry key="ws-security.signature.properties" > value="org/apache/cxf/systest/ws/wssec10/client/bob.properties"/> > - <entry key="ws-security.saml2.validator" > - value="org.apache.cxf.systest.ws.saml.server.CustomSaml2Validator"/> > + <!--<entry key="ws-security.saml2.validator" > + value="org.apache.cxf.systest.ws.saml.server.CustomSaml2Validator"/>--> > <entry key="ws-security.enable.streaming" value="true"/> > </jaxws:properties>
