Flex Java 安全策略

  Flex界面和Java后台进行Socket交互,socket服务器端总接收到 <policy-file-request/>信息,而无法进行下一步通信。原因是Adobe Flash Player  9.0.124版本后,安全策略被更改,原来SocketXmlSocket的应用里的http方式加载安全策略的手段不能继续使用。我们可以通过下面方法来实现。

Socket服务器端 检验得到安全策略 <policy-file-request/>,如接收则发送策略串

                      检验没有获得安全策略 <policy-file-request/>,则进行业务逻辑处理

客户端               初始化界面时调用Socket 第一次调用会发送安全策略建立连接,如成功获取服务器端的策略,此客户端将可以进行正常Socket连接请求

 

下面是Socket服务器端的代码:

              InputStream br= socket.getInputStream();
              byte [] reader = new byte [1000]; 
              
              BufferedWriter pw = new BufferedWriter( new OutputStreamWriter(socket.getOutputStream()));
              while (br.read(reader)!=-1){ 
                  String msg="";
                  msg=new String(reader,"UTF-8");  //输入的请求                 
                  reader =new byte [1000]; 
                  if(msg!=null){
                 
                     String safe = "<cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"*\" /></cross-domain-policy>\0"; 
                    if(msg.indexOf("<policy-file-request/>") >=0)
                    { 
                        pw.write(safe);  //传回安全策略串
                        pw.flush();     
                    }
                    else
                    {
                        //正常业务逻辑处理
                    }
           }
              }

 

原文地址:https://www.cnblogs.com/Anlycp/p/2321382.html