2012-10-05 18 views
0

我在data-config.xml文件中使用dataConfig節下面的數據庫生成SOLR,它工作正常。加密SOLR中的dataConfig節字段

<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

基本上你可以參數化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>