Skip to main content
mango
Silver ⭐️⭐️
November 3, 2023
Solved

NIFI ListenUDP with TLS support?

Hi there,

We've been using Nifi for awhile in our projects, mostly using Kafka and AMQP Client processors for receiving data; but recently a request came up for UDP, specifically DTLS (Datagram transport Layer Security).

Looking at the existing UDP Client Processors, it appears that DTLS is not supported; or at least it's not clear for us how to do it. Is that correct?

Are there any alternatives then? Maybe creating a custom ListenDTLS processor based on the existing ListenUDP? Could that work?

Best regards

steven-matison
Platinum ⭐️⭐️
November 28, 2023

@mango @joseomjr  Currently DTLS not supported with ListenUDP.

You certainly can build your own processor or work on a version of ListenUDP that includes the necessary code changes.  Additionally it may be worth taking a look at the new python native capability in NiFi 2.0.   

8 replies

DianaTorres
Community Manager
Community Manager
November 4, 2023

@mango Welcome to the Cloudera Community!

To help you get the best possible solution, I have tagged our NiFi experts @steven-matison @SAMSAL  who may be able to assist you further.

Please keep us updated on your post, and we hope you find a satisfactory solution to your query.

Translate
Regards, Diana Torres, Senior Community Moderator
DianaTorres
Community Manager
Community Manager
November 13, 2023

@MattWho Do you have any insights here? Thanks!

Translate
Regards, Diana Torres, Senior Community Moderator
joseomjr
Gold ⭐️⭐️
November 21, 2023

A quick Google search shows it's possible to build a DTLS server (Listener) with Java which means it might be possible to create a custom Groovy based processor to implement it.

Translate
mango
mangoAuthor
Silver ⭐️⭐️
November 29, 2023

Thanks @joseomjr and @steven-matison  for confirming it. That was our initial conclusion.

We checked the ListenUDP Processor source code, and it looks like we could adapt it, and create a new implementation for the org.apache.nifi.processor.util.listen.dispatcher.ChannelDispatcher interface; replacing the existing implementation (org.apache.nifi.processor.util.listen.dispatcher.DatagramChannelDispatcher).

On the other hand, we are also looking at the possibility to use CoAP instead, and completely rewrite that Processor, but it also depends on our clients that will interact with it.

Many thanks again. 

Translate
DianaTorres
Community Manager
Community Manager
November 28, 2023

@mango Has the reply helped resolve your issue? If so, please mark the appropriate reply as the solution, as it will make it easier for others to find the answer in the future. Thanks.

Translate
Regards, Diana Torres, Senior Community Moderator
steven-matison
Platinum ⭐️⭐️
Platinum ⭐️⭐️
November 28, 2023

@mango @joseomjr  Currently DTLS not supported with ListenUDP.

You certainly can build your own processor or work on a version of ListenUDP that includes the necessary code changes.  Additionally it may be worth taking a look at the new python native capability in NiFi 2.0.   

Translate
mango
mangoAuthor
Silver ⭐️⭐️
November 29, 2023

@steven-matison can you provide more details on that suggestion regarding DTLS? (python native capabilities in Nifi 2.0). 

Translate
steven-matison
Platinum ⭐️⭐️
Platinum ⭐️⭐️
November 29, 2023

CHeck out this link @joseomjr shared in another post:

 

https://cwiki.apache.org/confluence/display/NIFI/Release+Notes#ReleaseNotes-Version2.0.0-M1

 

And here is a great blog from Pierre Villard:  
https://medium.com/cloudera-inc/getting-ready-for-apache-nifi-2-0-5a5e6a67f450

 

 

Nifi 2.0 brings python native, where jython was very limited library set.

Translate