# RTMP Authentication

**URL:** <https://community.wowza.com/t/rtmp-authentication/37431>\
**Category:** Wowza Developer Dojo\
**Tags:** wowza-streaming-server-java-api\
**Created:** [October 14, 2011, 2:41pm UTC](https://community.wowza.com/t/rtmp-authentication/37431 "2011-10-14T14:41:31Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jhonathan\_Espinosa](https://avatars.discourse-cdn.com/v4/letter/j/59ef9b/32.png) [@Jhonathan\_Espinosa](https://community.wowza.com/u/Jhonathan_Espinosa)\
**Post date:** [October 14, 2011, 2:41pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/1 "2011-10-14T14:41:31Z")

</div>

Hi all,

How I can request authentication from the Encoder?

Regards,

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [October 14, 2011, 7:49pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/2 "2011-10-14T19:49:38Z")

</div>

Use ModuleRTMPAuthenticate in the Security Addon:

[https://www.wowza.com/docs/media-security-overview](https://www.wowza.com/docs/media-security-overview))

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [October 14, 2011, 8:07pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/3 "2011-10-14T20:07:58Z")

</div>

Install the Wowza IDE [Wowza IDE](http://wowza.com/ide.html) and refer to the User Guide to get started. And there are many examples to help you get started:

[https://www.wowza.com/docs/wowza-streaming-engine-java-api](https://www.wowza.com/docs/wowza-streaming-engine-java-api)

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [October 14, 2011, 8:10pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/4 "2011-10-14T20:10:23Z")

</div>

I think you mean from FMLE. Take a look at this example:

[https://www.wowza.com/docs/how-to-integrate-wowza-user-authentication-with-external-authentication-systems-modulertmpauthenticate](https://www.wowza.com/docs/how-to-integrate-wowza-user-authentication-with-external-authentication-systems-modulertmpauthenticate)

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [November 21, 2011, 8:58pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/5 "2011-11-21T20:58:39Z")

</div>

Use ModuleRTMPAuthenticate in the Security Addon:

[https://www.wowza.com/docs/media-security-overview](https://www.wowza.com/docs/media-security-overview)

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [November 21, 2011, 9:55pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/6 "2011-11-21T21:55:31Z")

</div>

You just need ModuleRTMPAuthenticate in the Security Addon to get the login challenge in FMLE

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [November 21, 2011, 10:11pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/7 "2011-11-21T22:11:39Z")

</div>

Use this along with ModuleRTMPAuthenticate:

[https://www.wowza.com/docs/how-to-integrate-wowza-user-authentication-with-external-authentication-systems-modulertmpauthenticate](https://www.wowza.com/docs/how-to-integrate-wowza-user-authentication-with-external-authentication-systems-modulertmpauthenticate)

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [November 21, 2011, 10:52pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/8 "2011-11-21T22:52:46Z")

</div>

It doesn’t matter what order a Property is in a Properties list

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [December 1, 2011, 10:51pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/9 "2011-12-01T22:51:57Z")

</div>

Show us /conf/lives/Application.xml.

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [December 1, 2011, 11:09pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/10 "2011-12-01T23:09:11Z")

</div>

The Module /Class has path but no class name. See if this works:

```auto
<Module>
	<Name>Prueba_MySQL</Name>
	<Description>Prueba_MySQL</Description>
	<Class>com.wms.cehis.module.mysql5.Prueba_MySQL</Class>
</Module>

```

Restart Wowza to ensure that you reload the application.

Richard

---

<div class="post-metadata">

**Author:** ![Jhonathan\_Espinosa](https://avatars.discourse-cdn.com/v4/letter/j/59ef9b/32.png) [@Jhonathan\_Espinosa](https://community.wowza.com/u/Jhonathan_Espinosa)\
**Post date:** [October 14, 2011, 2:56pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/11 "2011-10-14T14:56:02Z")

</div>

Tanks Richard

please,

What is the method to modify if I want to customize my application?

---

<div class="post-metadata">

**Author:** ![Jhonathan\_Espinosa](https://avatars.discourse-cdn.com/v4/letter/j/59ef9b/32.png) [@Jhonathan\_Espinosa](https://community.wowza.com/u/Jhonathan_Espinosa)\
**Post date:** [October 14, 2011, 3:00pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/12 "2011-10-14T15:00:44Z")

</div>

At the moment I am developing an application to manage my Streams, I want the login validate my users to a MySQL database, that part I have it developed through the Wowza IDE, however I have not able to develop to request the username and password from the FMS

---

<div class="post-metadata">

**Author:** ![Jhonathan\_Espinosa](https://avatars.discourse-cdn.com/v4/letter/j/59ef9b/32.png) [@Jhonathan\_Espinosa](https://community.wowza.com/u/Jhonathan_Espinosa)\
**Post date:** [October 14, 2011, 3:19pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/13 "2011-10-14T15:19:54Z")

</div>

Thanks so much

---

<div class="post-metadata">

**Author:** ![Katerin\_Bolanos](https://avatars.discourse-cdn.com/v4/letter/k/cab0a1/32.png) [@Katerin\_Bolanos](https://community.wowza.com/u/Katerin_Bolanos)\
**Post date:** [November 21, 2011, 12:33pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/14 "2011-11-21T12:33:15Z")

</div>

Hi!!!

What is the syntax to bring up this window and how I can capture the parameters entering me there?

[http://bronco.cehis.net/imagenes/FMLE.png](http://bronco.cehis.net/imagenes/FMLE.png)

I want to make my custom security module.

Thanks

---

<div class="post-metadata">

**Author:** ![Katerin\_Bolanos](https://avatars.discourse-cdn.com/v4/letter/k/cab0a1/32.png) [@Katerin\_Bolanos](https://community.wowza.com/u/Katerin_Bolanos)\
**Post date:** [November 21, 2011, 1:52pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/15 "2011-11-21T13:52:24Z")

</div>

I was looking at this page:

[https://www.wowza.com/docs/how-to-integrate-wowza-user-authentication-with-external-authentication-systems-modulertmpauthenticate](https://www.wowza.com/docs/how-to-integrate-wowza-user-authentication-with-external-authentication-systems-modulertmpauthenticate)

but I can’t to runnig the example, I do not know if I am putting good step 5,

There any downloadable or tests to compare and debug my code?

Thanks

---

<div class="post-metadata">

**Author:** ![Katerin\_Bolanos](https://avatars.discourse-cdn.com/v4/letter/k/cab0a1/32.png) [@Katerin\_Bolanos](https://community.wowza.com/u/Katerin_Bolanos)\
**Post date:** [November 21, 2011, 2:09pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/16 "2011-11-21T14:09:46Z")

</div>

Thanks, Richard

The Login is good,

The parameters FMLE request for login without problem.

The problem is that it does not execute any query to MySQL, and JDBC are properly configured.

It’s as if they were reading the property.

With regard to the code, all I did was copy and paste into my Wowza IDE, and add the parameters in the Aplicattion.xml.

---

<div class="post-metadata">

**Author:** ![Katerin\_Bolanos](https://avatars.discourse-cdn.com/v4/letter/k/cab0a1/32.png) [@Katerin\_Bolanos](https://community.wowza.com/u/Katerin_Bolanos)\
**Post date:** [November 21, 2011, 2:46pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/17 "2011-11-21T14:46:31Z")

</div>

This is the Example that I am follow,

But when you say “Add this Property to the /conf/[app-name]/Application.xml /Properties list” What is the position in which I include that property.

Specifically, what is the order?

Thanks

---

<div class="post-metadata">

**Author:** ![Katerin\_Bolanos](https://avatars.discourse-cdn.com/v4/letter/k/cab0a1/32.png) [@Katerin\_Bolanos](https://community.wowza.com/u/Katerin_Bolanos)\
**Post date:** [December 1, 2011, 2:46pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/18 "2011-12-01T14:46:50Z")

</div>

I followed all the steps in this link:

> **[Integrate user authentication with external systems](https://www.wowza.com/docs/how-to-integrate-wowza-user-authentication-with-external-authentication-systems-modulertmpauthenticate)**
>
> Use the ModuleCoreSecurity module to intercept requests for username and password to use a database instead of a password file to authenticate encoders with Wowza Streaming Engine.

however, when I restart the Wowza server, printed a message that says:

> INFO server comment - Wowza Media Server is started!
> 
> WARN server comment - loadModFunctions[lives/_definst_]: Module class not found or could not be loaded. Check [install-dir]/conf/lives/Application.xml to be sure all Modules/Module/Class paths are correct: name:Prueba\_MySQL class:com.wms.cehis.module.mysql5
> 
> INFO server comment - ModuleRTMPAuthenticate.onAppStart: SecureToken is off
> 
> INFO server comment - ModuleRTMPAuthenticate.onAppStart: Authorization password file: /usr/local/WowzaMediaServer/conf/publish.password
> 
> I have checked the paths and syntax and all is well …
> 
> I do not know what to do.
> 
> Thanks…

---

<div class="post-metadata">

**Author:** ![Katerin\_Bolanos](https://avatars.discourse-cdn.com/v4/letter/k/cab0a1/32.png) [@Katerin\_Bolanos](https://community.wowza.com/u/Katerin_Bolanos)\
**Post date:** [December 1, 2011, 2:55pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/19 "2011-12-01T14:55:36Z")

</div>

```auto
<Root>
	<Application>
		<!-- Uncomment to set application level timeout values
		<ApplicationTimeout>60000</ApplicationTimeout>
		<PingTimeout>12000</PingTimeout>
		<ValidationFrequency>8000</ValidationFrequency>
		<MaximumPendingWriteBytes>0</MaximumPendingWriteBytes>
		<MaximumSetBufferTime>60000</MaximumSetBufferTime>
		<MaximumStorageDirDepth>25</MaximumStorageDirDepth>
		-->
		<Connections>
			<AutoAccept>true</AutoAccept>
			<AllowDomains></AllowDomains>
		</Connections>
		<!--
			StorageDir path variables
			
			${com.wowza.wms.AppHome} - Application home directory
			${com.wowza.wms.ConfigHome} - Configuration home directory
			${com.wowza.wms.context.VHost} - Virtual host name
			${com.wowza.wms.context.VHostConfigHome} - Virtual host config directory
			${com.wowza.wms.context.Application} - Application name
			${com.wowza.wms.context.ApplicationInstance} - Application instance name
			
		-->
		<Streams>
			<StreamType>live</StreamType>
			<StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir>
			<KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
			<!-- LiveStreamPacketizers (separate with commas): cupertinostreamingpacketizer, smoothstreamingpacketizer, sanjosestreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater, sanjosestreamingrepeater -->
			<LiveStreamPacketizers>cupertinostreamingpacketizer,smoothstreamingpacketizer,sanjosestreamingpacketizer</LiveStreamPacketizers>			
			<!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
			<Properties>
			</Properties>
		</Streams>
		<Transcoder>
			<!-- To turn on transcoder set to: transcoder -->
			<LiveStreamTranscoder></LiveStreamTranscoder>
			<!-- [templatename].xml or ${SourceStreamName}.xml -->
			<Templates>${SourceStreamName}.xml,transrate.xml</Templates>
			<ProfileDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/profiles</ProfileDir>
			<TemplateDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/templates</TemplateDir>
			<Properties>
			</Properties>
		</Transcoder>
		<DVR>
			<!-- As a single server or as an origin, use dvrstreamingpacketizer in LiveStreamPacketizers above -->
			<!-- Or, in an origin-edge configuration, edges use dvrstreamingrepeater in LiveStreamPacketizers above -->
			<!-- As an origin, also add dvrchunkstreaming to HTTPStreamers below -->
			<!-- To turn on DVR recording set Recorders to dvrrecorder. This works with dvrstreamingpacketizer -->
			<Recorders></Recorders>
			<!-- As a single server or as an origin, set the Store to dvrfilestorage-->
			<!-- edges should have this empty --> -->
			<Store></Store>
			<!-- Window Duration is length of live DVR window in seconds. 0 means the window is never trimmed. -->
			<WindowDuration>0</WindowDuration>
			<!-- Storage Directory is top level location where dvr is stored. e.g. c:/temp/dvr -->
			<StorageDir>${com.wowza.wms.context.VHostConfigHome}/dvr</StorageDir>
			<!-- valid ArchiveStrategy values are append, version, delete -->
			<ArchiveStrategy>append</ArchiveStrategy>
			<!-- If this is a dvrstreamingrepeater, define ChunkOriginURL to point back to origin -->
			<!-- And define Application/Repeater/OriginURL to point back to the origin -->
			<Repeater>
				<ChunkOriginURL></ChunkOriginURL>
			</Repeater>
			<!-- Properties for DVR -->
			<Properties>
			</Properties>
		</DVR>
		<!-- HTTPStreamers (separate with commas): cupertinostreaming, smoothstreaming, sanjosestreaming, dvrchunkstreaming -->
		<HTTPStreamers>cupertinostreaming,smoothstreaming,sanjosestreaming</HTTPStreamers>			
		<SharedObjects>
			<StorageDir></StorageDir>
		</SharedObjects>
		<Client>
			<IdleFrequency>-1</IdleFrequency>
			<Access>
				<StreamReadAccess>*</StreamReadAccess>
				<StreamWriteAccess>*</StreamWriteAccess>
				<StreamAudioSampleAccess></StreamAudioSampleAccess>
				<StreamVideoSampleAccess></StreamVideoSampleAccess>
				<SharedObjectReadAccess>*</SharedObjectReadAccess>
				<SharedObjectWriteAccess>*</SharedObjectWriteAccess>
			</Access>
		</Client>
		<RTP>
			<!-- RTP/Authentication/[type]Methods defined in Authentication.xml. Default setup includes; none, basic, digest -->
			<Authentication>
				<PublishMethod>digest</PublishMethod>
				<PlayMethod>none</PlayMethod>
			</Authentication>
			<!-- RTP/AVSyncMethod. Valid values are: senderreport, systemclock, rtptimecode -->
			<AVSyncMethod>senderreport</AVSyncMethod>
			<MaxRTCPWaitTime>12000</MaxRTCPWaitTime>
			<IdleFrequency>75</IdleFrequency>
			<RTSPSessionTimeout>90000</RTSPSessionTimeout>
			<RTSPMaximumPendingWriteBytes>0</RTSPMaximumPendingWriteBytes>
			<RTSPBindIpAddress></RTSPBindIpAddress>
			<RTSPConnectionIpAddress>0.0.0.0</RTSPConnectionIpAddress>
			<RTSPOriginIpAddress>127.0.0.1</RTSPOriginIpAddress>
			<IncomingDatagramPortRanges>*</IncomingDatagramPortRanges>
			<!-- Properties defined here will override any properties defined in conf/RTP.xml for any depacketizers loaded by this application -->
			<Properties>
				<Property>
					<Name>usernamePasswordProviderClass</Name>
					<Value>com.wms.cehis.module.mysql5.mysql5</Value>
				</Property>
			</Properties>
		</RTP>
		<MediaCaster>
			<!-- Properties defined here will override any properties defined in conf/MediaCasters.xml for any MediaCasters loaded by this applications -->
			<Properties>
				<Property>
				    <Name>forceInterleaved</Name>
				    <Value>true</Value>
				    <Type>Boolean</Type>
				</Property>			
			</Properties>
		</MediaCaster>
		<MediaReader>
			<!-- Properties defined here will override any properties defined in conf/MediaReaders.xml for any MediaReaders loaded by this applications -->
			<Properties>
			</Properties>
		</MediaReader>
		<MediaWriter>
			<!-- Properties defined here will override any properties defined in conf/MediaWriter.xml for any MediaWriter loaded by this applications -->
			<Properties>
			</Properties>
		</MediaWriter>
		<LiveStreamPacketizer>
			<!-- Properties defined here will override any properties defined in conf/LiveStreamPacketizers.xml for any LiveStreamPacketizers loaded by this applications -->
			<Properties>
			</Properties>
		</LiveStreamPacketizer>
		<HTTPStreamer>
			<!-- Properties defined here will override any properties defined in conf/HTTPStreamers.xml for any HTTPStreamer loaded by this applications -->
			<Properties>
			</Properties>
		</HTTPStreamer>
		<Repeater>
			<OriginURL></OriginURL>
			<QueryString><![CDATA[]]></QueryString>
		</Repeater> 
		<Modules>
			<Module>
				<Name>base</Name>
				<Description>Base</Description>
				<Class>com.wowza.wms.module.ModuleCore</Class>
			</Module>
			<Module>
				<Name>properties</Name>
				<Description>Properties</Description>
				<Class>com.wowza.wms.module.ModuleProperties</Class>
			</Module>
			<Module>
				<Name>logging</Name>
				<Description>Client Logging</Description>
				<Class>com.wowza.wms.module.ModuleClientLogging</Class>
			</Module>
			<Module>
				<Name>flvplayback</Name>
				<Description>FLVPlayback</Description>
				<Class>com.wowza.wms.module.ModuleFLVPlayback</Class>
			</Module>
			<Module>
				<Name>Prueba_MySQL</Name>
				<Description>Prueba_MySQL</Description>
				<Class>com.wms.cehis.module.mysql5</Class>
			</Module>
			<Module>
				<Name>ModuleRTMPAuthenticate</Name>
				<Description>ModuleRTMPAuthenticate</Description>
				<Class>com.wowza.wms.plugin.security.ModuleRTMPAuthenticate</Class>
			</Module>
		</Modules>
		<!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
		<Properties>
		</Properties>
	</Application>
</Root>

```

---

<div class="post-metadata">

**Author:** ![Katerin\_Bolanos](https://avatars.discourse-cdn.com/v4/letter/k/cab0a1/32.png) [@Katerin\_Bolanos](https://community.wowza.com/u/Katerin_Bolanos)\
**Post date:** [December 1, 2011, 3:16pm UTC](https://community.wowza.com/t/rtmp-authentication/37431/20 "2011-12-01T15:16:22Z")

</div>

Sorry, the problem in the last code was when I try to connect with my FMLE the validation of the User and password makes with the publish.password file, I want the validation with a MySQL database.

Thanks

[Next page](https://community.wowza.com/t/rtmp-authentication/37431.md?page=2)
