Solr config,加密数据配置文件

时间:2013-02-26 21:35:59

标签: encryption solr indexing

如何在此处加密数据配置部分?:

<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和身份验证参数?

2 个答案:

答案 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
...