欢迎投稿

今日深度:

Solr安全管理,

Solr安全管理,


摘要: 在搭建好Solr以后,我们可以通过Solr Admin Page管理页面简单的使用Solr,当然不希望这样的页面对外公开访问。可以通过认证的方式加密Solr admin page。

Solr admin page不安全

在Solr的管理页面可以做很多操作,不限于常用的查询命令,你还可以通过在Query页面更改Request-Handler来更新甚至删除数据。

需要认证的HTTP请求

我使用的测试环境是win7+Solr6.0+jetty9.3.8

更改Solr配置

在.\webapps\solr\WEB-INF中,找到web.xml文件。
在文件中添加如下验证配置:

<login-config>
            <auth-method>BASIC</auth-method>
            <realm-name>Solr manage</realm-name>
    </login-config>

    <security-constraint>
            <web-resource-collection>
                <web-resource-name>Solr Admin Access</web-resource-name>
                <url-pattern>/*</url-pattern>
            </web-resource-collection>
            <auth-constraint>
                <role-name>user</role-name>
            </auth-constraint>
    </security-constraint>
  • realm-name:给服务器识别用的名字,需要和待会儿设置的call-name一致。
  • role-name:角色名,需要和待会儿设置的角色名一致。

更改jetty配置

在jetty安装目录下,找到.\etc\jetty.xml。
在文件中添加如下验证配置:

<Call name="addBean">
        <Arg>
          <New class="org.eclipse.jetty.security.HashLoginService">
            <Set name="name">Solr manage</Set>
            <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/simple.txt</Set>
            <Set name="refreshInterval">0</Set>
          </New>
        </Arg>
</Call>
  • name:上面设置的realm-name
  • config:需要把用户名文件放置在哪里,我设置的是./etc/simple.txt,需要在与jetty.xml文件相同路径下新建文件simple.txt。

    在新建的文件中配置用户名,密码等。
    admin:pass,user
    这里的admin是需要用到的用户名,pass是密码,user就是刚才配置的role-name。注意配置的格式。

访问Solr admin page

重启Solr,访问http://localhost:8080/solr/index.html,需要验证:

如果不能正确输入用户名,密码,就会返回401

HTTP ERROR 401

Problem accessing /solr/index.html. Reason:

Unauthorized

www.htsjk.Com true http://www.htsjk.com/solr/38097.html NewsArticle Solr安全管理, 摘要: 在搭建好Solr以后,我们可以通过Solr Admin Page管理页面简单的使用Solr,当然不希望这样的页面对外公开访问。可以通过认证的方式加密Solr admin page。 Solr admin page不...
相关文章
    暂无相关文章
评论暂时关闭