1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.wss4j.stax.impl.transformer;
20
21 import java.io.ByteArrayInputStream;
22 import java.io.ByteArrayOutputStream;
23 import java.io.IOException;
24 import java.io.InputStream;
25 import java.io.OutputStream;
26
27 import javax.xml.stream.XMLStreamException;
28
29 import org.apache.wss4j.common.util.AttachmentUtils;
30 import org.apache.xml.security.stax.impl.util.MultiInputStream;
31
32 public class AttachmentCompleteSignatureTransform extends AttachmentContentSignatureTransform {
33
34 @Override
35 public void transform(InputStream inputStream) throws XMLStreamException {
36 InputStream is = inputStream;
37 try {
38 OutputStream outputStream = getOutputStream();
39 if (outputStream == null) {
40 outputStream = new ByteArrayOutputStream();
41 is = new MultiInputStream(
42 new ByteArrayInputStream(
43 ((ByteArrayOutputStream) outputStream).toByteArray()),
44 inputStream
45 );
46 }
47 AttachmentUtils.canonizeMimeHeaders(outputStream, getAttachment().getHeaders());
48 } catch (IOException e) {
49 throw new XMLStreamException(e);
50 }
51 super.transform(is);
52 }
53 }