Publish securely from an RTMP encoder that does not support authentication with a Wowza Streaming Engine Java module

This article describes how to use the ModuleSecureURLParams module as an alternative to the ModuleRTMPAuthenticate module in Wowza Streaming Engine™ media server software if your encoder does not support username/password authentication.

Notes:
  • The modules described in this article are built-in with Wowza Streaming Engine and Wowza Media Server version 3.5 and later. 
  • You can't use ModuleSecureURLParams and ModuleRTMPAuthenticate at the same time.

Configuration

The steps to create a live application are:
 
  1. Create the folder [install-dir]/applications/live.
     
  2. Create the folder [install-dir]/conf/live and copy [install-dir]/conf/Application.xml to this new folder.
     
  3. Open the newly copied Application.xml file in a text editor and change the Streams/StreamType value to live.
     
  4. In Application.xml, add the following <Module> definition as the last entry in the <Modules> list:
    <Module>
    	<Name>ModuleSecureURLParams</Name>
    	<Description>ModuleSecureURLParams</Description>
    	<Class>com.wowza.wms.security.ModuleSecureURLParams</Class>
    </Module>

    If you're running Wowza Media Server 3.1.2 or earlier, add the following <Module> definition as the last entry in the <Modules> list instead:
    <Module>
    	<Name>ModuleSecureURLParams</Name>
    	<Description>ModuleSecureURLParams</Description>
    	<Class>com.wowza.wms.plugin.security.ModuleSecureURLParams</Class>
    </Module>
  5. To protect publishing, add the following property to the application-level properties at the bottom of the Application.xml file (be sure to get the correct <Properties> container - there are several in the file).
    <Property>
    	<Name>secureurlparams.publish</Name>
    	<Value>12345.doPublish</Value>
    </Property>

    Now you must use an RTMP connection in your encoder. For example:

    rtmp://[wowza-address]:1935/live/_definst_/doPublish=12345

Now you must use the RTMPE (rtmpe://) or RTMPS (rtmps://) protocol to play all content.