我使用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
答案 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>