đ Features
- Enhanced authentication #126 #56 #72 #110
- Notification if HiveMQ starts without security extension
- Deny authentication if no security extension is present
- Iteration of subscribers, subscriptions, sessions
- Interceptors
- ConnectInboundInterceptor #26
- ConnackOutboundInterceptor #30
- PublishOutboundInterceptor #25
- PubackInboundnterceptor #113 #117 #49
- PubackOutboundInterceptor #113 #117 #50
- PubrecInboundInterceptor #114 #117 #53
- PubrecOutboundInterceptor #114 #117 #54
- PubrelInboundInterceptor #115 #117 #55
- PubrelOutputInterceptor #115 #117 #58
- PubcompInboundInterceptor #116 #117 #51
- PubcompOutboundInterceptor #116 #117 #52
- SubscribeInboundInterceptor #28
- SubackOutboundInterceptor #125 #46
- UnsubscribeInboundInterceptor #128 #45
- UnsubackOutboundInterceptor #129 #59
- DisconnectInboundInterceptor #92 #47
- DisconnectOutboundInterceptor #92 #48
- PingreqInboundInterceptor #122 #42
- PingrespOutboundInterceptor #122 #42
- Admin service #36
- Client service: disconnectClient with reason code and reason string #89 #63
- Client settings: configurable inflight window #33
- Listener names #37
⨠Improvements
- Performance improvements
- Improved retained message handling #15
- Improved SSL context handling for TLS 1.3 #70
- QoS 0 memory limit per client #79
- A Disconnect packet is now sent to the client that is taken over #101
đ Bug fixes
- All extension tasks have now the correct extension class loader set to ensure access to HiveMQ services and builders #40
- All CompletableFuture callbacks have now the correct extension class loader set to ensure access to HiveMQ services and builders #102
- Improved extension task queue to prevent unwanted behavior when the task queue limit is exceeded #68
- Will messages are now correctly sent for all disconnect reason codes other than a normal disconnect #118
- Improved listing of interceptors to ensure accurate handling when multiple interceptors are implemented in the same class #133
- All restriction values are now validated at broker start #77
- HiveMQ home folder can now contain whitespaces #81
- Connack reason code BAD_USERNAME_OR_PASSWORD is now correctly mapped #120 #119
- Building a RetainedPublish from a Publish now works in all cases #104 #103
â ī¸ Behavioral changes
- Default authentication behavior change:
HiveMQ CE 2020.1 only allows MQTT clients to connect if a security extension is present. For testing purposes, HiveMQ includes a hivemq-allow-all-extension (#142) that authorizes all MQTT clients to connect to HiveMQ. For proper authentication and authorization, you must add an appropriate security extension and remove the hivemq-allow-all-extension. You can download security extensions from the HiveMQ Marketplace or develop your own security extension.
âšī¸ Misc
- Distributions
- Updated netty to 4.1.45.Final #138
- Code cleanup
- Improved build
â¤ī¸ Thanks to all contributors
- @cihanucar
- @dobermai
- @Florian-Limpoeck
- @fraschbi
- @iskerrett
- @LBrandl
- @michaelg9
- @MicWalter
- @RobinAtherton
- @sauroter
- @sbaier1
- @schaebo
- @SgtSilvio
- @YannickWeber
- Also thanks to all code reviewers and all who created valuable issues