- 浏览: 250915 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
zoukaiwolai:
...
Java 16进制字符串与2进制字符串相互转换 -
sooxin:
j2ee的事务对连接有自己的管理机制,包括建立和关闭。没进j2 ...
c3p0 spring 包没进事务管理,连接池就不能释放 -
sooxin:
mina 采用一种NIO通信,底层的连接机制没有具体研究过,但 ...
转 Mina框架在项目中的使用 -
tywo45:
写得很好,希望博主把格式调一下!
Tomcat性能参数设置介绍 -
freecode:
采用了cp30,项目中出现很多未关闭的连接,一直在找原因.
c3p0 spring 包没进事务管理,连接池就不能释放
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ma_yan368/archive/2008/08/01/2753383.aspx
序言
==========================
此文档描述Red5 API,介绍在0.6版中对流和/或共享对象的访问保护。类似`Client.readAccess`和`Client.writeAccess`在 Macromedia Flash Communication Server / Flash Media Server 2中所提供的作用。
流
==========================
在Red5中,读(重放)和写(发布/录制)访问到流是被分开保护的。
流重放安全
--------------------------
希望限制每个用户流的重放或者只希望提供给定名称的流的访问,可以用到IStreamPlaybackSecurity接口。
它可以被一些对象实现,并在ApplicationAdapter注册。流安全handler的一个专有数字被每个程序所支持。只要有一个handler 拒绝访问,客户端就会收到一个错误`NetStream.Failed`,它包含一个`descr iption`字段提供通讯错误信息。
一个handler例子,只允许访问以`liveStream`开始的流,描述如下:
import org.red5.server.api.IScope;
import org.red5.server.api.stream.IStreamPlaybackSecurity;
public class NamePlaybackSecurity implements IStreamPlaybackSecurity {
public boolean isPlaybackAllowed(IScope scope, String name, int start,
int length, boolean flushPlaylist) {
if (!name.startswith("liveStream")) {
return false;
} else {
return true;
}
};
}
注册这个handler到程序中,加入以下代码到`appStart`方法中:
registerStreamPlaybackSecurity(new NamePlaybackSecurity());
Red5包含了一个拒绝任何流访问的handler(DenyAllStreamAccess)
流发布安全
--------------------------
在大部分程序中,允许用户发布和/或录制流,此访问必须被限制以防止此服务被滥用。
因此,Red5提供IStreamPublishSecurity接口来拒绝某些流的发布。
类似IStreamPlaybackSecurity,它可以被一些对象实现,并在ApplicationAdapter中注册。只要一个已注册的 handler拒绝访问,客户端就会收到一个错误`NetStream.Failed`,它包含一个`desc ription`字段提供通讯错误信息。
一个handler例子,只允许被鉴别的连接发布以`liveStream`开始的实时流,并拒绝其它所有的访问。描述如下:
import org.red5.server.api.IConnection;
import org.red5.server.api.IScope;
import org.red5.server.api.Red5;
import org.red5.server.api.stream.IStreamPublishSecurity;
public class AuthNamePublishSecurity implements IStreamPublishSecurity {
public isPublishAllowed(IScope scope, String name, String mode) {
if (!"live".equals(mode)) {
// 不是一个实时流
return false;
}
IConnection conn = Red5.getConnectionLocal();
if (!"authenticated".equals(conn.getAttribute("UserType"))) {
// 用户没有被鉴别
return false;
}
if (!name.startswith("liveStream")) {
return false;
} else {
return true;
}
};
}
注册这个handler到程序中,加入以下代码到`appStart`方法中:
registerStreamPublishSecurity(new AuthNamePublishSecurity());
当然,你也可以在一个`*Connect`或`*Join`方法中加入代码来设置`UserType`属性,以使用户获得鉴别,从而能够允许发布流。
Red5包含了一个拒绝任何流访问的handler(DenyAllStreamAccess)
共享对象
==========================
一旦程序变得复杂,你可能希望控制存储在共享对象中的数据,因此不允许客户端直接修改共享对象,只能通过程序的方法来暴露。
ISharedObjectSecurity接口可以用于写handler,在给定的共享对象上拒绝某些动作,防止客户端任意的创建共享对象。
下面的例子只允许持久化共享对象`Chat`的创建。任何客户端都可以连接到它,只允许通过共享对象发送`saySomething`信息。所有到属性的写访问都被拒绝。你可以通过服务端改变属性,但是这些改变都是不被安全handler所保护的。
import java.util.List;
import org.red5.server.api.IScope;
import org.red5.server.api.so.ISharedObject;
import org.red5.server.api.so.ISharedObjectSecurity;
public class SampleSOSecurityHandler implements ISharedObjectSecurity {
public boolean isConnectionAllowed(ISharedObject so) {
// note: we don't check for the name here as only one SO can be
// created with this handler.
return true;
}
public boolean isCreationAllowed(IScope scope, String name,
boolean persistent) {
if (!"Chat".equals(name) || !persistent) {
return false;
} else {
return true;
}
}
public boolean isDeleteAllowed(ISharedObject so, String key) {
return false;
}
public boolean isSendAllowed(ISharedObject so, String message,
List arguments) {
if (!"saySomething".equals(message)) {
return false;
} else {
return true;
}
}
public boolean isWriteAllowed(ISharedObject so, String key,
Object value) {
return false;
}
}
注册这个handler到程序中,加入以下代码到`appStart`方法中:
registerSharedObjectSecurity(new SampleSOSecurityHandler());
如果你希望注册一个安全handler只为一个给定的共享对象,代码如下:
ISharedObject so = getSharedObject(scope, "MySharedObject");
so.registerSharedObjectSecurity(new MySOSecurityHandler());
Red5 API
org.red5.server.api.stream.IStreamPlaybackSecurity
org.red5.server.adapter.ApplicationAdapter
org.red5.server.api.stream.support.DenyAllStreamAccess
org.red5.server.api.stream.IStreamPublishSecurity
org.red5.server.api.so.ISharedObjectSecurity
发表评论
-
小学语文课堂教学三维目标的制定和落实-广安齐祥娥
2019-07-06 11:31 15教学目标是教学过程中重要的一部分,它是教学的出发点 也是教学 ... -
air打包是去掉air前缀
2017-02-05 12:13 725air打包是去掉air前缀当用air导报生成apk是会自动在a ... -
Adobe AIR 3新特性
2012-04-24 11:15 1172自从2008年发布了第一 ... -
四川血战麻将pc版下载
2012-01-17 16:59 111见附件! -
四川血战麻将 v0.3 整装待发!
2012-01-09 21:40 80app 搜索关键字:四川血战麻将app store 地址:ht ... -
四川血战麻将 app store 正式上线!
2012-01-05 17:15 76四川麻将, 又称血战麻将, 采用四川地区流行的麻将打法, 尤其 ... -
Flex 数据绑定易犯的错误:普遍的误用和错误
2011-07-12 21:21 997http://www.cnblogs.com/kakaflex ... -
Flex框架选择的一点个人之见
2011-05-05 20:56 867时下,国人都热衷于开 ... -
flex缓存客户端
2011-05-05 20:53 743flex或者flash客户端的缓 ... -
flashbuiler4 格式化地址
2011-01-07 13:03 766http://flexformatter.googlecode ... -
Garbage Collection with Flex and Adobe Air
2010-10-28 15:43 1103I finally found some spare time ... -
分离MXML和AS
2010-04-26 09:40 1091package oreilly.cookbook { ... -
ACE框架在网络游戏服务器中的设计与应用
2010-04-19 21:26 2183陶 道,万旺根 (上海大 ... -
网络游戏同步
2010-04-19 21:24 1021同步在网络游戏中是非 ... -
关于完美的Flex应用框架的思考(Part 1 of 2)
2010-04-14 23:56 1078自Flex技术开始广泛应用以来,对于企业级Flex应用开发框架 ... -
Flash的socket在实际应用上需要注意的问题
2010-04-14 23:34 2158本文作者:奶瓶先生 转 ... -
转 RTMP协议理解
2010-04-14 16:18 6534一、基于TCP之上的高层协议;二、自定义新的包结构chunk; ... -
flex的Timer事件几点注意
2010-03-17 22:57 2075flex的Timer事件几点注意 1. 设定Timer的延 ... -
关于强引用和弱引用
2010-03-17 22:54 1560强引用:使用最普遍的引用。如果一个对象具有强引用,那就类似于必 ... -
关于MC的复制
2010-02-27 10:58 1692关于MC的复制一直都是 ...
相关推荐
red5入门,tomcat+red5+myeclipse集成,原创禁止转载,欢迎补充!
Red5_0.9.1 + MyEclipse10.7 中单步调试Demo Publisher : 编译通过Red_091 后,调试参数设置如下 。 右键项目 - Debug As -- Debug Configurations --Environment : 设置 RED5_HOME 环境变量 "Main class...
red5 与 tomcat项目集成
Red5 是一个采用 Java 开发的开源免费 Flash 流媒体服务器。Red5 基于 Java 和一些功能强大的开源框架,为企业级应用奠定了标准。它使用 RTMP,RTMPT,RTMPS 和 RTMPE 流媒体协议, 支持:将音频(MP3)和视频(FLV,...
本资源是使用 Java servlets 将文件上传到 Red5 服务器的源代码。chapter2 是服务器 Red5 源文件,UploadToRed5Proj 是客户端 Flex3 源文件。 关于使用 Flex 和Java servlets 将文件上传到 RED5 服务器的步骤,请...
red5 1.0 final 与 tomcat 整合 ,导入myeclipse可以直接使用。
时下安全技术,针对linux系统,探索安全
第一一部分 Red5 核心技术之安全 .................................. 第一二部分 Red5 核心技术之 脚本实现 ........................ 第一三部分 Red5 核心技术之集群 .................................. 第一四...
Red5的0.9.1版本
red5 免安装版 red5 1.00 自己试过了!可以正常运行和启动
red5-1.0.5免安装版,适用于window64位(需要先安装jdk1.7,注意是red5-1.0.5需要的是1.7,在这之前装了好几个最新的red5,比如1.0.8,需要的jdk是1.8),解压后,可以设置conf中的red5.properties,也可不设置。...
关于red5的一些学习文档,资料很齐全。 d5_demo 服务器端调用客户端as的方法 as3.0+red5 --- hello world FMS&Red5 RED5 – Project Roadmap Open Source Flash 等等文档
red5项目示例,简单配置使用RED5入门
Red5的Web视频、音频系统开发
《使用Red5入门》 《red5入门》 《red5入门教程》 《RED5安装与配置》 《red5流媒体服务器入门基础》
red5-1.0.6免安装版,适用于window64位(需要先安装jdk1.7,注意是red5-1.0.6需要的是1.7,在这之前装了好几个最新的red5,比如1.0.8,需要的jdk是1.8),解压后,可以设置conf中的red5.properties,也可不设置。...
使用red5开发基于flex的视频会议系统, red5视频流的发布和使用。
《red5配置.doc》,图文并茂,叙述详尽。讲述的是基于red5的0.7.0版本的安装、配置、使用、helloword。叙述比较简单,但仍可作为一入门教程作为初学者的参考。 内容预览: 最近要做一个流媒体服务器,在网上逗留了...
red5 0.8 reference Red5 - Reference Documentation Red5 Open Source Flash Server
最新Red5 1.0.6 web版,1.0.2-1.0.7M4通用,替换以下jar包到对应版本即可。... red5-client-1.0.6-RELEASE.jar red5-io-1.0.6-RELEASE.jar red5-server.jar red5-server-common-1.0.6-RELEASE.jar red5-service.jar