如何解决获取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" />
根据嵌入式码头版本,您需要在码头中添加两个罐子。例如
- http://central.maven.org/maven2/org/eclipse/jetty/jetty-plus/9.4.10.v20180503/jetty-plus-9.4.10.v20180503.jar
- http://central.maven.org/maven2/org/eclipse/jetty/jetty-jndi/9.4.10.v20180503/jetty-jndi-9.4.10.v20180503.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)
致谢
多米尼克
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。