《Red5 用户参考手册》之十一:Red5 核心技术第四章 安全

本文介绍Red5提供的流媒体安全机制,包括流播放安全和流发布安全。通过实现特定接口,开发者能自定义安全策略,例如仅允许播放名称以'liveStream'开头的流。
官方最新《Red5 用户参考手册》全套下载地址
        本文介绍了由版本 0.6 引入的保护对流或者共享对象的访问的 Red5 API,类似于由 Client.readAccess 和 Client.writeAccess 在 Macromedia Flash Communication Server / Flash Media Server 2 所提供的那样。
         流安全
        在 Red5 里对流的读访问(播放)和写访问(发布/录制)是分开保护的。
         流播放安全
        应用如果想要限制每个用户的数据流播放或者只想提供给用户指定名的流的访问,可以使用 Red5 的 IStreamPlaybackSecurity http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamPlaybackSecurity.html  接口。
        这个接口可以由任意对象实现并在 ApplicationAdapter  http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html  中进行注册。每个应用可以使用任意数量的流安全处理程序。即使仅有一个处理程序拒绝(客户端)对流的访问,客户端都会收到一个 description 属性带有一个相应的错误信息的 NetStream.Failed 错误。

        一个仅仅允许(客户端)对名字以 liveStream 打头的流的访问的处理程序的例子如下所述:

[java]  view plain copy print ?
  1. import org.red5.server.api.IScope;   
  2. import org.red5.server.api.stream.IStreamPlaybackSecurity;   
  3.               
  4. public class NamePlaybackSecurity implements IStreamPlaybackSecurity {   
  5.               
  6.     public boolean isPlaybackAllowed(IScope scope, String name, int start,   
  7.      int length, boolean flushPlaylist) {   
  8.          if (!name.startswith("liveStream")) {   
  9.             return false;   
  10.          } else {   
  11.             return true;   
  12.          }   
  13.      };               
  14. }   

        要把这个处理程序注册到应用中,应该在 appStart 方法里添加以下代码:

[java]  view plain copy print ?
  1. registerStreamPlaybackSecurity(new NamePlaybackSecurity());   

        Red5 含有一个实例处理程序,它拒绝所有对流的访问(DenyAllStreamAccess  http://dl.fancycode.com/red5/api/org/red5/server/api/stream/support/DenyAllStreamAccess.html )。
         流发布安全
        在大多数允许用户发布和/或者录制流的应用里,必须对这一访问(写访问)进行限制以防止服务器被滥用。因此,Red5 提供了接口 IStreamPublishSecurity http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamPublishSecurity.html  来拒绝特定流的发布。
        就像 IStreamPlaybackSecurity  http://dl.fancycode.com/red5/api/org/red5/server/api/stream/IStreamPlaybackSecurity.html  那样,它也可以被任何对象实现并在 ApplicationAdapter  http://dl.fancycode.com/red5/api/org/red5/server/adapter/ApplicationAdapter.html  中进行注册。如果注册的处理程序之一拒绝(客户端)访问,客户端会收到一个 description 属性带有一个相应的错误信息的 NetStream.Failed 错误。
        一个只允许经过身份验证的连接发布名字以 liveStream 打头的流并拒绝其他访问的处理程序的例子如下所示:
原文链接: http://trac.red5.org/wiki/Documentation/UsersReferenceManual/Red5CoreTechnologies/04-Security
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值