如何在此处加密数据配置部分?:
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://127.0.0.1;databaseName=emp" user="user" password="user"/>
<document name="reviews">
<entity name="COMMON" query="select id,name from users" >
<field column="id" name="id"/>
<field column="name" name="name"/>
</entity>
</document>
</dataConfig>
基本上,我不想公开用户和密码。
或者,如果数据配置文件无法加密(部分或全部),我可以使用SolrJ对数据库建立索引,这样我就不必配置数据配置文件了吗?也就是说,我使用SolrJ apis传递url和身份验证参数?
答案 0 :(得分:4)
更安全的选项,我建议在您的网络服务器中配置 JNDI 。
如何配置JNDI? This Page解释了如何使用Tomcat。它也可以用于其他流行的网络服务器。
您可以在数据配置文件中使用JNDI名称,如下所示:
< dataSource name="xyz" jndiName="jdbc/xyz" type="JdbcDataSource"/>
答案 1 :(得分:1)
请参阅:https://wiki.apache.org/solr/SolrConfigXml#System_property_substitution
您可以将它们保存为文件<solr.home>/conf/solrcore.properties
中的属性,并在数据配置中引用它们。所以你的data-config.xml就像:
<dataSource type="JdbcDataSource"
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://${jdbc.host}:${jdbc.port}/${db.name}"
user="${jdbc.username}"
password="${jdbc.password}"/>
其中${...}
中的所有内容都是solrcore.properties中的属性,如:
jdbc.host=http://127.0.0.1
jdbc.port=3306
db.name=emp
...