0

我的网站与 sorl 在同一台服务器上。我希望 solr 只允许来自我的网站的查询,而不是来自外部 ips 的查询,当然是出于安全原因。那么我的网页将是唯一可以进行以下查询的网页:

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

但是由于我的 sorl 应用程序配置了身份验证,因此它总是提示输入用户名和密码。

    <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> 

我在这里签到,但是这个解决方案也阻止了我的主要网站,并且在我查询 Tomcat 时仍然提示密码:绕过指定 IP 地址的基本身份验证

4

1 回答 1

0

这不起作用,因为您是从客户端浏览器而不是 Web 服务器进行 JSON 调用。在这种情况下,对 Solr 的所有调用都来自客户端计算机。您需要让您的 Web 服务器调用 Solr,并通过您网站中的 JSON 调用可以执行的 url 公开它。

此外,如果您通过 IP 地址进行限制,则需要删除基本身份验证,否则将同时应用两者。

于 2013-05-14T16:35:22.040 回答