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、user、およびpasswordフィールドを暗号化したい。

助けてください、

前もって感謝します。

アニルジャヤンティ

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 に答える