You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by co...@apache.org on 2016/10/19 10:04:23 UTC
svn commit: r1765568 - in
/santuario/xml-security-java/trunk/src/main/java/org/apache:
jcp/xml/dsig/internal/dom/ xml/security/stax/impl/processor/input/
xml/security/stax/impl/securityToken/ xml/security/stax/impl/transformer/
xml/security/stax/impl/t...
Author: coheigea
Date: Wed Oct 19 10:04:22 2016
New Revision: 1765568
URL: http://svn.apache.org/viewvc?rev=1765568&view=rev
Log:
More try-with-resources work
Modified:
santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMReference.java
santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignedInfo.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureInputHandler.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureReferenceVerifyInputProcessor.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/securityToken/SecurityTokenFactoryImpl.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/transformer/TransformBase64Decode.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/transformer/TransformIdentity.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/transformer/canonicalizer/CanonicalizerBase.java
santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/util/FullyBufferedOutputStream.java
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMReference.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMReference.java?rev=1765568&r1=1765567&r2=1765568&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMReference.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMReference.java Wed Oct 19 10:04:22 2016
@@ -450,10 +450,8 @@ public final class DOMReference extends
} else {
dos = new DigesterOutputStream(md);
}
- OutputStream os = null;
Data data = dereferencedData;
- try {
- os = new UnsyncBufferedOutputStream(dos);
+ try (OutputStream os = new UnsyncBufferedOutputStream(dos)) {
for (int i = 0, size = transforms.size(); i < size; i++) {
DOMTransform transform = (DOMTransform)transforms.get(i);
if (i < size - 1) {
@@ -555,13 +553,6 @@ public final class DOMReference extends
} catch (org.apache.xml.security.c14n.CanonicalizationException e) {
throw new XMLSignatureException(e);
} finally {
- if (os != null) {
- try {
- os.close();
- } catch (IOException e) {
- throw new XMLSignatureException(e);
- }
- }
if (dos != null) {
try {
dos.close();
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignedInfo.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignedInfo.java?rev=1765568&r1=1765567&r2=1765568&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignedInfo.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/jcp/xml/dsig/internal/dom/DOMSignedInfo.java Wed Oct 19 10:04:22 2016
@@ -216,42 +216,31 @@ public final class DOMSignedInfo extends
throw new NullPointerException("context cannot be null");
}
- OutputStream os = new UnsyncBufferedOutputStream(bos);
-
DOMSubTreeData subTree = new DOMSubTreeData(localSiElem, true);
- try {
+ try (OutputStream os = new UnsyncBufferedOutputStream(bos)) {
((DOMCanonicalizationMethod)
canonicalizationMethod).canonicalize(subTree, context, os);
- } catch (TransformException te) {
- throw new XMLSignatureException(te);
- }
-
- try {
+
os.flush();
- } catch (IOException e) {
- if (log.isDebugEnabled()) {
- log.debug(e.getMessage(), e);
- }
- // Impossible
- }
+
+ byte[] signedInfoBytes = bos.toByteArray();
- byte[] signedInfoBytes = bos.toByteArray();
-
- // this whole block should only be done if logging is enabled
- if (log.isDebugEnabled()) {
- log.debug("Canonicalized SignedInfo:");
- StringBuilder sb = new StringBuilder(signedInfoBytes.length);
- for (int i = 0; i < signedInfoBytes.length; i++) {
- sb.append((char)signedInfoBytes[i]);
+ // this whole block should only be done if logging is enabled
+ if (log.isDebugEnabled()) {
+ log.debug("Canonicalized SignedInfo:");
+ StringBuilder sb = new StringBuilder(signedInfoBytes.length);
+ for (int i = 0; i < signedInfoBytes.length; i++) {
+ sb.append((char)signedInfoBytes[i]);
+ }
+ log.debug(sb.toString());
+ log.debug("Data to be signed/verified:" + Base64.getMimeEncoder().encodeToString(signedInfoBytes));
}
- log.debug(sb.toString());
- log.debug("Data to be signed/verified:" + Base64.getMimeEncoder().encodeToString(signedInfoBytes));
- }
- this.canonData = new ByteArrayInputStream(signedInfoBytes);
+ this.canonData = new ByteArrayInputStream(signedInfoBytes);
- try {
os.close();
+ } catch (TransformException te) {
+ throw new XMLSignatureException(te);
} catch (IOException e) {
if (log.isDebugEnabled()) {
log.debug(e.getMessage(), e);
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureInputHandler.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureInputHandler.java?rev=1765568&r1=1765567&r2=1765568&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureInputHandler.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureInputHandler.java Wed Oct 19 10:04:22 2016
@@ -41,6 +41,7 @@ import javax.xml.stream.XMLStreamConstan
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import java.io.IOException;
+import java.io.InputStream;
import java.io.OutputStream;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
@@ -149,23 +150,22 @@ public abstract class AbstractSignatureI
Deque<XMLSecEvent> signedInfoDeque = new ArrayDeque<XMLSecEvent>();
- UnsyncByteArrayOutputStream unsynchronizedByteArrayOutputStream = new UnsyncByteArrayOutputStream();
- Transformer transformer = XMLSecurityUtils.getTransformer(
- null,
- unsynchronizedByteArrayOutputStream,
- null,
- signatureType.getSignedInfo().getCanonicalizationMethod().getAlgorithm(),
- XMLSecurityConstants.DIRECTION.IN);
-
- Iterator<XMLSecEvent> iterator = eventDeque.descendingIterator();
- //forward to <Signature> Element
- int i = 0;
- while (i < index) {
- iterator.next();
- i++;
- }
+ try (UnsyncByteArrayOutputStream unsynchronizedByteArrayOutputStream = new UnsyncByteArrayOutputStream()) {
+ Transformer transformer = XMLSecurityUtils.getTransformer(
+ null,
+ unsynchronizedByteArrayOutputStream,
+ null,
+ signatureType.getSignedInfo().getCanonicalizationMethod().getAlgorithm(),
+ XMLSecurityConstants.DIRECTION.IN);
+
+ Iterator<XMLSecEvent> iterator = eventDeque.descendingIterator();
+ //forward to <Signature> Element
+ int i = 0;
+ while (i < index) {
+ iterator.next();
+ i++;
+ }
- try {
loop:
while (iterator.hasNext()) {
XMLSecEvent xmlSecEvent = iterator.next();
@@ -194,24 +194,25 @@ public abstract class AbstractSignatureI
transformer.doFinal();
- XMLStreamReader xmlStreamReader = inputProcessorChain.getSecurityContext().
- <XMLInputFactory>get(XMLSecurityConstants.XMLINPUTFACTORY).
- createXMLStreamReader(new UnsyncByteArrayInputStream(unsynchronizedByteArrayOutputStream.toByteArray()));
-
- while (xmlStreamReader.hasNext()) {
- XMLSecEvent xmlSecEvent = XMLSecEventFactory.allocate(xmlStreamReader, null);
- signedInfoDeque.push(xmlSecEvent);
- xmlStreamReader.next();
- }
-
- @SuppressWarnings("unchecked")
- final SignedInfoType signedInfoType =
- ((JAXBElement<SignedInfoType>) parseStructure(signedInfoDeque, 0, securityProperties)).getValue();
- signatureType.setSignedInfo(signedInfoType);
-
- return signedInfoDeque;
-
- } catch (XMLStreamException e) {
+ try (InputStream is = new UnsyncByteArrayInputStream(unsynchronizedByteArrayOutputStream.toByteArray())) {
+ XMLStreamReader xmlStreamReader = inputProcessorChain.getSecurityContext().
+ <XMLInputFactory>get(XMLSecurityConstants.XMLINPUTFACTORY).
+ createXMLStreamReader(is);
+
+ while (xmlStreamReader.hasNext()) {
+ XMLSecEvent xmlSecEvent = XMLSecEventFactory.allocate(xmlStreamReader, null);
+ signedInfoDeque.push(xmlSecEvent);
+ xmlStreamReader.next();
+ }
+
+ @SuppressWarnings("unchecked")
+ final SignedInfoType signedInfoType =
+ ((JAXBElement<SignedInfoType>) parseStructure(signedInfoDeque, 0, securityProperties)).getValue();
+ signatureType.setSignedInfo(signedInfoType);
+
+ return signedInfoDeque;
+ }
+ } catch (XMLStreamException | IOException e) {
throw new XMLSecurityException(e);
}
}
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureReferenceVerifyInputProcessor.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureReferenceVerifyInputProcessor.java?rev=1765568&r1=1765567&r2=1765568&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureReferenceVerifyInputProcessor.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureReferenceVerifyInputProcessor.java Wed Oct 19 10:04:22 2016
@@ -260,12 +260,11 @@ public abstract class AbstractSignatureR
protected void verifyExternalReference(InputProcessorChain inputProcessorChain, InputStream inputStream,
ReferenceType referenceType) throws XMLSecurityException, XMLStreamException {
- BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
- try {
+ try (BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
DigestOutputStream digestOutputStream =
createMessageDigestOutputStream(referenceType, inputProcessorChain.getSecurityContext());
UnsyncBufferedOutputStream bufferedDigestOutputStream =
- new UnsyncBufferedOutputStream(digestOutputStream);
+ new UnsyncBufferedOutputStream(digestOutputStream)) {
if (referenceType.getTransforms() != null) {
Transformer transformer =
@@ -279,12 +278,6 @@ public abstract class AbstractSignatureR
compareDigest(digestOutputStream.getDigestValue(), referenceType);
} catch (IOException e) {
throw new XMLSecurityException(e);
- } finally {
- try {
- bufferedInputStream.close();
- } catch (IOException e) {
- log.warn("Could not close external resource input stream, ignored.");
- }
}
}
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/securityToken/SecurityTokenFactoryImpl.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/securityToken/SecurityTokenFactoryImpl.java?rev=1765568&r1=1765567&r2=1765568&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/securityToken/SecurityTokenFactoryImpl.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/securityToken/SecurityTokenFactoryImpl.java Wed Oct 19 10:04:22 2016
@@ -30,6 +30,7 @@ import org.apache.xml.security.stax.secu
import org.apache.xml.security.utils.RFC2253Parser;
import org.apache.xml.security.utils.UnsyncByteArrayInputStream;
+import java.io.IOException;
import java.io.InputStream;
import java.security.Key;
import java.security.PublicKey;
@@ -268,11 +269,10 @@ public class SecurityTokenFactoryImpl ex
*/
private static X509Certificate getCertificateFromBytes(byte[] data)
throws XMLSecurityException {
- InputStream in = new UnsyncByteArrayInputStream(data);
- try {
+ try (InputStream in = new UnsyncByteArrayInputStream(data)) {
CertificateFactory factory = CertificateFactory.getInstance("X.509");
return (X509Certificate) factory.generateCertificate(in);
- } catch (CertificateException e) {
+ } catch (CertificateException | IOException e) {
throw new XMLSecurityException(e);
}
}
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/transformer/TransformBase64Decode.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/transformer/TransformBase64Decode.java?rev=1765568&r1=1765567&r2=1765568&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/transformer/TransformBase64Decode.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/transformer/TransformBase64Decode.java Wed Oct 19 10:04:22 2016
@@ -112,19 +112,18 @@ public class TransformBase64Decode exten
} catch (IOException e) {
throw new XMLStreamException(e);
}
- XMLEventReaderInputProcessor xmlEventReaderInputProcessor
- = new XMLEventReaderInputProcessor(
- null,
- getXmlInputFactory().createXMLStreamReader(new UnsyncByteArrayInputStream(byteArrayOutputStream.toByteArray()))
- );
- try {
+ try (InputStream is = new UnsyncByteArrayInputStream(byteArrayOutputStream.toByteArray())) {
+ XMLEventReaderInputProcessor xmlEventReaderInputProcessor
+ = new XMLEventReaderInputProcessor(null,
+ getXmlInputFactory().createXMLStreamReader(is)
+ );
XMLSecEvent xmlSecEvent;
do {
xmlSecEvent = xmlEventReaderInputProcessor.processNextEvent(null);
getTransformer().transform(xmlSecEvent);
} while (xmlSecEvent.getEventType() != XMLStreamConstants.END_DOCUMENT);
- } catch (XMLSecurityException e) {
+ } catch (XMLSecurityException | IOException e) {
throw new XMLStreamException(e);
}
getTransformer().doFinal();
@@ -158,8 +157,12 @@ public class TransformBase64Decode exten
} catch (IOException e) {
throw new XMLStreamException(e);
}
- getTransformer().transform(new UnsyncByteArrayInputStream(byteArrayOutputStream.toByteArray()));
- getTransformer().doFinal();
+ try (InputStream is = new UnsyncByteArrayInputStream(byteArrayOutputStream.toByteArray())) {
+ getTransformer().transform(is);
+ getTransformer().doFinal();
+ } catch (IOException ex) {
+ throw new XMLStreamException(ex);
+ }
}
};
break;
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/transformer/TransformIdentity.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/transformer/TransformIdentity.java?rev=1765568&r1=1765567&r2=1765568&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/transformer/TransformIdentity.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/transformer/TransformIdentity.java Wed Oct 19 10:04:22 2016
@@ -160,8 +160,12 @@ public class TransformIdentity implement
@Override
public void doFinal() throws XMLStreamException {
xmlEventWriter.close();
- getTransformer().transform(new UnsyncByteArrayInputStream(baos.toByteArray()));
- getTransformer().doFinal();
+ try (InputStream is = new UnsyncByteArrayInputStream(baos.toByteArray())) {
+ getTransformer().transform(is);
+ getTransformer().doFinal();
+ } catch (IOException ex) {
+ throw new XMLStreamException(ex);
+ }
}
};
break;
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/transformer/canonicalizer/CanonicalizerBase.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/transformer/canonicalizer/CanonicalizerBase.java?rev=1765568&r1=1765567&r2=1765568&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/transformer/canonicalizer/CanonicalizerBase.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/transformer/canonicalizer/CanonicalizerBase.java Wed Oct 19 10:04:22 2016
@@ -391,8 +391,12 @@ public abstract class CanonicalizerBase
public void doFinal() throws XMLStreamException {
if (getTransformer() != null) {
UnsyncByteArrayOutputStream baos = (UnsyncByteArrayOutputStream)getOutputStream();
- getTransformer().transform(new UnsyncByteArrayInputStream(baos.toByteArray()));
- getTransformer().doFinal();
+ try (InputStream is = new UnsyncByteArrayInputStream(baos.toByteArray())) {
+ getTransformer().transform(is);
+ getTransformer().doFinal();
+ } catch (IOException ex) {
+ throw new XMLStreamException(ex);
+ }
}
}
Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/util/FullyBufferedOutputStream.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/util/FullyBufferedOutputStream.java?rev=1765568&r1=1765567&r2=1765568&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/util/FullyBufferedOutputStream.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/util/FullyBufferedOutputStream.java Wed Oct 19 10:04:22 2016
@@ -51,6 +51,7 @@ public class FullyBufferedOutputStream e
public void close() throws IOException {
buf.writeTo(out);
out.close();
+ buf.close();
}
@Override