繁体   English   中英

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

[英]Getting Solr Admin user password as a system variable

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

以下

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

DIH 请求参数 请求参数可以在配置中替换为占位符${dataimporter.request.paramname} ,如下例所示: 您可以如下定义数据源。

<dataSource driver="org.hsqldb.jdbcDriver"
            url="${dataimporter.request.jdbcurl}"
        user="${dataimporter.request.jdbcuser}"
        password="${dataimporter.request.jdbcpassword}" />

然后可以将这些参数传递给 full-import 命令或在solrconfig.xml的部分中定义。

http://localhost:8983/solr/dih/dataimport?command=full-import&jdbcurl=jdbc:hsqldb:./example-DIH/hsqldb/ex&jdbcuser=sa&jdbcpassword=secret

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

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

根据嵌入的jetty版本,需要在jetty中添加两个jar。 例如

您将需要在 /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 )

问候

多米尼克

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM