0

私は自分のウェブサイトを sorl と同じサーバーに持っています。もちろん、セキュリティ上の理由から、solrが外部IPからではなく、私のWebサイトからのクエリのみを許可することを望みます. したがって、私のWebページは、次のようなクエリを実行できる唯一のページになります。

$.getJSON("http://127.0.0.1:8080/solr/select/?q=*:*&wt=json&json.wrf=?&indent=true", function(result){}

しかし、私は自分の sorl アプリケーションを auth で構成しているため、常にユーザー名とパスワードを書き込むように求められます。

    <security-constraint>
<web-resource-collection>
  <web-resource-name>Solr Lockdown</web-resource-name>
  <url-pattern>/</url-pattern>
</web-resource-collection>
   <auth-constraint>
     <role-name>solr_admin</role-name>
     <role-name>admin</role-name>
   </auth-constraint>
 </security-constraint>
    <login-config>
   <auth-method>BASIC</auth-method>
   <realm-name>Solr</realm-name>
 </login-config> 

私はここにチェックインしましたが、このソリューションは私のメイン Web サイトもブロックし、 Tomcat にクエリを実行するとパスワードを求められます: 指定された IP アドレスの基本認証をバイパスします

4

1 に答える 1

0

Web サーバーではなく、クライアント ブラウザーから JSON 呼び出しを行っているため、これは機能しません。このシナリオでは、Solr へのすべての呼び出しはクライアント マシンから発信されます。Web サーバーで Solr を呼び出し、JSON 呼び出しを実行できる Web サイトの URL を介してそれを公開する必要があります。

また、IP アドレスで制限する場合は、基本認証を削除する必要があります。そうしないと、両方が適用されます。

于 2013-05-14T16:35:22.040 に答える