{"id":26475472,"url":"https://github.com/opencast/wowza-stream-security","last_synced_at":"2026-04-15T07:33:38.344Z","repository":{"id":147994910,"uuid":"269197628","full_name":"opencast/wowza-stream-security","owner":"opencast","description":"Wowza Stream Security Plugin","archived":false,"fork":false,"pushed_at":"2020-06-16T03:33:56.000Z","size":525,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-09T21:10:27.050Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"ecl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opencast.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-06-03T21:23:47.000Z","updated_at":"2021-05-30T10:55:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"b5689319-d60b-4751-a519-87a978461365","html_url":"https://github.com/opencast/wowza-stream-security","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/opencast/wowza-stream-security","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencast%2Fwowza-stream-security","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencast%2Fwowza-stream-security/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencast%2Fwowza-stream-security/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencast%2Fwowza-stream-security/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opencast","download_url":"https://codeload.github.com/opencast/wowza-stream-security/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencast%2Fwowza-stream-security/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279477961,"owners_count":26176931,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-18T02:00:06.492Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-19T23:17:14.725Z","updated_at":"2025-10-18T06:23:22.278Z","avatar_url":"https://github.com/opencast.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wowza Stream Security Verification Component\n\nThis plugin brings Opencast Stream Security to the Wowza Media Server. More information about Opencast Stream Security can be found in the [Opencast Administration Guide](http://docs.opencast.org/develop/admin/)\n\n## Install Wowza\nYou need to install [Wowza Streaming Engine](https://www.wowza.com/pricing/installer) on the machine where you want to build the Wowza Stream Security module. This module is tested with Wowza 4.5+. You can use a free trial or developer version to build this module. In fact, as we are onlylinking the libraries from Wowza and do not need to start the software, Wowza does not even have to be registered.\n\nPlease follow the installation instructions from Wowza.\n\nUsually Wowza should now be installed to `/usr/local/WowzaStreamingEngine`.\n\n## Install Wowza Stream Security Component\nThe Wowza Stream Security component is based on Java. Compiling it is therefore very similar to compiling Opencast. Note that in order to build the Wowza component, dependencies will be linked from an online Nexus repo or your local M2_REPO if it contains the dependencies already. If you are not running an Opencast release version that is provided by the nexus, you have to build Opencast first on your local machine.\n\nCheck out the Wowza Stream Security code first. \n\n    git clone https://bitbucket.org/opencast-community/wowza-stream-security-plugin.git\n    cd wowza-stream-security-plugin\n\nYou need to have a Java build environment with JDK and Maven on your machine. If have this already you can skip these steps!\n\n    yum install git java-1.8.0-openjdk java-1.8.0-openjdk-devel\n    cd /opt\n    wget http://apache.sunsite.ualberta.ca/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz\n    tar -xvf apache-maven-3.3.3-bin.tar.gz\n    export PATH=/opt/apache-maven-3.3.3/bin:$PATH\n\nBuild and Install the Wowza Stream Security Component\n\n    mvn clean install -Dopencast.version=\u003cyour opencast version\u003e [-Dpackage.dir=\u003coutput directory\u003e] [-Dwowza.path=\u003cpath to your Wowza installation\u003e]\n\n* `-Dopencast.version` specifies the Opencast version that you are using. Make sure this version matches to the Opencast version that you are using (i.e. `-Dopencast.version=4.2`)\n* `-Dpackage.dir` specifies the output directory for the build plugin. This parameter is optionally, with predefined value of `${project.basedir}/build/`\n* `-Dwowza.path` specifies the path to your local Wowza installation. If you installed Wowza to the default path you do not need to set this.\n\n# Install Plugin\nThe build module and all the dependencies will be copied to the output directory you specified with `package.dir` parameter or per default to the `build` directory. Next you have to copy the jar files from the output to Wowza lib directory, default path `/usr/local/WowzaStreamingEngine/lib`.\n\n    cp build/*.jar /usr/local/WowzaStreamingEngine/lib/\n\n## Configuration of Wowza\nYou can use the Wowza Engine Manager on http://localhost:8088 to setup the Opencast Application.\n\nSelect \"Applications\" from the main menu and click on VOD (Video On Demand).\n\n![new application](/img/add_application.png)\n\nThen enter a name for you application, i.e. \"opencast\".\n\n![new application dialog](/img/add_application2.png)\n\nWithin the setup details of the application it is recommended to deactivate all unsupported \"Playback Types\" and only activate MPEG-DASH, Apple HLS and Adobe RTMP.\nYou also need to set the content directory to the `org.opencastproject.streaming.directory` defined in the Opencast configuration.\n\n![application setup](/img/application_details.png)\n\nNow you need to add an addition module to your application. Open the \"Modules\" tab, choose \"Edit\" and \"+ Add Module ...\" \n\n![module section](/img/application_modules.png)\n\nThe new module needs these settings:\n\n* **Name**: StreamSecurity\n* **Description**: Opencast Stream Security Module\n* **Fully Qualified Class Name**: org.opencastproject.wowza.StreamSecurityWowzaPlugin\n\n![new module](/img/application_modules_new.png)\n\nNow you need to save these settings and restart the application.\n\n![module overview](/img/application_modules_edit.png)\n\n![restart](/img/restart.png)\n\n\n\nThe signing keys and secrets have to be configured in a separate file named **streamsecurity.properties** which must be placed inside Wowza’s configuration directory (usually `/usr/local/WowzaStreamingEngine/conf`). \n\nThe file simply contains a collection of key-value pairs, one per line:\n\n    demoKeyOne=6EDB5EDDCF994B7432C371D7C274F\n    demoKeyTwo=C843C21ECF59F2B38872A1BCAA774\n\nAs with the HTTPd component, the entries in this file need to have the same values as used for the Signing Providers configuration.\n\n## Configuration for HLS and Dash\n\nURLs can be whitelisted by defining regular expressions in a file called pugin.properties, which will also have to be placed in the Wowza's configuration directory. URLs matching this pattern will not be checked for a correct signature. The patterns will be defined in the file in the following way:\n\n\twhitelist.\u003cname\u003e=\u003cpattern\u003e\n\nThis can be used to whitelist the segment URLs for HLS and Dash streaming since they are often not signed correctly or not signed at all. Example:\n\n\twhitelist.hls=.*media_.*\\.ts.*\n\twhitelist.hls2=.*chunklist_.*\\.m3u8.*\n\twhitelist.mpd=.*segment_.*\\.m4s.*\n\n## Configuration of Opencast\n\nTo secure the RTMP links the `$OPENCAST_HOME/etc/org.opencastproject.security.urlsigning.provider.impl.WowzaUrlSigningProvider.cfg` has to be adjusted:\n\n    id.1=demoKeyOne\n    key.1=6EDB5EDDCF994B7432C371D7C274F\n    url.1=rtmp\n\n\nBut as the adaptive streaming URLs are HTTP links you have to use the `$OPENCAST_HOME/etc/org.opencastproject.security.urlsigning.provider.impl.GenericUrlSigningProvider.cfg` configuration to secure these links:\n\n    id.2=demoKeyOne\n    key.2=6EDB5EDDCF994B7432C371D7C274F\n    url.2=http://localhost:1935/secure\n    organization.2=mh_default_org\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopencast%2Fwowza-stream-security","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopencast%2Fwowza-stream-security","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopencast%2Fwowza-stream-security/lists"}