Это то, что я сделал до сих пор, чтобы защитить мое приложение SOLR.Как защитить Solr, чтобы разрешить запрос SELECT только пользователям и запретить что-либо еще?
В файле web.xml Solr, я пытаюсь сделать следующее
- Разрешить/выберите запрос только пользователя или администратора запросов.
- Запретить любой другой запрос SOLR другому, а затем администратору.
Я добавил ограничений безопасности в файле web.xml в Solr
<security-constraint>
<web-resource-collection>
<web-resource-name>Solr Admin</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Public</web-resource-name>
<url-pattern>/primary/select/*</url-pattern>
<url-pattern>/reindex/select/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>user</role-name>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
Это, как я инстанцировании соединение HTTP SOLR в моем клиентском приложении
//primary core
HttpSolrServer primaryindex = new HttpSolrServer(serverUrl + "/" + PRIMARYINDEX);
HttpClientUtil.setBasicAuth((DefaultHttpClient) primaryindex.getHttpClient(), "user", "user");
//reindex core
HttpSolrServer reindex = new HttpSolrServer(serverUrl + "/" + REINDEX);
HttpClientUtil.setBasicAuth((DefaultHttpClient) reindex.getHttpClient(), "user", "user");
-Tomcat пользователей. xml-файл имеет следующие роли и пользователей:
<role rolename="user"/>
<user username="user" password="user" roles="user"/>
<user password="admin" roles="manager-script,admin" username="admin"/>
Выше работает отлично. Очевидно, что в производстве у меня будет более сильное имя пользователя и пароль.
Вопрос
Что еще мне нужно, чтобы защитить свои экземпляры Solr или будет выше достаточно? У меня есть 1 экземпляр Tomcat 7, который запускает клиентское приложение и приложение SOLR. Это то, чего я пытаюсь достичь.
- Не хочу, чтобы кто-нибудь войти в админ без имени пользователя и пароля
- Не хочу, чтобы получить доступ сердечника другой, то мой клиент приложение
Я могу добавить Spring безопасность SOLR сверху выше, но это необходимо?