From 5d02d220d8d3f534cbfe66ec4fe1f01bcef8d64b Mon Sep 17 00:00:00 2001 From: Philip Helger Date: Fri, 10 Dec 2021 20:19:51 +0100 Subject: [PATCH] Improved logging --- .../as2lib/message/AbstractBaseMessage.java | 9 +++++++++ .../as2lib/message/AbstractMessage.java | 8 -------- .../helger/as2lib/message/IBaseMessage.java | 4 ++++ .../com/helger/as2lib/message/IMessage.java | 5 ----- .../processor/sender/AS2SenderModule.java | 20 ++++++++++++++++--- .../com/helger/as2lib/util/AS2Helper.java | 6 +++++- .../main/MainSendToLocalhost8080.java | 4 ++-- 7 files changed, 37 insertions(+), 19 deletions(-) diff --git a/as2-lib/src/main/java/com/helger/as2lib/message/AbstractBaseMessage.java b/as2-lib/src/main/java/com/helger/as2lib/message/AbstractBaseMessage.java index f8c72275..426ef8bb 100644 --- a/as2-lib/src/main/java/com/helger/as2lib/message/AbstractBaseMessage.java +++ b/as2-lib/src/main/java/com/helger/as2lib/message/AbstractBaseMessage.java @@ -40,6 +40,7 @@ import com.helger.as2lib.partner.Partnership; import com.helger.commons.ValueEnforcer; +import com.helger.commons.annotation.Nonempty; import com.helger.commons.annotation.ReturnsMutableObject; import com.helger.commons.collection.attr.StringMap; import com.helger.commons.http.HttpHeaderMap; @@ -109,6 +110,14 @@ public final Partnership partnership () return m_aPartnership; } + @Nonnull + @Nonempty + public String getLoggingText () + { + final String sMsgID = getMessageID (); + return " [" + (sMsgID == null ? "no message ID set" : sMsgID) + "]"; + } + @Override public String toString () { diff --git a/as2-lib/src/main/java/com/helger/as2lib/message/AbstractMessage.java b/as2-lib/src/main/java/com/helger/as2lib/message/AbstractMessage.java index cf75f320..fea4ac26 100644 --- a/as2-lib/src/main/java/com/helger/as2lib/message/AbstractMessage.java +++ b/as2-lib/src/main/java/com/helger/as2lib/message/AbstractMessage.java @@ -174,14 +174,6 @@ public final void setTempSharedFileInputStream (@Nullable final TempSharedFileIn m_aTempSharedFileInputStream = aTempSharedFileInputStream; } - @Nonnull - @Nonempty - public String getLoggingText () - { - final String sMsgID = getMessageID (); - return " [" + (sMsgID == null ? "no message ID set" : sMsgID) + "]"; - } - @Nonnull @Nonempty public String getAsString () diff --git a/as2-lib/src/main/java/com/helger/as2lib/message/IBaseMessage.java b/as2-lib/src/main/java/com/helger/as2lib/message/IBaseMessage.java index e207f9b4..5741bc93 100644 --- a/as2-lib/src/main/java/com/helger/as2lib/message/IBaseMessage.java +++ b/as2-lib/src/main/java/com/helger/as2lib/message/IBaseMessage.java @@ -127,6 +127,10 @@ default void updateMessageID () void setPartnership (@Nonnull Partnership aPartnership); + @Nonnull + @Nonempty + String getLoggingText (); + @Nonnull @Nonempty String getAsString (); diff --git a/as2-lib/src/main/java/com/helger/as2lib/message/IMessage.java b/as2-lib/src/main/java/com/helger/as2lib/message/IMessage.java index 3737020d..7cc66149 100644 --- a/as2-lib/src/main/java/com/helger/as2lib/message/IMessage.java +++ b/as2-lib/src/main/java/com/helger/as2lib/message/IMessage.java @@ -37,7 +37,6 @@ import javax.mail.internet.MimeBodyPart; import com.helger.as2lib.util.http.TempSharedFileInputStream; -import com.helger.commons.annotation.Nonempty; import com.helger.commons.http.CHttpHeader; /** @@ -112,10 +111,6 @@ default void setSubject (@Nullable final String sSubject) void setMDN (@Nullable IMessageMDN aMDN); - @Nonnull - @Nonempty - String getLoggingText (); - String getProtocol (); boolean isRequestingMDN (); diff --git a/as2-lib/src/main/java/com/helger/as2lib/processor/sender/AS2SenderModule.java b/as2-lib/src/main/java/com/helger/as2lib/processor/sender/AS2SenderModule.java index 417e5d98..1ea10359 100644 --- a/as2-lib/src/main/java/com/helger/as2lib/processor/sender/AS2SenderModule.java +++ b/as2-lib/src/main/java/com/helger/as2lib/processor/sender/AS2SenderModule.java @@ -394,7 +394,7 @@ public static MimeBodyPart compressMimeBodyPart (@Nonnull final MimeBodyPart aDa private static void _logMimeBodyPart (@Nonnull final MimeBodyPart aMimePart, @Nonnull final String sContext) throws IOException, MessagingException { - // Should always false in production + // Should always be false in production if (false) { if (LOGGER.isInfoEnabled ()) @@ -422,7 +422,8 @@ public static MimeBodyPart secureMimeBodyPart (@Nonnull final MimeBodyPart aSrcP final boolean bIncludeCertificateInSignedContent, final boolean bUseRFC3851MICAlg, @Nullable final ECryptoAlgorithmCrypt eCryptAlgorithm, - @Nullable final X509Certificate aReceiverCert) throws Exception + @Nullable final X509Certificate aReceiverCert, + @Nonnull final String sLoggingText) throws Exception { ValueEnforcer.notNull (aSrcPart, "SrcPart"); ValueEnforcer.notNull (eCTE, "ContentTransferEncoding"); @@ -456,6 +457,9 @@ public static MimeBodyPart secureMimeBodyPart (@Nonnull final MimeBodyPart aSrcP // This is usually "IAS2Message.setData (aDataBP)" // The MIC is always about the content that is signed aCompressBeforeSignCallback.accept (aDataBP); + + if (LOGGER.isInfoEnabled ()) + LOGGER.info ("Successfully compressed outgoing AS2 message" + sLoggingText); } if (eSignAlgorithm != null) @@ -472,6 +476,9 @@ public static MimeBodyPart secureMimeBodyPart (@Nonnull final MimeBodyPart aSrcP bUseRFC3851MICAlg, eCTE); _logMimeBodyPart (aDataBP, "signed"); + + if (LOGGER.isInfoEnabled ()) + LOGGER.info ("Successfully signed outgoing AS2 message" + sLoggingText); } if (eCompressionType != null && !bCompressBeforeSign) @@ -481,6 +488,9 @@ public static MimeBodyPart secureMimeBodyPart (@Nonnull final MimeBodyPart aSrcP LOGGER.debug ("Compressing outbound message after signing..."); aDataBP = compressMimeBodyPart (aDataBP, eCompressionType, eCTE); _logMimeBodyPart (aDataBP, "compressAfterSign"); + + if (LOGGER.isInfoEnabled ()) + LOGGER.info ("Successfully compressed outgoing AS2 message" + sLoggingText); } if (eCryptAlgorithm != null) @@ -489,6 +499,9 @@ public static MimeBodyPart secureMimeBodyPart (@Nonnull final MimeBodyPart aSrcP LOGGER.debug ("Encrypting outbound message..."); aDataBP = AS2Helper.getCryptoHelper ().encrypt (aDataBP, aReceiverCert, eCryptAlgorithm, eCTE); _logMimeBodyPart (aDataBP, "encrypted"); + + if (LOGGER.isInfoEnabled ()) + LOGGER.info ("Successfully encrypted outgoing AS2 message" + sLoggingText); } return aDataBP; @@ -596,7 +609,8 @@ protected MimeBodyPart secure (@Nonnull final IMessage aMsg, @Nonnull final ECon bIncludeCertificateInSignedContent, bUseRFC3851MICAlg, eCryptAlgorithm, - aReceiverCert); + aReceiverCert, + aMsg.getLoggingText ()); } /** diff --git a/as2-lib/src/main/java/com/helger/as2lib/util/AS2Helper.java b/as2-lib/src/main/java/com/helger/as2lib/util/AS2Helper.java index 18086e96..c66e0fcd 100644 --- a/as2-lib/src/main/java/com/helger/as2lib/util/AS2Helper.java +++ b/as2-lib/src/main/java/com/helger/as2lib/util/AS2Helper.java @@ -193,6 +193,9 @@ public static void createMDNData (@Nonnull final IAS2Session aSession, bUseOldRFC3851MicAlgs, EContentTransferEncoding.BASE64); aMdn.setData (aSignedReport); + + if (LOGGER.isInfoEnabled ()) + LOGGER.info ("Successfully signed outgoing MDN message" + aMdn.getLoggingText ()); } catch (final AS2CertificateNotFoundException | AS2KeyNotFoundException ex) { @@ -414,7 +417,8 @@ public static void parseMDN (@Nonnull final IMessage aMsg, aMsg.attrs () .putIn (AS2Message.ATTRIBUTE_RECEIVED_SIGNATURE_CERTIFICATE, CertificateHelper.getPEMEncodedCertificate (aCertHolder.get ())); - LOGGER.info ("Successfully verified signature of MDN of message" + sLoggingText); + if (LOGGER.isInfoEnabled ()) + LOGGER.info ("Successfully verified signature of MDN of message" + sLoggingText); } final MimeMultipart aReportParts = new MimeMultipart (aMainPart.getDataHandler ().getDataSource ()); diff --git a/as2-lib/src/test/java/com/helger/as2lib/supplementary/main/MainSendToLocalhost8080.java b/as2-lib/src/test/java/com/helger/as2lib/supplementary/main/MainSendToLocalhost8080.java index 60fb6a73..d4d3978f 100644 --- a/as2-lib/src/test/java/com/helger/as2lib/supplementary/main/MainSendToLocalhost8080.java +++ b/as2-lib/src/test/java/com/helger/as2lib/supplementary/main/MainSendToLocalhost8080.java @@ -100,9 +100,9 @@ public static void main (final String [] args) throws Exception aSettings.setPartnershipName (aSettings.getSenderAS2ID () + "_" + aSettings.getReceiverAS2ID ()); // When a signed message is used, the algorithm for MIC and message must be // identical - final ECryptoAlgorithmSign eSignAlgo = ECryptoAlgorithmSign.DIGEST_SHA_512; + final ECryptoAlgorithmSign eSignAlgo = ECryptoAlgorithmSign.DIGEST_SHA_256; // CBC works, GCM is not supported - final ECryptoAlgorithmCrypt eCryptAlgo = ECryptoAlgorithmCrypt.CRYPT_AES128_CBC; + final ECryptoAlgorithmCrypt eCryptAlgo = ECryptoAlgorithmCrypt.CRYPT_AES128_GCM; final ECompressionType eCompress = ECompressionType.ZLIB; final boolean bCompressBeforeSigning = AS2ClientSettings.DEFAULT_COMPRESS_BEFORE_SIGNING;