还没解决沙箱安全冲突同学们请进、



就在那时,我被沙箱安全冲突问题搞得郁闷了两天,查遍各大论坛啊,都没有正确的答案,当时什么方法都试了,都不见效。2011年3月8日,沙箱安全冲突问题得到了解决。
总结一下:
从第一次碰到安全沙箱问题到现在,整整两天,让我不得不怀疑adobe的这个设计,这样的设计对于开发人员来说到底是不是好事、、、
在群里,得到了一位十分好的好心人的帮助,给了我一个简单的实例,才得以解决问题,原来还得开一个843端口发送安全策略文件
还有一个,刚才测试时,我边听歌边测试,可服务器就是开不起来,呵呵,先笑一下。
查了端口一看,843居然被“哈喽 酷狗”占了,靠。大家也要小心哦。

现在附上授权服务代码

另启一线程:
  //授权服务
Authorization authorer = new Authorization();
Thread cossThred = new Thread(authorer);
cossThred.start();

Authorization 类:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Authorization implements Runnable {

private ServerSocket Authorerserver;
private String crossXml = "<?xml version='1.0'?><cross-domain-policy><allow-access-from domain='*' to-ports='9999'/></cross-domain-policy>";
//授权文件内容,自己改
private String charCode = "UTF-8";//授权端口编码格式
public Authorization() {
try {
Authorerserver = new ServerSocket(843);
} catch (IOException e) {
System.out.println("flex授权服务器启动失败,已退出");
e.printStackTrace();
System.exit(0);
}
}
public String getCharCode() {
return charCode;
}
public void setCharCode(String charCode) {
this.charCode = charCode;
}
public String getCrossXml() {
return crossXml;
}
public void setCrossXml(String crossXml) {
this.crossXml = crossXml;
}
public void run() {
while (true) {
Socket client = null;
try {
System.out.println("授权服务器已启动");
client = Authorerserver.accept();
InputStreamReader input = new InputStreamReader(client.getInputStream(),charCode);
BufferedReader reader = new BufferedReader(input);
OutputStreamWriter output = new OutputStreamWriter(client.getOutputStream(),charCode);
BufferedWriter writer = new BufferedWriter(output);
StringBuilder sb = new StringBuilder();
int request = 0;
while ((request = reader.read()) != -1) {
if (request != '\0') {
sb.append((char) request);
} else
break;
}
String message = sb.toString();
if (message.indexOf("<policy-file-request/>") >= 0) {
writer.write(crossXml + "\0");
writer.flush();
System.out.println("发送授权信息");
}
client.close();
} catch (Exception e) {
e.printStackTrace();
try {
if (client != null) {
client.close();
client = null;
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
System.gc();
}
}
}
}
}

授权文件中的IP和端口就看你的服务器上的了
尽量把授权线程开启放在服务器开启之前,而且其生命周期得伴随整个服务器进程。
好了,希望大家能成功!:-103)
此篇发表在www.ccflash.com,复制麻烦保留此行.

相关文章:


Trackback

本文到目前为止有6条评论

  1. Gravatar Icon
    恩 ,遇到过这问题。 感谢分享

    回复

  1. Gravatar Icon
    弱弱的问一下载,什么是安全沙箱

    回复

  1. Gravatar Icon



        好吧,这个是一个安全机制,我个人觉得挺多余的。

    回复

  1. Gravatar Icon



        肯定是有用的。 不然随便外链了。

    回复

  1. Gravatar Icon



        那就行啦,反正已经解决!:-103)~

    回复

  1. Gravatar Icon
    我还没处理过这种问题,不过还是先转下来了

    回复

添加评论