我的主要问题是使用HelioSearch Solr实例,但我已经将Tomcat包含在内,因为我需要改变它,我也是Tomcat NOOB。
Solr有一个非常完善的REST API,可能过于庞大 - 它是known issue(SOLR1523),您可以通过未经过身份验证的HTTP GET请求删除整个Solr Collection。
http://localhost:8983/solr/update?commitWithin=10&stream.body=%3Cdelete%3E%3Cquery%3E*:*%3C/query%3E%3C/delete%3E"
在修复发布之前,我无法将Solr或Tomcat端的某些配置更改为:(从最佳情况到最差情况)
我需要更新吗?用于将新数据提供到集合中的端点,但我只需要POST这些数据,因此有第4个选项:删除/阻止GET端点(即使是通过一些hacky路由/重载/ eclipsing方法)。甚至更大,Tomcat的Coyote部分可以找到字符串"删除" .. yuk,但我绝望了。
我知道Solr项目并不关心安全性,但即使防火墙解决方案背后也有太多用户愚蠢或愚蠢。
答案 0 :(得分:0)
除非您是具有此经验的系统管理员,否则最好不要暴露Solr。请改用客户端。像Spring-Data-Solr这样的东西很简单。
您可以在an example of it的Solr Start资源网站上看到用于自动完成功能的JavaDoc search。
当然,您仍然希望保护Solr,但现在您可以与应用程序共同托管它,并使Tomcat / Jetty仅在localhost上进行侦听。或者,您可以在Solr和客户端应用程序之间设置单独的防火墙规则。
答案 1 :(得分:0)
如果您使用的是Linux,iptables可以为您解决此问题。在iptable中,允许从本地ip到tomcat端口的流量,并删除连接到该端口的所有其他内容。