3

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

<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 传递 url 和 authentication 参数?

4

2 回答 2

4

我建议更安全的选择是在您的网络服务器中配置JNDI 。

如何配置 JNDI?本页解释了如何使用 Tomcat 来执行此操作。它也可以用于其他流行的网络服务器。

您可以在数据配置文件中使用 JNDI 名称,如下所示:

< dataSource name="xyz" jndiName="jdbc/xyz" type="JdbcDataSource"/>
于 2013-02-27T12:03:43.377 回答
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
...
于 2013-02-27T05:19:27.113 回答