Skip to content

4.2.0 What's New

lmiller edited this page Dec 1, 2022 · 44 revisions

Mirth Connect 4.2.0 includes new features such as message integrity as well as many smaller changes, updates, and improvements. This release also contains several improvements to commercial extensions.

You can find the list of completed issues for this release here.

Core Mirth Connect

New Features

Simplify the Process of Selecting a Listener Port

We added a new button to the channel configuration screen that will allow users to see a list of ports already in use by other channels. (Community Issue)

Add Username to Overwriting Channel Changes Dialog

We added the username to the warning message to notify the current user that another user has made changes to this channel since opening the Channel Edit panel. (Community Issue)

Add Username to Overwriting Channel Changes Dialog

Additional Information Available on the Events Screen

We added the Channel ID - Message ID and Channel Name columns to the Events screen. This change allows the user to sort on either of these new columns. (Community Issue)

Multi-Select when Sending Messages From the Dashboard to the Channel

We added the ability to select multiple messages from the Open Text or Open Binary File Dialogs when sending messages to the channel. When multiple files have been selected, the edit window will show "Multiple Messages Selected" and will disable the editing function. Each file will be sent as individual transactions. (Community Issue) Multiple-Files-Selected

New Message Integrity Features

Add New JavaScript Utility Methods for Hashing of Channel Messages

We added 3 new JavaScript utility methods to allow hashing of channel messages. The resulting hex hash can be passed along to destinations for verification of message integrity. For more information, please see the Mirth Connect and JavaScript > Using JavaScript in Mirth Connect section in the Mirth Connect User Guide. (Community Issue)

Automatically Hash Outgoing Messages

A SHA-256 hash is now automatically generated for the encoded data of each outgoing message. You can use the ${HASH} velocity variable, which is available as Message Hash in the Destination Mappings list, to send the hash value to the receiving system. For example, using an HTTP Sender, you can add the hash to an HTTP header named hash. (Community Issue)

Destination-Mappings

Hash-Velocity-Variable

You can also use the new JavaScript utility methods, described above, to verify the hash of an incoming message. For example, using an HTTP Listener, if you assume the incoming messages include the message hash in a header named hash, you can use the following script in a Source Filter step:

// Get the received hash from the request header
var receivedHash = sourceMap.get('headers').getHeader('hash');
 
// Generate a hash from the received message content
var generatedHash = HashUtil.generate(msg, 'UTF-8', 'SHA-256');
 
// Accept the message only if the hashes match
return receivedHash != null && generatedHash != null && generatedHash == receivedHash;

Fixed Defects

JMS Connectors Failing to Load Classes in Resources

We fixed a defect where JMS connectors failed to find classes in resources that should be available to them. JMS connectors will not fail when using library resources. (Community Issue)

ER7 Serialization Error when Using Strip Namespaces and Use Strict Parser

Because the ER7 serialization (strict parser) requires the proper namespace to convert an XML to ER7, we added the required namespace to the XML if it's missing. (Community Issue)

Mirth Connect RPM Failing to Install Using Some RPM Versions

We fixed an issue in which the Mirth Connect RPM package failed to install on some versions of RPM. (Community Issue)

Restore Config Fails Without "admin" user

We have added more detailed Server Log error messages for each part of the Server Restore Config when the Restore Config fails. This will help users more accurately identify which part of the Server Restore Config failed and why. (Community Issue)

Fixing Errors With Newer JavaFX Versions

Using a newer version of JavaFX caused "Invalid function reference" JSExceptions to be sent to the client console log. (Community Issue)

INFO and DEBUG Logger Statements are not Human Readable

In certain JavaScript coding areas within the channel, previously the logger statements displayed like a variable dump. For example, INFO (filter:?): ParameterizedMessage[messagePattern=Destination Filter Info Test, stringArgs=[], throwable=null]. We fixed the logger statements to be human readable in all locations where this error occurred. (Community Issue)

Security Improvements

Library Updates

Updated Apache commons-text Library to Version 1.10.0

We updated the Apache commons-text library to version 1.10.0 in Mirth Connect and all of its extensions. This was done to address a critical CVE present in the library. It should be noted that Mirth Connect wasn't using the vulnerable functionality of the library, but it's best practice to update libraries with known critical CVEs. (Community Issue)

Functional Changes

Removed the Remove All Events Button

We removed the Remove All Events button in the Events screen to comply with CURES certification security requirements. If developers need to remove all events, they can use the Prune Events in the Data Pruner tab of the Settings screen. This is the preferred method to remove/prune events. (Community Issue)

Mirth Connect Administrator Launcher

This is not directly tied to the Mirth Connect 4.2.0 release, but worth noting here anyway. We've also released a new version of the Mirth Connect Administrator Launcher (1.3.0).

In case you're not aware, this tool replaces the old/deprecated Java Web Start, and allows you an easy way to launch any version of the Mirth Connect Administrator, using any Java installation you want.

New Launcher Features And Enhancements

Display Administrator Launcher Version

The version of Mirth Connect Administrator Launcher now displays in the title bar. (Community Issue)

Add Username to Overwriting Channel Changes Dialog

Updated Launcher Libraries

Included libraries like log4j, BouncyCastle, and several others have been updated to the latest versions. These are just the libraries used by the launcher itself, and will not affect the actual Connect Administrator that gets launched.

New Custom JavaFX Home Option

Optional, and in most cases you will not need to set this. However in case you want or need to use a specific installation of JavaFX, you can point to it using this setting.

Resizable Split Pane

The Connections table can now be drag-resized at will, in case you have connections with longer names and you can't see the entire name.

Changed Clear Key For Client Console

The "clear" keystroke in the client console used to be "c", which made it tricky to copy text since it conflicts with Ctrl+C. That has now been changed to "l".

Fixed Launcher Defects

Caching OCSP Requests

All OCSP requests are now being cached while the launcher is open. In most cases, every single JAR that you download is going to have the same signing cert. So in that scenario, you should now only see a few OCSP requests total, rather than a flood of hundreds of such requests.

In addition, the SYN/connect timeout for CRL/OCSP requests has been reduced from 60s to 10s. This does not eliminate slowdowns if your machine doesn't have any internet at all (or a firewall is dropping packets). But at least now, you should only experience that slowdown on the first launch. After that, those OCSP "null responses" are cached, so it does not attempt to make a request next time.

Fixing Java 18 Launch Issues

The required JVM module options were not being set when Java 18+ was used to launch the Administrator. That has been fixed now, so any Java 18+ can be used without launch/login errors.

Fixing Various JavaFX Issues

Certain scenarios could cause the Administrator to crash after launching. This was seen most often on newer versions of macOS, and especially on M1 (AArch64) systems.

OpenJFX 17.0.2 has been included, both the JARs for the classpath as well as native libraries for the JVM library path, for Windows/Linux/macOS and multiple architectures. Whether OpenJFX 11 or 17 gets used depends on the version of Java you're launching with, the operating system you're on, and whether you're on an aarch64 system. As a special case, aarch64 will always use the newer OpenJFX 17.0.2 even when launching with Java 11-16.

Moving Java Home Preference Checks

The JAVA_HOME environment variable will now be higher in the list when launching the Administrator using the "Default" Java installation.

Launcher Will Error For Invalid Java Home

Previously the launcher would just automatically attempt to find another JVM if the custom Java home was invalid. However that could lead to confusion, because the Administrator may have been launched with a different version of Java than what was expected. Now the launcher will error out if the custom Java home could not be found or is not a valid Java home directory.

Commercial Extension Improvements

Channel History

Add Username to Overwriting Channel Changes Dialog in Channel History

We added the username to the warning message to notify the current user that another user has made changes to this channel since opening the Channel History dialog.

Add Username to Overwriting Channel Changes Dialog in Channel History

CURES Certification Support

New CURES Certification Support Extension

The CURES Certification Support is designed to determine if the Event Log has been altered by manually changing the database. If the Event Log has been tampered with, an error message will be sent to the server log. In addition, a Server Event and Error Event will be created, the latter of which can be used to trigger Alerts.

The CURES Certification Support extension is designed to work with or without using the Advanced Clustering extension. When used in conjunction with Advanced Clustering, each server in the cluster verifies its own Event Log.

FHIR Plugin

Fixed Incorrect URI Defect

We fixed a defect with the FHIR Sender where the URI was incorrect whenever the connector retried sending a message. This was due to the FHIR resource path being appended to the URI on each retry. For example, when sending a Bundle resource, if the connector retried sending a message after initially failing, the URI was incorrectly set to https://<destination>/Bundle/Bundle.

LDAP Plugin

Mirth Connect Login with LDAP Plugin Case-sensitivity

We fixed a defect where users were unable to use their LDAP login unless they used all lowercase characters for their username. Users are now able to to use their LDAP login with a case-insensitive username. (Community Issue)

SSL Manager Plugin

Fixed SSL Advanced Dialog

Fixed the SSL Manager advanced setting dialog. Previously if default connector extensions were disabled, the SSL Advanced settings dialog would fail to appear when clicking on the wrench icon in the connector settings.

User Authorization

Rename the User Authorization extension to Role-Based Access Control

The User Authorization extension has been renamed to Role-Based Access Control. All references to "User Authorization" in the User and Extension Guides, in-app UI elements, and the GitHub Wiki have been changed to "Role-Based Access Control". Going forward, the User Authorization extension will be referred to as the Role-Based Access Control extension; however, the extension artifacts will still be named "auth".

Correct User Role Preassigned to User

If a new user was created with the same username as a deleted user, previously it was assigned the roles from the deleted user. To correct this, the role assignments are now updated in the database correctly.

Interoperability Connector Suite

XCPD Sender Appends a New WS Security Element on Each Retry

We fixed an issue where whenever a message is retried on an XCPD sender, a new WS security header element is appended to the header rather than it being overwritten. This can make messages very large. Now, the WS security header element will be overwritten with a new one. (Community Issue)

Health Data Hub Plugin

Add Header table to the Health Data Hub Sender Plugin

The HDH sender now has the ability to add custom headers to the request whenever sending a message. This new ability is enabled for Basic and Advanced configurations. Like the HTTP Sender, you can choose to create your headers by using the Table or Map options. The headers will be applied to the request prior to the dispatch of the message. (Community Issue) Add Header table to the Health Data Hub Sender

Clone this wiki locally