The jar file is in the package. In the lib folder of the zip archive.
Charlie
We do not distribute the source for this module. You can create a class that implements the IAuthenticateUsernamePasswordProvider interface and it will intercept the authentication events. First, install the latest patch:
https://www.wowza.com/devbuild.html
Then take a look at this forum post. It explains the basics.
Charlie
Hi all -
The User guide for the Media Security package indicates this URL shows how to setup JW Player, but the link is broken:
https://www.wowza.com/forums/showthread.php?t=1665
I couldn’t find it in a search.
The documentation for version 2.0 says:
ModuleSecureToken
ModuleSecureToken
com.wowza.wms.plugin.security.ModuleSecureToken
But the file inside the “lib” folder is called “wms.plugin.security.jar”. Is there a different file to look for.
When I try to use secure connection on the server its coming up with these errors:
Missing function: FCPublish
WARN server comment 2010-01-23 00:22:45 - - - - - 149.38 - - - - - - - Missing function: createStream
WARN server comment 2010-01-23 00:22:56 - - - - - 159.633 - - - - - - - Missing function: deleteStream
WARN server comment 2010-01-23 00:22:59 - - - - - 162.57 - - - - - - - Missing function: releaseStream
WARN server comment 2010-01-23 00:22:59 - - - - - 162.57 - - - - - - - Missing function: FCPublish
WARN server comment 2010-01-23 00:22:59 - - - - - 162.571 - - - - - - - Missing function: createStream
Not sure what that means.
Thanks for any help
Hi guys,
I’ve been having problems with the security settings since day one so I’m back to basics. I’m just trying to use ModuleRTMPAuthenticate so nobody else can stream into my server.
I’ve followed every step in the guide and I can still stream from Wirecast without credentials. I’m working with the live application to record my streams to my S3 bucket. Here’s my current conf/live/Application.xml:
<Root>
<Application>
<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-record</StreamType>
<StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir>
<KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
<!-- LiveStreamPacketizers (separate with commas): cupertinostreamingpacketizer, smoothstreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater -->
<LiveStreamPacketizers>smoothstreamingpacketizer,cupertinostreamingpacketizer</LiveStreamPacketizers>
<!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
<Properties>
</Properties>
</Streams>
<!-- HTTPStreamers (separate with commas): cupertinostreaming, smoothstreaming -->
<HTTPStreamers>cupertinostreaming,smoothstreaming</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>
</Properties>
</RTP>
<MediaCaster>
<Properties>
</Properties>
</MediaCaster>
<MediaReader>
<Properties>
</Properties>
</MediaReader>
<MediaWriter>
<Properties>
</Properties>
</MediaWriter>
<LiveStreamPacketizer>
<Properties>
</Properties>
</LiveStreamPacketizer>
<HTTPStreamer>
<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>ModuleRTMPAuthenticate</Name>
<Description>ModuleRTMPAuthenticate</Description>
<Class>com.wowza.wms.plugin.security.ModuleRTMPAuthenticate</Class>
</Module>
<Module>
<Name>ModuleMediaWriterFileMover</Name>
<Description>ModuleMediaWriterFileMover</Description>
<Class>com.wowza.wms.module.ModuleMediaWriterFileMover</Class>
</Module>
</Modules>
<Properties>
<Property>
<Name>fileMoverDestinationPath</Name>
<Value>/mnt/s3</Value>
</Property>
<Property>
<Name>fileMoverDeleteOriginal</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>fileMoverVersionFile</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
</Properties>
</Application>
</Root>
I’ve tried none, basic and digest for PublishMethod and the video gets streamed/recorded no matter what. What can be the problem?
I have a similar problem if I try to use (in a clean application) the ModuleRequireSecureConnection. I can stream with both RTMP and RTMPE. Is it possible that I have to “turn on” these modules in my Wowza Server somewhere else? Simply adding them to my Application.xml doesn’t seem to affect anything at all.
BTW I did put a new username and password in the publish.password file.
Any thoughts?
Thanks
Are you connecting using RTMPE? This is required if you have requireSecureConnection set.
Charlie
It is in the packaged referenced in the first post.
Charlie
That’s the right jar file for that Module.
The errors indicate the Application.xml is malformed, something is out of place. If you can’t spot it, just start over with a new copy from /conf/Application.xml
Richard
A jar file might have any number of Classes inside, the name is not going to indicate what those are.
You don’t need ModuleSecureToken because you already have the ModuleRTMPAuthentication, which includes SecureToken.
Refer to the ModuleRTMPAuthentication section of Security Addon guide.
Richard
With requireSecureConnection you need to use rtmpe protocol in the player.
rtmpe://[wowza-address]/live
Richard
Right, that’s still just malformed Application.xml
If you can’t see the problem, it’s best to get a new copy and start over.
Richard
If you use a new copy and remake your changes it will fix it. Try it.
Richard
I put it in an xml validator:
And I think the problem might be your secret token, the ampersand maybe. Take out the secret token completely, see if that fixes it, then try a new one token, don’t use ampersand.
Richard
When I try it in LiveVideoStreaming example player, the message is “Application rejected connection”. Check the doConnect token.
Try getting it to work in the example player first.
Richard
You have the requireSecureConnection Property set to “true”, so you have to use a secure protocol like rtmpe (or rtmps or rtmpte).
rtmpe://destinyradiotv.org/live
This working for me on the example player. SecureToken is still not setup, or SecureURLParams connect. (SecureToken is better, use that.)
You can add SecureToken to the example player. Look for the NetConnection.Connect.Success notification and add this
if (infoObject.info.code == "NetConnection.Connect.Success")
{
[B]if (infoObject.info.secureToken != undefined) //<--- SecureToken change here - respond with decoded secureToken
{
var secureResult:Object = new Object();
secureResult.onResult = function(isSuccessful:Boolean):void
{
trace("secureTokenResponse: "+isSuccessful);
}
nc.call("secureTokenResponse", new Responder(secureResult.onResult), TEA.decrypt(infoObject.info.secureToken, "sharedSecret"));
}[/B]
}
Richard
Also, copy examples/LiveVideoStreaming/clientFlex/src/com to examples/LiveVideoStreaming/client and add import to Actionscript:
import com.meychi.ascrypt.TEA;
Richard
You recompiled in Flash CS3 or CS4? Were there errors when you did so? Did you debug in Flash CS3? Sounds like there is an error in the Actionscript.
Richard
Does the player come up when you debug?
Richard
I am asking if the player appears in Flash CS3 or CS4 when you you select Debug > Debug Movie from the menu.
Richard