Silverlight - Синтаксис ClientAccessPolicy.xml

Я пытаюсь установить связь с веб-сервером Apache в междоменном режиме.

У меня есть файл clientaccesspolicy.xml, настроенный в корне домена, и он успешно извлекается клиентом Silverlight при попытке сделать запрос GET к настроенному сервлету Java.

Специфика примерно такая:

URL для доступа: dev.corp.companyname.com/servlets/targetServlet

Файл clientaccesspolicy.xml выглядит так:

<access-policy> 
  <cross-domain-access> 
    <policy> 
      <allow-from http-request-headers ="*"> 
        <domain uri ="http://*" /> 
      </allow-from > 
      <grant-to > 
        <resource path ="servlets/targetServlet" include-subpaths ="false"/> 
      </grant-to> 
    </policy > 
  </cross-domain-access> 
</access-policy> 

Я получаю обычное SecurityException с сообщением «Ошибка безопасности». Я предполагаю, что это означает, что файл clientaccesspolicy.xml настроен правильно.

Итак, вот вопросы: следует ли

<domain uri ="http://*" />

be

<domain uri ="*" />

Также. Должен

<resource path ="servlets/targetServlet" include-subpaths ="false"/> 

be

<resource path ="/servlets/targetServlet" include-subpaths ="false"/>

person Anthony Compton    schedule 08.10.2010    source источник


Ответы (1)


Вы должны использовать <domain uri ="*" />, если хотите включить всех вызывающих http и https. <domain uri ="http://*" /> включит только всех вызывающих http.

Используйте <resource path ="/servlets/targetServlet" include-subpaths ="false"/>, чтобы определить путь от корня сайта без доступа к каким-либо подкаталогам. Используйте это, чтобы быть конкретным, а не относительным. Из Ограничения доступа к сетевой безопасности в Silverlight

Атрибут представляет собой URI относительно корня домена. Он относится к определенному пути, который может представлять веб-службу или файл.

Путь не может содержать подстановочные знаки или символы, не распознаваемые унифицированным идентификатором ресурса (URI): общий синтаксис, http://ietf.org/rfc/rfc3986

Этот элемент и атрибут используются исключительно для запросов из классов WebClient и HTTP.

person DaveB    schedule 08.10.2010