2010-01-07 11 views
5

No puedo obtener mi Yahoo! Plataforma de aplicación para ejecutar Me siguen denegando el acceso a pesar de que su archivo de política acepta solicitudes desde cualquier dominio.denegado debido a la falta de permisos de archivos de políticas

OK: Policy file accepted: http://social.yahooapis.com/crossdomain.xml 
Error: Request for resource at http://social.yahooapis.com/v1/user/<user id>/profile?oauth_signature_method=HMAC-SHA1&lang=en-US&oauth_consumer_key=<key>&oauth_token=<long ass token>&oauth_version=1.0&format=json&oauth_nonce=<blah blah>&oauth_timestamp=1262846353&region=US&oauth_signature=<foo bar> by requestor from http://<my domain>/YOSSimple.swf is denied due to lack of policy file permissions. 

The url works btw, he editado algunas cosas ya que tiene mis llaves y esas cosas.


Enlaces a las cosas que estoy tratando de hacer

http://developer.yahoo.com/flash/yos/ 
http://developer.yahoo.com/flash/yos/examples/simple/YOSSimple.fla 

YOSSimple crea correctamente la URL realidad ya que si lo escribo en mi navegador estoy pregunte si quiero descargar el archivo que contiene información sobre mi perfil.

Pero simplemente no se abrirá en Flash.

+0

lo es que entorno limitado de seguridad? Pruebe con confianza local ya que no veo ningún problema con el archivo de política de dominios cruzados. – bhups

+0

Estoy usando CS4 por cierto. Ya configuré las configuraciones de publicación en 'Acceso a la red solamente' y todavía no funciona. – lemon

+0

¿Podría publicar el código que hace que la solicitud falle? – Jacob

Respuesta

2

Supongo que no está cargando el archivo de política automáticamente. Deberías probar usando Security.loadPolicyFile("http://social.yahooapis.com/crossdomain.xml");

¿Tienes un webproxy instalado con el que puedas controlar qué archivos están cargados exactamente? Mi favorito es Charles pero también hay plugins gratuitos como FF Httpfox

EDIT: Creo que sé lo que va mal. Está yendo mal al revés, el swf de Yahoo está intentando acceder a su swf, pero no tiene los permisos correctos. Se intenta

Security.allowDomain('http://social.yahooapis.com/'); 
+0

Ya intenté cargar la política manualmente, todavía no funcionó. Intentaremos esa cosa de webproxy en unos pocos. – lemon

+0

Los archivos se están cargando sin problemas allí. [http://social.yahooapis.com/crossdomain.xml, YOSSimple.swf, etc.]. Dice que carga el archivo SWF primero antes del XML, ¿ese sería el problema? – lemon

+0

No, así es como debería ser. Por cierto, edité mi respuesta, creo que sé lo que está pasando mal. – Creynders

0

http://www.ieinspector.com/httpanalyzer/

uso analizador de HTTP para ver qué está sucediendo?

también verifique su no coincidencia http://www. con http: // porque flash los trata como dominios diferentes

también está ejecutando el código localmente en su máquina. Podría ser la configuración de seguridad locales

0

Un WebProxy sencilla va a arreglar esto:

<?php 
    // PHP Proxy 
    // Loads a XML from any location. Used with Flash/Flex apps to bypass security restrictions 
    // usage: proxy.php?url=http://mysite.com/myxml.xml 

    $session = curl_init($_GET['url']);     // Open the Curl session 
    curl_setopt($session, CURLOPT_HEADER, false);   // Don't return HTTP headers 
    curl_setopt($session, CURLOPT_RETURNTRANSFER, true); // Do return the contents of the call 
    $xml = curl_exec($session);       // Make the call 
    header("Content-Type: text/xml");     // Set the content type appropriately 
    echo $xml;  // Spit out the xml 
    curl_close($session); // And close the session 
?> 
0

modificar el ejemplo proxy web de arriba para soportar múltiples opciones de la siguiente manera:

$sOptions = ""; 

foreach($_GET as $sIndex => $sValue) { 
    if ($sIndex == 'url') { 
    $url = $sValue; 
    } 
    else { 
    if (strlen($sIndex) > 0) { 
     $sOptions .= "&" . $sIndex; 
    } 
    if (strlen($sValue) > 0) { 
     $sOptions .= "=" . $sValue; 
    } 
    } 
} 

$url .= $sOptions; 

$session = curl_init($url); // Open the Curl session 
Cuestiones relacionadas