0

GlassfishにApacheSolrインスタンスをデプロイしており、JavaコードからSolrjを介してこのSolrインスタンスを使用しています。重要なのは、このJavaコードだけがSolrにアクセスできるように(コードは異なるIPアドレスから実行できるように)Solrへのアクセスを制限したいということです。

私が最初に考えたのweb.xmlは、デプロイしたSolrインスタンスを変更して、Glassfishのファイルベースのレルムを使用して基本認証を追加することでした。これを使用して、別のプロジェクトのRESTインターフェースへのアクセスを制限したためです。そこで、Solrweb.xmlに次の行を追加しました。

  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Secure</web-resource-name>
      <url-pattern>/*</url-pattern>
      <http-method>GET</http-method>
      <http-method>POST</http-method>
      <http-method>HEAD</http-method>
      <http-method>PUT</http-method>
      <http-method>OPTIONS</http-method>
      <http-method>TRACE</http-method>
      <http-method>DELETE</http-method>
    </web-resource-collection>
    <auth-constraint>
      <description>has to be a USER</description>
      <role-name>USERS</role-name>
    </auth-constraint>
  </security-constraint>

  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>userauth</realm-name>
  </login-config>

  <security-role>
    <role-name>USERS</role-name>
  </security-role>

しかし、どういうわけか、これはSolrアクセス​​では機能しません。別の設定で機能したため、認証ダイアログが表示されません。これはかなり奇妙です。

一般に、Solrインスタンスを保護するこの方法は良いアプローチですか、それとも別の方法を試す必要がありますか?Solrのセキュリティページでは、Solrインスタンスのファイアウォールについて話し合っています。私はLinux管理者ではありませんが、iptablesが解決策になる可能性があり、serverfaultにはいくつかの良い答えがあります例:これ)。

どう思いますか?

4

1 に答える 1

0

OK、私の解決策は、Solrを何らかの方法で変更する代わりに、実際にはファイアウォールを使用することでした。

于 2012-01-05T08:55:35.030 に答える