url+用户名+密码_solr安全配置——用户名密码

写网站用到了搜索服务器solr

同样是部署了项目到服务器上之后

发现这个没有访问限制

因为这个服务器不能关掉

只能通过端口屏蔽和设置密码的方式

实现避免他人访问获取资源数据

这里我采用了设用户名密码的方式

实现避免不必要的访问

查了查资料,做了各种尝试

发现下面的流程是可以做到的


用root用户进入docker容器

docker exec  -u root -it solr/bin/bashcd server/etc

创建密码配置文件

touch server/etc/verify.properties

进入该文件

vim server/etc/verify.properties

写入用户名和密码

#用户名:密码,权限user:pass,admin

键入Esc+:wq保存退出

然后编辑solr-jetty-context.xml文件

vim /opt/solr/server/contexts/solr-jetty-context.xml 

写入下面内容

<Get name="securityHandler">   <Set name="loginService">      <New class="org.eclipse.jetty.security.HashLoginService">         <Set name="name">verify—nameSet>         <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/verify.propertiesSet>      New>    Set>Get>

 Esc+:wq保存退出

最后修改web.xml

  vim server/solr-webapp/webapp/WEB-INF/web.xml

删除以下内容(如果有)

<security-constraint>  <web-resource-collection>    <web-resource-name>Disable TRACEweb-resource-name>    <url-pattern>/url-pattern>    <http-method>TRACEhttp-method>  web-resource-collection>  <auth-constraint/>security-constraint><security-constraint>  <web-resource-collection>  <web-resource-name>Enable everything but TRACEweb-resource-name>  <url-pattern>/url-pattern>  <http-method-omission>TRACEhttp-method-omission>  web-resource-collection>security-constraint>

然后添加下面内容

<security-constraint>  <web-resource-collection>    <web-resource-name>Solrweb-resource-name>    <url-pattern>/url-pattern>  web-resource-collection>    <auth-constraint>         <role-name>adminrole-name>  auth-constraint>    security-constraint><login-config>       <auth-method>BASICauth-method>  <realm-name>verify-namerealm-name>  login-config>

键入 Esc+:wq保存退出 

输入exit退出容器

重启solr

docker restart solr

Spring项目 pom文件配置

<dependency><groupId>org.apache.solrgroupId><artifactId>solr-solrjartifactId> <exclusions>        <exclusion>              <artifactId>httpclientartifactId>                   <groupId>org.apache.httpcomponentsgroupId>         exclusion>          <exclusion>            <artifactId>httpcoreartifactId>                  <groupId>org.apache.httpcomponentsgroupId>                exclusion>        exclusions>dependency>

完工!

部署项目即可

效果图:

96df604e7b1112aedfdb5208da342dae.png

觉得有用的话辛苦点个关注鸭嘻嘻

写留言

往期原创推荐传送门:

    2020.11.15  Spring Boot项目创建

    2020.11.1   JavaScript网络爬虫之——英文文章

    2020.9.15   今日份日记

    2020.9.01   今日份日记

    2020.8.07   今日份日记

    2020.8.02   晚安

    2020.7.31   今日份日记

    2020.7.31   你还要我怎样 

    2020.7.24   乐谱收藏夹(一)

    2020.7.24   下雨了

    2020.7.21   米瑶留言小程序上线啦~

    2020.7.21   微信小程序开发之——米瑶云音乐

    2020.7.14   网站分享

    2020.7.08   技术分享——批量修改文件名

    2020.6.11   访寻

    2020.5.21   来世

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,对于在SSM项目中整合Solr并配置用户名密码的问题,可以按照以下步骤进行操作: 1. 首先,需要在Solr的配置文件中配置安全认证和授权信息。具体可以参考Solr的官方文档,例如在 solrconfig.xml 中添加如下配置: ```xml <security> <user> <username>solr</username> <password>password</password> <roles> <role>admin</role> </roles> </user> </security> ``` 其中,`<username>` 和 `<password>` 分别为Solr的用户名密码,`<roles>` 可以配置该用户所拥有的角色,例如上面的配置中该用户拥有 `admin` 角色。 2. 在SSM项目中,需要引入 SolrJ 的相关依赖,例如: ```xml <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> <version>8.9.0</version> </dependency> ``` 3. 在代码中,使用 SolrJ 进行连接 Solr 服务器,其中需要指定 Solr 的用户名密码,例如: ```java String solrUrl = "http://localhost:8983/solr/"; String username = "solr"; String password = "password"; SolrClient solrClient = new HttpSolrClient.Builder(solrUrl) .withBasicAuthCredentials(username, password) .build(); ``` 在以上代码中,`solrUrl` 为 Solr 服务器的地址,`username` 和 `password` 分别为配置的 Solr 用户名密码。使用 `HttpSolrClient.Builder` 进行创建 `SolrClient` 实例,通过 `withBasicAuthCredentials` 方法设置用户名密码即可实现访问 Solr 服务器。 希望这些能够对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值