0

我使用 data-config.xml 文件中的 dataConfig 部分从 DB 生成 SOLR,它工作正常。

<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>

我想对上述配置中的 url、databaseName、用户和密码字段进行加密。

请帮忙,

提前致谢。

阿尼尔贾扬蒂

4

1 回答 1

1

基本上,您可以参数化 pwd 字段(或任何其他字段)。如下所示,我已经参数化了密码字段:

<dataConfig>
     <dataSource name="jdbc" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@//testdbserver:1521/db1" user="tester"  password="${dataimporter.request.pwd}"/>
</dataConfig>

所以当你调用服务器时,你可以将 pwd 作为参数传递:

http://www.googleserver :/solr/dataimport?command=full-import&pwd=sa

现在,您可能必须加密上面 url 中的密码或用户(使用 DES) - 然后找到在 SolR 端解密的方法。对于 SolR 端的解密,您必须编写一个自定义评估器(尽管 SolR 可能提供了一个我找不到的解密函数)。

或者,可以从自定义评估器中获取参数。请参阅以下链接以了解自定义评估器: http ://wiki.apache.org/solr/DataImportHandler#Custom_Evalutaors

因此,例如:

<dataConfig>
    <function name="getPwd" class="myFoo.FetchPwd"/>
    <dataSource name="jdbc" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@//testdbserver:1521/db1" user="tester"  password="${dataimporter.functions.getPwdFromAsc}"/>
</dataConfig>
于 2013-02-27T22:10:06.413 回答