Skip to content

News and Noteworthy

Philip Helger edited this page Oct 23, 2019 · 95 revisions
  • v4.4.8 - work in progress
    • Allowed absolute path with Windows drives for the attributes pendingmdninfo and pendingmdn (see #97)
    • Removed intermediate class AbstractCertificateFactory
    • Made CertificateFactory thread-safe (and got rid of some synchronized)
  • v4.4.7 - 2019-10-22
    • Simplified ICertificateFactory to work on IBaseMessage
    • Fixed a missing HTTP header unification when using the async MDN (see #97)
    • The async MDN is no longer send in a separate thread but in the main thread of the processor, so that retry etc. works
    • Fixed too much quoting when having path values inside of the attributes pendingmdninfo and pendingmdn (see #97)
  • v4.4.6 - 2019-10-18
    • Added a possibility to customize the "ReceiverModule" to send back the full exception or only the class name and and the message
    • The "UserAgent" HTTP header now contains the version number of the as2-lib used
  • v4.4.5 - 2019-10-11
    • Updated to ph-web 9.1.4
    • Added custom MIC matching handler to class AS2ClientSettings
    • Added the possibility to provide a custom callback to receive the certificate used in class AS2ClientSettings
    • Moved IHTTPOutgoingDumperFactory from package ".http" to ".dump" (incompatible change)
    • Made the IHTTPIncomingDumper customizable per handler
    • Made AS2ReceiveServlet non final and moved initialization code to init()
    • The as2-server project was reintegrated into this repository for ease of maintenance
    • Added new submodule as2-demo-spring-boot for a stub how to use as2-lib with Spring Boot (see #96)
    • Fixed an issue with the Content-Transfer-Encoding and it is now more consistent
  • v4.4.4 - 2019-09-26
    • Removed all information about the exception from the MDN (see #94)
    • Updated to ph-commons 9.3.7
    • Fixed another unintentional HTTP header values quoting and made it configurable for receiving modules (see #95)
  • v4.4.3 - 2019-09-05
    • Fixed an unintended quoting of HTTP header values when reading an MDN
  • v4.4.2 - 2019-08-30
    • Updated to ph-commons 9.3.6
    • Changed Automatic-Module-Name of "as2-lib" to com.helger.as2lib
    • Changed Automatic-Module-Name of "as2-servlet" to com.helger.as2servlet
    • The HTTP headers can now be automatically quoted correctly according to RFC 2616 chapter 2.2 (see #92) - must be explicitly enabled.
    • Internal API of OpenAS2Exception was changed in an incompatible way
    • Trying to ensure correct line endings in MDNs (see #90)
    • By default exception stack traces are not send back in the MDN anymore
  • v4.4.1 - 2019-06-28
    • Extended ICryptoHelper.verify API to have a chance to retrieve the effective certificate
    • Added a new message attribute that contains the certificate used for verification
    • AS2ClientResponse now has an accessor to retrieve the certificate used to verify the MDN
  • v4.4.0 - 2019-06-13
    • AS2Client correctly passes the keystore type to CertificateFactory
    • AS2Client can now handle read-only keystore that is provided as byte array
    • Remove support for the old HttpUrlConnection, therefore making "large file support" the default (see #87)
    • Removed all the "large file support" flags (incompatible)
    • Improved MIC algorithm name matching (see #75)
    • Added support for deprecated signing algorithms rsa-md5 and rsa-sha1
    • Updated to new Mendelson test certificates (key3 and key4 - see http://mendelson-e-c.com/node/3211)
    • The Content-Transfer-Encoding value base64 now works correctly (see #71)
    • Added a custom IMICMatchingHandler interface to AS2SenderModule and AS2MDNReceiverHandler (see #59)
    • Removed deprecated class com.helger.as2lib.cert.PKCS12CertificateFactory. Use com.helger.as2lib.cert.CertificateFactory instead - no functionality changes.
    • Removed some other deprecated methods as well.
    • Updated to ph-commons 9.3.4
    • Reworked the outgoing dumping API, so that it can be set per "AbstractHttpSenderModule" and must not be globally set. This is a backwards incompatible change. The existing system property is still accepted.
    • The AS2 client can now dump specific outgoing requests more easily using the new API
    • The outgoing HTTP dumper does now have options to configure whether the comment, header and or payload should be dumped or not
  • v4.3.0 - 2019-05-17
    • Moved interface IRefreshablePartnershipFactory from project as2-server to this project
    • Improved support for large file transmission - thanks to @zharpaz for the PR (see #78)
    • Removed class AS2GlobalSettings
    • Removed support for the system property AS2.useSecureRandom
  • v4.2.2 - 2019-03-21
  • v4.2.1 - 2018-11-26
    • Updated to ph-commons 9.2.0
  • v4.2.0 - 2018-11-21
    • Added support for large file transmission (using Apache HttpClient) - thanks to @zharpaz for the PRs :D
    • AS2 client now has the possibility to not request an MDN at all
    • It's now possible to use a different Security Provider besides BouncyCastle (see #52)
    • Added workaround for bug in HttpHeaderMap.addAllHeaders (see #48)
    • Using the correct signing algorithm for the MIC, according to the partnership definitions (see #50)
    • Added new subproject as2-demo-webapp to provide a simple to use stub for a web application receiving AS2 messages (see #36)
    • Loading of keystores now also works from classpath by default. Based on https://github.com/phax/as2-peppol-server/issues/2
    • Deprecated AS2ClientRequest.setData (File) in favour of AS2ClientRequest.setData (File, Charset) (see #45)
    • Content-Type handling was improved all over the place to avoid exception in case of error (see #33)
    • Added new class HTTPIncomingDumperStreamBased
    • Calculating the MIC only if an MDN is requested (see #58)
    • Saved MDN uses OS specific newlines (see #61)
    • Changed IDynamicComponent to have attrs() and not to be a StringMap
    • Added new encryption algorithms (AES with GCM padding)
    • Requires ph-web 9.0.5 or newer
    • Required ph-commons 9.1.8. to ensure case sensitive HTTP header names (see ph-commons ä11)
    • Storing the outgoing MIC as an attribute in the message (see #74)
  • v4.1.1 - 2018-07-27 - please use only with ph-commons 9.1.4 or newer
    • The existence of just the header Disposition-Notification-Options without Disposition-Notification-To does not trigger MDN sending anymore (see #42)
    • Fixed overwriting of existing Content-Transfer-Encoding when receiving messages.
    • Partnership attribute blockerrormdn is now only evaluated for MDNs that are created based on errors
    • MDNs now also use the partner attribute content_transfer_encoding and content_transfer_encoding_receive (see #43)
  • v4.1.0 - 2018-06-20
    • The random parameters class now supports creating random values that are longer than 10 characters
    • Fixed OSGI ServiceProvider configuration
    • Added support for new encryption algorithms (see #38)
    • Added new system property AS2.httpDumpDirectoryOutgoing to easily dump outgoing transmissions
    • Renamed system property for dumping incoming HTTP transmissions from AS2.httpDumpDirectory to AS2.httpDumpDirectoryIncoming to avoid confusion. The old name can still be used but emits a warning.
    • Modules MDNFileModule and MessageFileModule now got a new attribute charset to define the charset to be used to dump the information.
    • Requires ph-commons 9.1.2
  • v4.0.2 - 2018-04-05
    • improved client configurability and customizability
    • Switching back to preferring BC PKCS12 key store, because JDK PKCS 12 key store is partially case insensitive
  • v4.0.1 - 2018-03-27
  • v4.0.0 - 2018-01-06
    • Updated to ph-commons 9.0.0
    • Updated to BouncyCastle 1.58
    • Fixed crypto algorithm case sensitivity issue on sending (issue #32)
    • Changed internally from java.util.Date to java.time.LocalDateTime - so all the Date parameters must be changed from yyyy to uuuu!!!
    • The certificate factory com.helger.as2lib.cert.PKCS12CertificateFactory was deprecated in favor of the more generic com.helger.as2lib.cert.CertificateFactory that handles arbitrary keystore types (like JKS).
  • v3.1.0 - 2017-07-27
    • AS2 client can now handle custom HTTP headers
    • Reworked dumping API to create new dumpers per request
    • Dumping API was moved into a separate package.
  • v3.0.4 - 2017-06-19
    • AS2 client allows different content type even if text source is used
    • AS2 client allows to specify Content-Transfer-Encoding
    • Updated to BouncyCastle 1.57
    • The receiving modules got a new attribute errorstorebody to indicate whether the body of a failed message should also be stored or not (default is false)
    • The receiving modules errordir directory can now handle parameters (date and msg)
    • AS2 client can now request and asynchronous MDN (issue #31)
  • v3.0.3 - 2017-01-24
    • Binds to ph-commons 8.6.x
    • Binds to ph-web 8.7.0
    • Updated to BouncyCastle 1.56
  • v3.0.2 - 2016-11-28
    • Improved signature validation certificate selection (#28) - thanks @rklyne
    • Made connect and read timeout configurable in AS2ClientSettings (issue #23)
  • v3.0.1 - 2016-09-27
    • Made incoming HTTP request dumping customizable (issue #26)
  • v3.0.0 - 2016-08-21
    • JDK 8 is now required
    • Using ph-commons 8.4.x
  • v2.2.8 - 2016-05-09
    • Improved AS2 client https customization and API
  • v2.2.7 - 2016-04-27
    • Added per partnership attribute rfc3851_micalgs to determine to use RFC 3851 MIC algorithm names instead of the default RFC 5751 MIC algorithm names (issue #18)
    • Fixed problem with special character escaping in MDN context (issue #19)
  • v2.2.6 - 2016-03-02
    • Added support for dumping HTTP requests when using as2-servlet
  • v2.2.5 - 2015-12-01
    • Added a validity check so that expired certificates can no longer be used to sign, verify and encrypt messages. Decrypt is still possible.
    • Added the possibility to disable the autosave of the PKCS12CertificateFactory using the new boolean attribute autosave. This can now also easily be set in the client settings. (issue #17)
    • Fixed potential endless loop when a retry count was specified at a partnership (issue #16)
  • v2.2.4 - 2015-11-11
    • Fixed a minor issue where details of a ProcessingException were not passed into the MDN text
  • v2.2.3 - 2015-10-22
    • Improved API for handling MDN errors (as2-lib issue #11)
    • The signature verification of messages sent without Content-Transfer-Encoding was fixed (as2-lib issue #12)
    • Receiving a message for an unknown partnership now results in a correct error MDN (as2-server issue #16)
    • The new sub-project as2-servlet is now contained
  • v2.2.2 - 2015-10-19
    • Updated to Bouncy Castle 1.53 (as2-lib issue #10)
  • v2.2.1 - 2015-10-08
    • Extended API and some debug logging added
  • v2.2.0 - 2015-09-27
    • added system properties (see below) for configuration and debugging purposes
    • added new resender modules: ImmediateResenderModule and InMemoryResenderModule
    • added the following new partnership attributes:
      • content_transfer_encoding_receive [receiver side] to define a fixed Content-Transfer-Encoding for receiving, even if none is specified.
      • force_decrypt [receiver side] to force decryption of incoming messages even if the Content-Type header claims the message is not encrypted (as a work-around for non spec-compliant senders)
      • disable_decrypt [receiver side] to disable decryption of incoming messages even if the Content-Type header claims the message is encrypted (as a work-around for non spec-compliant senders)
      • force_verify [receiver side] to force signature validation of incoming messages even if the Content-Type header claims the message is not signed (as a work-around for non spec-compliant senders)
      • disable_verify [receiver side] to disable signature verification of incoming messages even if the Content-Type header claims the message is signed (as a work-around for non spec-compliant senders)
      • verify_use_cert_in_body_part [receiver side] to define whether a certificate passed in the signed MIME body part shall be used to verify the signature (when true) or whether to always use the certificate provided in the partnership (when false). If not set the value of the AS2 session is used.
      • disable_decompress [receiver side] to disable decompression of incoming messages even if the Content-Type header claims the message is compressed (as a work-around for non spec-compliant senders)
      • sign_include_cert_in_body_part [sender side] to determine whether the certificate used for signing should be included in the signed content part (when true) or not (when false). The default value is true.
      • Added the sub-project as2-partnership-mongodb - thanks to @jochenberger for contributing it
  • Version 2.1.0 - 2015-08-20
    • fixes a problem that implicitly SHA-1 was always used for signing, no matter what you specify
    • compression according to RFC 5402 is now supported so that this is no fully AS2 1.1 compatible

Clone this wiki locally