新的flash播放器加入了跨域名访问安全机制。
在跨域名访问时,flash播放器会发送一条信息:
<policy-file-request/>
必须要接受一条xml策略信息才能通过验证。
要flash播放器通过安全验证可以在ConnectionManager中的ConnectionHandler类加入如下代码
if(xmlpolicy1.equals("<policy-file-request/>")) {
StringBuilder sb = new StringBuilder();
sb.append("<?xml version=\"1.0\"?>");
sb.append("<cross-domain-policy>");
sb.append("<site-control permitted-cross-domain-policies=\"all\"/>");
sb.append("<allow-access-from domain=\"*\" to-ports=\"*\"/>");
sb.append("</cross-domain-policy>");
String xmlpolicy = sb.toString();
System.out.println(xmlpolicy);
session.write(ByteBuffer.wrap(xmlpolicy.getBytes())); //openfire整个架构是mima框架
session.close();
} else {
//原内容
....
只要让flash第一次连接时,返回一条通过验证的xml策略文件就可以了
测试的时候flash可以正常通过验证。不知这样修改是否稳定。