微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

获取Solr Admin用户密码作为系统变量

如何解决获取Solr Admin用户密码作为系统变量

是否存在可用于获取solr管理员用户()和密码()的认solr环境属性。这样我就可以使用此属性,而不是在下面的solr db-data-config.xml中对管理员用户和密码进行硬编码。我知道我可以定义一个可以解决此问题的属性,但想知道是否有可用的属性

下方

<entity name="test" processor="SolrEntityProcessor" url="http://<adminuser>:<password>@<server>:<port>/solr/test_core/" query="*:*"
fl="*">

解决方法

DIH请求参数 可以在配置中使用占位符balance替换请求参数,如以下示例所示: 您可以如下定义数据源。

${dataimporter.request.paramname}

然后可以将这些参数传递到完全导入命令或在<dataSource driver="org.hsqldb.jdbcDriver" url="${dataimporter.request.jdbcurl}" user="${dataimporter.request.jdbcuser}" password="${dataimporter.request.jdbcpassword}" /> 的部分中定义。

solrconfig.xml
,

DIH可以使用jndi和加密的密码来连接数据库。

<dataSource name="informixmydb"
   type="JdbcDataSource"
   jndiName="java:/comp/env/jdbc/mydb" />

根据嵌入式码头版本,您需要在码头中添加两个罐子。例如

您将需要在/opt/solr/solr/server/etc/jetty.xml文件中配置jndi身份验证

<!-- ======================================================== -->
<!--                      Configure JNDI                      -->
<!-- ======================================================== -->

<New id="informixDepluxDs" class="org.eclipse.jetty.plus.jndi.Resource">
  <Arg></Arg> <!-- is Configure node id value -->
  <Arg>java:comp/env/jdbc/deplux2</Arg>
  <Arg>
    <New class="com.informix.jdbcx.IfxConnectionPoolDataSource">
      <Set name="User">solr</Set>
      <Set name="password">
        <Call class="org.eclipse.jetty.util.security.Password" name="deobfuscate">
          <Arg>OBF:*****</Arg>
        </Call>
      </Set>
      <Set name="ServerName">xxxxxx</Set>
      <Set name="IfxIFXHOST">xxxxxx</Set>
      <Set name="DatabaseName">mydb</Set>
      <Set name="PortNumber">15032</Set>
    </New>
  </Arg>
</New>
<New id="informixxxxxx" class="org.eclipse.jetty.plus.jndi.Resource">
  <Arg></Arg>
  <Arg>java:comp/env/jdbc/mydb</Arg>
  <Arg>
    <New class="com.informix.jdbcx.IfxDataSource">
      <Set name="IfxIFXHOST">xxxxxx</Set>
      <Set name="ServerName">xxxxxx</Set>
      <Set name="User">solr</Set>
      <Set name="password">
        <Call class="org.eclipse.jetty.util.security.Password" name="deobfuscate">
          <Arg>OBF:*****</Arg>
        </Call>
      </Set>
      <Set name="DatabaseName">mydb</Set>
      <Set name="PortNumber">15032</Set>
      <Set name="DataSourceName">java:comp/env/jdbc/mydb</Set>
    </New>
  </Arg>
</New>

密码可以加密

java -cp ../lib/jetty-util-9.4.10.v20180503.jar org.eclipse.jetty.util.security.Password用户名密码。

https://www.eclipse.org/jetty/documentation/current/configuring-security-secure-passwords.html

致谢

多米尼克

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。