You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by co...@apache.org on 2015/07/06 18:37:15 UTC
svn commit: r1689450 -
/webservices/wss4j/branches/2_0_x-fixes/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/XOPAttachmentTest.java
Author: coheigea
Date: Mon Jul 6 16:37:15 2015
New Revision: 1689450
URL: http://svn.apache.org/r1689450
Log:
[WSS-544] - Adding some tests
Modified:
webservices/wss4j/branches/2_0_x-fixes/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/XOPAttachmentTest.java
Modified: webservices/wss4j/branches/2_0_x-fixes/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/XOPAttachmentTest.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/2_0_x-fixes/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/XOPAttachmentTest.java?rev=1689450&r1=1689449&r2=1689450&view=diff
==============================================================================
--- webservices/wss4j/branches/2_0_x-fixes/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/XOPAttachmentTest.java (original)
+++ webservices/wss4j/branches/2_0_x-fixes/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/XOPAttachmentTest.java Mon Jul 6 16:37:15 2015
@@ -435,6 +435,126 @@ public class XOPAttachmentTest extends o
assertTrue(processedDoc.contains(SOAP_BODY));
}
+ @org.junit.Test
+ public void testSignedEncryptedSOAPBody() throws Exception {
+ Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
+ WSSecHeader secHeader = new WSSecHeader(doc);
+ secHeader.insertSecurityHeader();
+
+ AttachmentCallbackHandler outboundAttachmentCallback = new AttachmentCallbackHandler();
+
+ WSSecSignature builder = new WSSecSignature();
+ builder.setUserInfo("16c73ab6-b892-458f-abf5-2f875f74882e", "security");
+ builder.setKeyIdentifierType(WSConstants.BST_DIRECT_REFERENCE);
+
+ builder.setAttachmentCallbackHandler(outboundAttachmentCallback);
+ builder.setStoreBytesInAttachment(true);
+ builder.getParts().add(new WSEncryptionPart("Body", "http://schemas.xmlsoap.org/soap/envelope/", "Content"));
+ builder.build(doc, crypto, secHeader);
+
+ WSSecEncrypt encrypt = new WSSecEncrypt();
+ encrypt.setUserInfo("16c73ab6-b892-458f-abf5-2f875f74882e", "security");
+ encrypt.setKeyIdentifierType(WSConstants.ISSUER_SERIAL);
+
+ encrypt.setAttachmentCallbackHandler(outboundAttachmentCallback);
+ encrypt.setStoreBytesInAttachment(true);
+ encrypt.getParts().add(new WSEncryptionPart("Body", "http://schemas.xmlsoap.org/soap/envelope/", "Content"));
+
+ Document encryptedDoc = encrypt.build(doc, crypto, secHeader);
+
+ List<Attachment> encryptedAttachments = outboundAttachmentCallback.getResponseAttachments();
+ assertNotNull(encryptedAttachments);
+ assertTrue(encryptedAttachments.size() == 3);
+
+ if (LOG.isDebugEnabled()) {
+ String outputString = XMLUtils.PrettyDocumentToString(encryptedDoc);
+ LOG.debug(outputString);
+ // System.out.println(outputString);
+ }
+
+ AttachmentCallbackHandler inboundAttachmentCallback =
+ new AttachmentCallbackHandler(encryptedAttachments);
+ //WSHandlerResult results = verify(encryptedDoc, inboundAttachmentCallback);
+ verify(encryptedDoc, inboundAttachmentCallback);
+
+ String processedDoc = XMLUtils.PrettyDocumentToString(encryptedDoc);
+ assertTrue(processedDoc.contains(SOAP_BODY));
+ /*
+ // Check Signature Element
+ WSSecurityEngineResult actionResult =
+ results.getActionResults().get(WSConstants.SIGN).get(0);
+ @SuppressWarnings("unchecked")
+ final List<WSDataRef> refs =
+ (List<WSDataRef>) actionResult.get(WSSecurityEngineResult.TAG_DATA_REF_URIS);
+ assertNotNull(refs);
+ assertTrue(refs.size() == 1);
+ WSDataRef wsDataRef = refs.get(0);
+ Element protectedElement = wsDataRef.getProtectedElement();
+ String outputString = DOM2Writer.nodeToString(protectedElement);
+ System.out.println("ONE1: " + outputString);
+ */
+ }
+
+ @org.junit.Test
+ public void testEncryptedSignedSOAPBody() throws Exception {
+ Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
+ WSSecHeader secHeader = new WSSecHeader(doc);
+ secHeader.insertSecurityHeader();
+
+ AttachmentCallbackHandler outboundAttachmentCallback = new AttachmentCallbackHandler();
+
+ WSSecEncrypt encrypt = new WSSecEncrypt();
+ encrypt.setUserInfo("16c73ab6-b892-458f-abf5-2f875f74882e", "security");
+ encrypt.setKeyIdentifierType(WSConstants.ISSUER_SERIAL);
+
+ encrypt.setAttachmentCallbackHandler(outboundAttachmentCallback);
+ encrypt.setStoreBytesInAttachment(true);
+ encrypt.getParts().add(new WSEncryptionPart("Body", "http://schemas.xmlsoap.org/soap/envelope/", "Content"));
+
+ encrypt.build(doc, crypto, secHeader);
+
+ WSSecSignature builder = new WSSecSignature();
+ builder.setUserInfo("16c73ab6-b892-458f-abf5-2f875f74882e", "security");
+ builder.setKeyIdentifierType(WSConstants.BST_DIRECT_REFERENCE);
+
+ builder.setAttachmentCallbackHandler(outboundAttachmentCallback);
+ builder.setStoreBytesInAttachment(true);
+ builder.getParts().add(new WSEncryptionPart("Body", "http://schemas.xmlsoap.org/soap/envelope/", "Content"));
+ Document signedDoc = builder.build(doc, crypto, secHeader);
+
+ List<Attachment> signedAttachments = outboundAttachmentCallback.getResponseAttachments();
+ assertNotNull(signedAttachments);
+ assertTrue(signedAttachments.size() == 3);
+
+ if (LOG.isDebugEnabled()) {
+ String outputString = XMLUtils.PrettyDocumentToString(signedDoc);
+ LOG.debug(outputString);
+ // System.out.println(outputString);
+ }
+
+ AttachmentCallbackHandler inboundAttachmentCallback =
+ new AttachmentCallbackHandler(signedAttachments);
+ // WSHandlerResult results = verify(signedDoc, inboundAttachmentCallback);
+ verify(signedDoc, inboundAttachmentCallback);
+
+ String processedDoc = XMLUtils.PrettyDocumentToString(signedDoc);
+ assertTrue(processedDoc.contains(SOAP_BODY));
+ /*
+ // Check Signature Element
+ WSSecurityEngineResult actionResult =
+ results.getActionResults().get(WSConstants.SIGN).get(0);
+ @SuppressWarnings("unchecked")
+ final List<WSDataRef> refs =
+ (List<WSDataRef>) actionResult.get(WSSecurityEngineResult.TAG_DATA_REF_URIS);
+ assertNotNull(refs);
+ assertTrue(refs.size() == 1);
+ WSDataRef wsDataRef = refs.get(0);
+ Element protectedElement = wsDataRef.getProtectedElement();
+ String outputString = DOM2Writer.nodeToString(protectedElement);
+ System.out.println("TWO1: " + outputString);
+ */
+ }
+
/**
* Verifies the soap envelope.
* This method verifies all the signature generated.