-
Notifications
You must be signed in to change notification settings - Fork 44
News and Noteworthy
Philip Helger edited this page Jan 21, 2025
·
73 revisions
- v5.1.4 - 2025-01-21
- Updated to BouncyCastle 1.80
- Updated to Apache HttpClient 5.4
- Updated to ph-commons 11.1.12
- Fixed potential issues with temp files (see CWE-377)
- v5.1.3 - 2024-03-29
- Updated to ph-commons 11.1.5
- Created Java 21 compatibility
- v5.1.2 - 2024-01-23
- Updated to BouncyCastle v1.77
- Fixed the private key selection if multiple entries with the same alias exist. See issue #106. Thanks @AlexandruCiobanu
- v5.1.1 - 2023-08-01
- Updated to ph-commons 11.1
- Updated to BouncyCastle v1.77
- Added new signing algorithm aliases:
-
sha2_224
- SHA224 alias -
sha2_256
- SHA256 alias -
sha2_384
- SHA384 alias -
sha2_512
- SHA512 alias
-
- Improved error handling in case of chunked encoding processing
- Finally fixed the issue with chunked Transfer-Encoding in Servlet based environments
- Avoid error in MDN signing when receiver certificate is expired
- v5.1.0 - 2023-02-24
- Using Servlet API 5.0.0 as the baseline: JakartaEE 9, Java 11+, Apache Tomcat v10.0.x, Jetty 10.x
- Using Eclipse Angus 2.0.x
- Using Spring Boot 3.x
- v5.0.6 - 2024-05-31 [backport]
- Updated to BouncyCastle v1.78
- v5.0.5 - 2024-01-15 [backport]
- Updated to BouncyCastle v1.77
- v5.0.4 - 2023-06-22 [backport]
- Avoid error in MDN signing when receiver certificate is expired
- v5.0.3 - 2023-06-22 [backport]
- Finally fixed the issue with chunked Transfer-Encoding in Servlet based environments
- v5.0.2 - 2023-06-21 [backport]
- Updated to Spring Boot 2.7.12 for the demo application
- Improved error handling in case of chunked encoding processing
- v5.0.1 - 2023-05-15 [backport]
- Added new signing algorithm aliases:
-
sha2_224
- SHA224 alias -
sha2_256
- SHA256 alias -
sha2_384
- SHA384 alias -
sha2_512
- SHA512 alias
-
- Added new signing algorithm aliases:
- v5.0.0 - 2023-02-19
- Using Java 11 as the baseline
- Updated to ph-commons 11
- Using Servlet API 4.0.1 as the baseline: JakartaEE 8, Java 11+, Apache Tomcat v9.x, Jetty 10.x
- Using Jakarta Mail 2.0.1 (because Bouncycastle is not yet available for Eclipse Angus)
- Using Jakarta Activation 2.0.1
- Fixed an error that did not print the transferred bytes correctly (
AS2 Message transferred X bytes in Y seconds at Z KBps
) - Removed the signing algorithm from PR #138 again because it didn't work out fully
- Added new signing algorithms:
-
rsassa-pss-sha-224
- RSASSA-PSS with digest algorithm SHA224 (sha-224
) -
rsassa-pss-sha-256
- RSASSA-PSS with digest algorithm SHA256 (sha-256
) -
rsassa-pss-sha-384
- RSASSA-PSS with digest algorithm SHA384 (sha-384
) -
rsassa-pss-sha-512
- RSASSA-PSS with digest algorithm SHA512 (sha-512
) -
rsassa-pss-sha3-224
- RSASSA-PSS with digest algorithm SHA3-224 (sha3-224
) -
rsassa-pss-sha3-256
- RSASSA-PSS with digest algorithm SHA3-256 (sha3-256
) -
rsassa-pss-sha3-384
- RSASSA-PSS with digest algorithm SHA3-384 (sha3-384
) -
rsassa-pss-sha3-512
- RSASSA-PSS with digest algorithm SHA3-512 (sha3-512
)
-
- v4.11.0 - 2022-08-17
- Updated to Apache Http Client v5.x for the underlying HTTP transport
- Made the reading and writing of the async MDN info file more generic, so that it does not rely on the hard disc
- Added new signing algorithm "RSA PKCS #1 v1.5 Signature with SHA-3". See PR #138. Thanks @enif77
- Changed the public methods to configure timeouts to use the new APIs
- Updated the Mendelson Keys, so that the test application
MainSendToMendelsonTestServer
works again
- v4.10.1 - 2022-03-05
- Added support for the partnership attribute
remove_cms_algorithm_protect_attr
. See issue #137. Thanks @dang-osu - Improved some execution order in case of error. See issue #135. Thanks @ihudedi
- Added support for the partnership attribute
- v4.10.0 - 2022-01-04
- Changed the type of "causes" in
AS2ProessorException
fromThrowable
toAS2Exception
- Improved the Exception handling for
AS2DispositionException
. See issue #130. Thanks @ihudedi - Removed the member "source file" from class
AS2Exception
- Using less setters for Exception members - bad style
- Changed the type of "causes" in
- v4.9.2 - 2021-12-30
- Updated to Log4J 2.17.1 to circumvent CVE-2021-44832
- Avoid double wrapping of
AS2DispositionException
. See issue #130. Thanks @ihudedi
- v4.9.1 - 2021-12-21
- Updated to Log4J 2.17.0 to circumvent CVE-2021-45046 and CVE-2021-45105
- v4.9.0 - 2021-12-13
- Updated to Log4J 2.15.0 to circumvent CVE-2021-44228
- Removed the usage of
Serializable
where not needed - it was never fully working and only adds complexity - Renamed interface
IAS2InputStreamProvider
toIAS2HttpRequestDataProvider
- Fixed the processing of the incoming HTTP data when the Servlet was used. See issue #131. Thanks @vansh-flexe and @kem-flexe
- v4.8.0 - 2021-10-25
- Deprecated class
ExceptionParameters
because it is not used - Simplified the
IAS2InputStreamProvider
interface in a backwards incompatible way - Changed the handling of incoming messages in the Servlet to handle large files. See issue #123 - thanks @ihudedi
- Fixed the handling of active modules in
as2-demo-spring-boot
andas2-demo-webapp
. See issue #129 - thanks @GeeinHub - The parameters
errordir
andsentdir
ofAbstractDirectoryPollingModule
can now also handledate
andmsg
parameters - Added the parameter
stored_error_filename
to classAbstractDirectoryPollingModule
to define the filename for storing in the error directory. It can handledate
andmsg
parameters. The default behaviour is the source filename. - Added the parameter
stored_sent_filename
to classAbstractDirectoryPollingModule
to define the filename for storing in the sent directory. It can handledate
andmsg
parameters. The default behaviour is the source filename. - The parameter
errordir
ofDirectoryResenderModule
can now also handledate
parameters - Added the parameter
stored_error_filename
to classDirectoryResenderModule
to define the filename for storing in the error directory. It can handledate
parameters. The default behaviour is the source filename.
- Deprecated class
- v4.7.1 - 2021-03-30
- Added new interface
IAS2OutgoingHttpCallback
that can be set inAS2SenderModule
andAsynchMDNSenderModule
to be invoked after HTTP calls - Added new interface
IAS2IncomingMDNCallback
that can be set inAS2SenderModule
andAS2MDNReceiverHandler
to be invoked when an MDN is received
- Added new interface
- v4.7.0 - 2021-03-22
- Updated to ph-commons 10
- v4.6.4 - 2021-03-10
- Added new servlet
AS2MDNReceiveServlet
to receive asynchronous MDNs - Fixed potential Exceptions if the "pending MDN Info" or "pending MDN" folder is not configured properly
- Extracted the class
AbstractCertificateFactory
to be more flexible in KeyStore handling for receiving.
- Added new servlet
- v4.6.3 - 2020-09-22
- Using a partition-safe rename (see issue #116)
- v4.6.2 - 2020-09-17
- Using Jakarta JAXB 2.3.3
- v4.6.1 - 2020-07-15
- Made AS2 version number customizable through
IAS2Session
(see issue #111) - Tried to send Content-Length HTTP header (see issue #109) - experimental feature
- Made AS2 version number customizable through
- v4.6.0 - 2020-05-27
- Changed the Maven groupId to
com.helger.as2
- Updated to ph-commons 9.4.0
- Changed the Maven groupId to
- v4.5.5 - 2020-03-13
- Made a method non-final (see issue #105)
- v4.5.4 - 2020-03-12
- Fixed a resource leak that caused a lot of "bcMail" temporary files (see issue #103)
- Fixed a problem with the
SelfFillingPartnershipFactory
if the instance survives multiple document exchanges to different partners (see issue #99)
- v4.5.3 - 2020-02-17
- Updated to ph-web 9.1.9
- v4.5.2 - 2020-02-07
- Fixed passing the keystore password in the AS2 client if the keystore was provided as a byte array
- Sending less stack traces in the MDN if an
AS2ProcessorException
was thrown
- v4.5.1 - 2020-02-07
- Extended
CertificateFactory
API - Fixed a small RFC 4130 compliance bug. In the formatting of the "Disposition" response header, a blank was missing in case of an error
- Extended other APIs of modules and processors
- Extended
- v4.5.0 - 2019-12-19
- Renamed
OpenAS2Exception
toAS2Exception
- Renamed
WrappedOpenAS2Exception
toWrappedAS2Exception
- Renamed
OpenAS2KeyStore
toAS2KeyStore
- Renamed
DispositionException
toAS2DispositionException
- Renamed
HttpResponseException
toAS2HttpResponseException
- Got rid of the name
OpenAS2
internally - Renamed other exception to start with
AS2
- Moved package
com.helger.as2lib.util.cert
to test-only - The MDN payload parsing now honors the Content-Transfer-Encoding (see issue #100)
- Renamed
- v4.4.8 - 2019-10-23
- Allowed absolute path with Windows drives for the attributes
pendingmdninfo
andpendingmdn
(see issue #97) - Removed intermediate class
AbstractCertificateFactory
- Made
CertificateFactory
thread-safe (and got rid of some synchronized) - Changed application name from
ph-OpenAS2
toas2-lib
- Renamed
AS2ServletSession
toAS2ServletXMLSession
(incompatible but should not effect outside code)
- Allowed absolute path with Windows drives for the attributes
- v4.4.7 - 2019-10-22
- Simplified
ICertificateFactory
to work onIBaseMessage
- Fixed a missing HTTP header unification when using the async MDN (see issue #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
andpendingmdn
(see issue #97)
- Simplified
- 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 toinit()
- 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 useas2-lib
with Spring Boot (see issue #96) - Fixed an issue with the
Content-Transfer-Encoding
and it is now more consistent
- v4.4.4 - 2019-09-26
- 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 issue #92) - must be explicitly enabled.
- Internal API of
OpenAS2Exception
was changed in an incompatible way - Trying to ensure correct line endings in MDNs (see issue #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
- Extended
- v4.4.0 - 2019-06-13
-
AS2Client
correctly passes the keystore type toCertificateFactory
-
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 issue #87)
- Removed all the "large file support" flags (incompatible)
- Improved MIC algorithm name matching (see issue #75)
- Added support for deprecated signing algorithms
rsa-md5
andrsa-sha1
- Updated to new Mendelson test certificates (key3 and key4 - see http://mendelson-e-c.com/node/3211)
- The
Content-Transfer-Encoding
valuebase64
now works correctly (see issue #71) - Added a custom
IMICMatchingHandler
interface toAS2SenderModule
andAS2MDNReceiverHandler
(see issue #59) - Removed deprecated class
com.helger.as2lib.cert.PKCS12CertificateFactory
. Usecom.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 issue #78)
- Removed class
AS2GlobalSettings
- Removed support for the system property
AS2.useSecureRandom
- Moved interface
- v4.2.2 - 2019-03-21
- Fixed code quality
- Fixes the as2-server issue #22
- 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 issue #52)
- Added workaround for bug in
HttpHeaderMap.addAllHeaders
(see issue #48) - Using the correct signing algorithm for the MIC, according to the partnership definitions (see issue #50)
- Added new subproject
as2-demo-webapp
to provide a simple to use stub for a web application receiving AS2 messages (see issue #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 ofAS2ClientRequest.setData (File, Charset)
(see issue #45) -
Content-Type
handling was improved all over the place to avoid exception in case of error (see issue #33) - Added new class
HTTPIncomingDumperStreamBased
- Calculating the MIC only if an MDN is requested (see issue #58)
- Saved MDN uses OS specific newlines (see issue #61)
- Changed
IDynamicComponent
to haveattrs()
and not to be aStringMap
- 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 issue #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
withoutDisposition-Notification-To
does not trigger MDN sending anymore (see issue #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
andcontent_transfer_encoding_receive
(see issue #43)
- The existence of just the header
- 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 issue #38)
- Added new system property
AS2.httpDumpDirectoryOutgoing
to easily dump outgoing transmissions - Renamed system property for dumping incoming HTTP transmissions from
AS2.httpDumpDirectory
toAS2.httpDumpDirectoryIncoming
to avoid confusion. The old name can still be used but emits a warning. - Modules
MDNFileModule
andMessageFileModule
now got a new attributecharset
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
- Updated to BouncyCastle 1.59
- When using the non-servlet version, the values for the
source_ip
anddestination_ip
fields were fixed (see https://github.com/phax/as2-server/issues/20)
- 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
tojava.time.LocalDateTime
- so all the Date parameters must be changed fromyyyy
touuuu
!!! - The certificate factory
com.helger.as2lib.cert.PKCS12CertificateFactory
was deprecated in favor of the more genericcom.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 isfalse
) - 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)
- Added per partnership attribute
- v2.2.6 - 2016-03-02
- Added support for dumping HTTP requests when using
as2-servlet
- Added support for dumping HTTP requests when using
- 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 attributeautosave
. 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
andInMemoryResenderModule
- added the following new partnership attributes:
-
content_transfer_encoding_receive
[receiver side] to define a fixedContent-Transfer-Encoding
for receiving, even if none is specified. -
force_decrypt
[receiver side] to force decryption of incoming messages even if theContent-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 theContent-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 theContent-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 theContent-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 (whentrue
) or whether to always use the certificate provided in the partnership (whenfalse
). If not set the value of the AS2 session is used. -
disable_decompress
[receiver side] to disable decompression of incoming messages even if theContent-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 (whentrue
) or not (whenfalse
). The default value istrue
. - 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