·您当前的位置:主页 > 技术教程 > RED5教程 >

[RED5]Red5流媒体安全策略

时间:2014-03-07 17:41Construction
[RED5]Red5流媒体安全策略,Red5流媒体,安全策略

[RED5]Red5流媒体安全策略

让你的应用继承ApplicationAdapter,然后重写connect我在应用的根目录放置了一个crossdomain.properties文件。

  1. package com._3tion.live; 
  2. import java.io.IOException; 
  3. import java.util.Arrays; 
  4. import java.util.Map; 
  5. import java.util.Properties; 
  6. import org.red5.server.adapter.ApplicationAdapter; 
  7. import org.red5.server.api.IConnection; 
  8. import org.red5.server.api.IScope; 
  9. import org.springframework.core.io.Resource; 
  10.  
  11. /** 
  12. * @author 3tion 
  13. */ 
  14. public class Application extends ApplicationAdapter { 
  15. private static String swfUrl[]; 
  16. //CuPlayer.com提示:域检测文件名 
  17. private static final String CROSS_DOMAIN_FILE_NAME = "crossdomain.properties"
  18. private static final String SEPARATOR = ";"
  19. @Override 
  20. public synchronized boolean connect(IConnection conn, IScope scope, 
  21. Object[] params) { 
  22. if( swfUrl == null ) 
  23. //CuPlayer.com提示:检查策略文件 
  24. Resource resource = getResource(CROSS_DOMAIN_FILE_NAME); 
  25. //resource的目录结构是从当前应用的根目录开始 
  26. if(resource.exists()) 
  27. Properties props = new Properties(); 
  28. try { 
  29. props.load(resource.getInputStream()); 
  30. swfUrl = props.getProperty("swfUrl").toLowerCase().split(SEPARATOR); 
  31. } catch (IOException e) { 
  32. e.printStackTrace(); 
  33.  
  34. else //如果没有域安全文件,则视为所有域都允许通过 
  35. swfUrl = new String[1]; 
  36. swfUrl[0] = "*"; 
  37.  
  38. Map<String,Object> map = conn.getConnectParams(); 
  39. //检查连接参数中swfUrl的地址是否在安全文件中 
  40. if( Arrays.binarySearch(swfUrl,"*") > -1 || Arrays.binarySearch(swfUrl, map.get("swfUrl").toString().toLowerCase()) > -1 ) 
  41. return super.connect(conn, scope, params); 
  42. else 
  43. return false; 

这样,就可以在crossdomain.properties中控制你red5应用允许访问的文件了,如果写*,就允许任意文件访问。
允许http://test/Main.swf和http://test1/Main.swf访问。
则crossdomain.properties:
swfUrl    =    http\://test/Main.swf;\
http\://test1/Main.swf

热门文章推荐

请稍候...