Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encryption Solr配置,加密数据配置文件_Encryption_Solr_Indexing - Fatal编程技术网

Encryption Solr配置,加密数据配置文件

Encryption Solr配置,加密数据配置文件,encryption,solr,indexing,Encryption,Solr,Indexing,如何在此处加密数据配置部分 <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"> &l

如何在此处加密数据配置部分

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

基本上,我不想公开用户和密码

或者,如果数据配置文件不能被加密(部分或全部),我可以使用SolrJ对数据库进行索引,这样我就不必配置数据配置文件了吗?也就是说,我使用SolrJ API传递url和身份验证参数?

请参见:

您可以将它们作为属性保存在文件
/conf/solrcore.properties
中,并在数据配置中引用它们。因此,您的data-config.xml如下所示:

<dataSource type="JdbcDataSource"
            driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"    
            url="jdbc:sqlserver://${jdbc.host}:${jdbc.port}/${db.name}" 
            user="${jdbc.username}" 
            password="${jdbc.password}"/>

我建议,一个更安全的选项是在Web服务器中配置JNDI

如何配置JNDI?解释如何使用Tomcat执行此操作。其他流行的Web服务器也可以这样做

您可以在数据配置文件中使用JNDI名称,如下所示:

< dataSource name="xyz" jndiName="jdbc/xyz" type="JdbcDataSource"/>
您确定Solr DataImportHandler支持jndiName属性吗?我在列表中看不到它。我在列表中也看不到它。我得到的印象是,我必须做以下事情之一:1。通过此处定义的类插入数据源:2。正如我在这里提到的:3。使用属性(见下文),但这如何解决我无法在系统上任何地方使用明文密码的问题?@AlexandreRafalovitch我对此非常确定,因为我一直在使用“jndiName”属性在我的项目中指定数据库连接凭据。@AamirQuraishi您提供的解决方案,尽管是个好主意,需要额外加密和解密密码。但是,通过配置JNDI,您要求Web服务器处理这个问题,而Web服务器反过来又为您处理这个问题。“这取决于你重新发明轮子。”马维林,接得好。检查,表明它确实是一个选项。我将更新官方Wiki以匹配。谢谢Arun-但是可以对属性文件进行加密以便SolR解密属性值吗?我们的问题是,我们不能把任何明文密码放在任何地方的任何文件中。我不知道。尝试询问solr用户邮件列表。
< dataSource name="xyz" jndiName="jdbc/xyz" type="JdbcDataSource"/>