2013-11-20 68 views
0

我嘗試保護我的Solr實例,但無法使其正常工作。我在許多教程中看到它的一切,但似乎solr忽略了我的web.xml。在Tomcat7上保護Solr

我的步驟:

1:編輯Tomcat的users.xml中

<?xml version='1.0' encoding='utf-8'?> 
<tomcat-users> 
    <role rolename="manager-gui"/> 
    <user username="tomcat" password="s3cret" roles="manager-gui"/> 

    <role rolename="solr-role"/> 
    <user username="test" password="test" roles="solr-role"/> 
</tomcat-users> 

2:編輯的web.xml

<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-role</role-name> 
    </auth-constraint> 
</security-constraint> 
<login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>Solr</realm-name> 
</login-config> 

3:重新啓動tomcat7

,我後嘗試訪問http://xxx.xxx.xxx.xxx:8080/solr/,我沒有任何密碼提示即可訪問。

我的錯是什麼?

非常感謝!

回答

0

我不知道爲什麼,但我使用了錯誤的web.xml。 我使用存儲在/var/lib/tomcat7/webapps/solr/WEB_INF/web.xml下的文件,但我必須使用/etc/tomcat7/web.xml下的文件。

1

添加以下行的web.xml保證的Solr的管理頁面(至少Solr的4.2.1,但也要爲4.5.1工作)

<security-constraint> 
    <!-- This protects your admin interface and grants access to role admin --> 
    <web-resource-collection> 
     <web-resource-name>Solr admin</web-resource-name> 
     <url-pattern>/admin/*</url-pattern> 
     <url-pattern>/admin.html</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>solr</role-name> 
    </auth-constraint> 
    <security-role> 
     <role-name>solr</role-name> 
    </security-role> 
</security-constraint> 
<login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>SOLR Realm</realm-name> 
</login-config> 
+0

我試過這個,但它不工作。 – Stillmatic1985

+0

奇怪......它*爲我工作(剛剛在4.5.0上測試過相同的配置)。 你在哪裏更改了web.xml?如果你在WAR文件中修改了它,但是tomcat已經將它分解到一個文件夾中 - 那麼你需要刪除這個文件夾,因爲tomcat可能不會從WAR文件中選擇新的web.xml。 – rchukh

+0

我使用Solr 4.4.0。 web.xml存儲在/ var/lib/tomcat7/webapps/solr/WEB-INF/ – Stillmatic1985