我正在将现有的java项目迁移到Spring Boot。它通过Zookeeper连接到Solr。
启动时抛出以下错误。
org.apache.zookeeper.KeeperException$NoAuthException: KeeperErrorCode = NoAuth for /clusterstate.json
以下配置适用于本地,但在其他环境中,Zookeeper需要一些身份验证(jaas.conf)。如何将jaas.conf传递给Spring Boot,以便它可以正确初始化SolrClient?
@Configuration
@EnableSolrRepositories(basePackages = "com.search", multicoreSupport = true)
public class SolrConfig {
@Value("${spring.data.solr.zk-host}")
private String zkHost;
@Bean
public SolrClient solrClient() {
return new CloudSolrClient(zkHost);
}
@Bean
public SolrTemplate solrTemplate(SolrClient solrClient) throws Exception {
return new SolrTemplate(solrClient);
}
}
jaas.conf
Client {
org.apache.zookeeper.server.auth.DigestLoginModule required
username="some_username"
password="some_password";
};
我尝试将凭据作为zkDigestUsername和zkDigestPassword的环境属性传递。在这种情况下,Spring Boot启动期间没有异常,但后续对Solr的插入/读取不起作用。
任何帮助将不胜感激。非常感谢!
答案 0 :(得分:0)
我能够通过使用以下JVM参数提供jaas配置来解决此问题。
-Djava.security.auth.login.config=/etc/zookeeper/conf/jaas.conf