加密SOLR中的dataConfig部分字段

时间:2012-10-05 11:15:13

标签: solr

我使用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,user和password字段。

请帮助,

先谢谢。

AnilJayanti

1 个答案:

答案 0 :(得分: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命令=全进口&安培; 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>