solr7.0部署到Tomcat上登录后台密码身份设置

简介: 需求和配置。

一、需求


solr安装完成以后,只要知道url就可以访问到solr后台,显然这很不安全,那么需求就是在访问的时候需要输入密码验证。


二、配置


1、修改部署solr的Tomcat的tomcat-users.xml


<!--
  NOTE:  The sample user and role entries below are intended for use with the
  examples web application. They are wrapped in a comment and thus are ignored
  when reading this file. If you wish to configure these users for use with the
  examples web application, do not forget to remove the <!.. ..> that surrounds
  them. You will also need to set the passwords to something appropriate.
-->
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
  <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->
<!--添加用户名和密码-->
   <role rolename="solr"/>
   <user username="admin" password="admin" roles="solr"/>
</tomcat-users>


2、修改 WEB-INF/web.xml 在<webapp>节点内增加如下内容


<security-constraint>
      <web-resource-collection>
          <web-resource-name>Solr Lockdown</web-resource-name>
          <url-pattern>/</url-pattern>
          <http-method>GET</http-method>
          <http-method>POST</http-method>
      </web-resource-collection>
      <auth-constraint>
          <description>This applies only to the "tomcat" security role</description>
          <role-name>solr</role-name>
          <role-name>admin</role-name>
      </auth-constraint>
      <user-data-constraint>
          <transport-guarantee>NONE</transport-guarantee>
      </user-data-constraint>
</security-constraint>
<login-config>
      <auth-method>BASIC</auth-method>
      <realm-name>Solr</realm-name>
</login-config>


3、重启Tomcat ,访问就会要求输入用户名密码,输入上面设置的账号密码然后就可以登录。但是还有一个问题,页面加上密码,程序代码中就访问不到了,报HTTP/1.1 401 Unauthorized这个错误。下面解决这个问题只需要你修改一下链接即可


@Test
  public void testQuery() throws SolrServerException{//过滤查询
        //修改此处链接    
        //SolrServer solrServer=new HttpSolrServer("http://192.168.220.121:8080/solr/mycore");
        SolrServer solrServer=new HttpSolrServer("http://admin:admin@192.168.139.129:8080/solr/mycore");
    SolrQuery query=new SolrQuery();
    query.set("q", "*:*");
    String [] fq={"item_cat_id:2"}; 
    query.addFilterQuery(fq);  //过滤 
    QueryResponse result = solrServer.query(query);
    SolrDocumentList results = result.getResults();
    for (SolrDocument list:results){
      String str1 = list.get("item_gid").toString();
      String str2=list.get("item_title").toString();
      System.out.println("分类gid-----"+str1);
      System.out.println("商品名称-----"+str2);
    }   
}
相关文章
|
3月前
|
JavaScript Java 应用服务中间件
centos部署vue项目(java,tomcat环境的搭建)
centos部署vue项目(java,tomcat环境的搭建)
48 0
|
21天前
|
移动开发 Java 应用服务中间件
tomcat第1章 tomcat介绍、安装、部署项目
tomcat第1章 tomcat介绍、安装、部署项目
|
12天前
|
Java 应用服务中间件 Linux
在阿里云服务器上部署Tomcat详细图文详解
本文介绍了在阿里云服务器上安装和配置JDK和Tomcat的步骤。首先,需要注册阿里云账号并进行实名认证,然后购买并设置服务器。接着,通过File Zilla连接服务器,创建Java和Tomcat的安装目录,并将JDK和Tomcat的tar.gz文件上传到服务器,解压并重命名。之后,配置JDK的环境变量,将catalina.sh复制到/etc/init.d/目录下,并修改相关配置。最后,启动Tomcat并配置安全组规则,确保可以通过公网访问。
|
15天前
|
Web App开发 Java 应用服务中间件
【Java Web】在 IDEA 中部署 Tomcat
【Java Web】在 IDEA 中部署 Tomcat
|
18天前
|
Java 应用服务中间件 Linux
阿里云服务器部署多个tomcat
阿里云服务器部署多个tomcat
|
2月前
|
Java 应用服务中间件
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
154 1
|
4月前
|
安全 Java 应用服务中间件
本地部署Tomcat开源服务器并结合内网穿透远程访问
本地部署Tomcat开源服务器并结合内网穿透远程访问
41 0
|
4月前
|
Java 应用服务中间件 Maven
Tomcat部署SpringBoot war包
Tomcat部署SpringBoot war包
30 0
|
4月前
|
Java 应用服务中间件 Linux
TomCat安装及快速部署
TomCat安装及快速部署
38 0
|
4月前
|
缓存 应用服务中间件 Windows
Windows安装多个Tomcat部署项目
在实际生产环境中,经常会有一个tomcat部署多个应用程序的场景,但多个项目应用同一个基础框架时,会出现某些文件路径相同的情况导致管理混乱(例如附件,日志,缓存文件),并且更新有时需要关闭tomcat导致多个项目同时失效,本文提供同时安装多个tomcat的方案,独立部署每个项目便于管理
46 0