Apache SOLR的不同级别的安全configuration

这是我们SOLR实例所需要的

1)除了select需要的IP以及密码限制之外的所有URL 2)selectURL可以从任何IP访问,但是需要访问密码。 此密码与上面第1点使用的密码不同。 如果IP是从我们的内部networking,那么即使访问select的url也不需要密码

总之,我们需要保护除了从外部select(ip +密码)以外的所有内容。 但select我们想要访问外部世界,所以没有IP限制,但他们需要一个用户名和密码来访问它。 但是对于select,对于某些ips,我们甚至不想要用户名和密码限制

如何实现这一点。 在此先感谢家伙

以下是如何使用Tomcat的Valve组件过滤用户IP地址的请求: http : //wiki.apache.org/tomcat/FAQ/Security#Q6

您可以使用Tomcat基本身份validation来限制对特定URL模式的访问。

您的Solr应用程序的web.xml:

<login-config> <auth-method>BASIC</auth-method> <realm-name>Admin and Update protection</realm-name> </login-config> <security-constraint> <web-resource-collection> <web-resource-name>Hr core administration</web-resource-name> <url-pattern>/coreHr/admin/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>solradmin</role-name> </auth-constraint> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>En core administration</web-resource-name> <url-pattern>/coreEn/admin/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>solradmin</role-name> </auth-constraint> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>Hr core update</web-resource-name> <url-pattern>/coreHr/update*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>solradmin</role-name> </auth-constraint> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>En core update</web-resource-name> <url-pattern>/coreEn/update*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>solradmin</role-name> </auth-constraint> </security-constraint> 

的tomcat-users.xml中:

 <role rolename="manager"/> <role rolename="admin"/> <role rolename="solradmin"/> <user username="mbo" password="mbo11" roles="manager,admin,solradmin"/>