Solr的配置,对数据进行加密的配置文件(Solr config, encrypting data

2019-07-20 14:15发布

我怎么可以在这里对数据进行加密配置部分?:

<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的API的网址和验证参数?

Answer 1:

一个更安全的选择,我建议是在你的web服务器配置一个JNDI。

如何配置一个JNDI? 此页介绍了如何使用Tomcat这样做。 它可以用于其他流行的Web服务器进行为好。

您可以在您的数据配置文件使用JNDI名称如下:

< dataSource name="xyz" jndiName="jdbc/xyz" type="JdbcDataSource"/>


Answer 2:

请参阅: https://wiki.apache.org/solr/SolrConfigXml#System_property_substitution

你可以把它们作为文件属性<solr.home>/conf/solrcore.properties和数据配置是指他们。 所以,你的数据-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
...


文章来源: Solr config, encrypting data config file