0

クロスドメイン方式で Apache Web サーバーと通信しようとしています。

ドメインのルートに設定された clientaccesspolicy.xml ファイルがあり、設定されている Java サーブレットに GET 要求を送信しようとすると、Silverlight クライアントによって正常に取得されます。

具体的には次のようなものです。

アクセスする 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> 

メッセージとして「Security Error」を含む一般的な SecurityException を取得しています。これは、clientaccesspolicy.xml ファイルが正しく設定されていることを意味すると思います。

質問は次のとおりです。

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

なれ

<domain uri ="*" />

また。したほうがいい

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

なれ

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

1 に答える 1

0

<domain uri ="*" />すべての http および https 呼び出し元を有効にする場合に使用する必要があります。<domain uri ="http://*" />すべての http 呼び出し元のみを有効にします。

<resource path ="/servlets/targetServlet" include-subpaths ="false"/>サブディレクトリへのアクセスなしで、サイトのルートからのパスを定義するために使用します。これを使用して、関連性ではなく具体的​​にします。Silverlight のネットワーク セキュリティ アクセス制限から

属性は、ドメインのルートに関連する URI です。これは、Web サービスまたはファイルを表すことができる特定のパスを参照します。

パスには、ワイルドカード文字または Uniform Resource Identifier (URI) で認識されない文字を含めることはできません: Generic Syntax、 http: //ietf.org/rfc/rfc3986

この要素と属性は、WebClient および HTTP クラスからの要求に対してのみ使用されます。

于 2010-10-08T15:33:24.070 に答える