user3799300
user3799300

Reputation: 75

Spring-Data-Solr How to provide authentication data

how do i proivde authentication data for spring data solr server? Here is what i have in configuration

 <solr:solr-server id="solrServer" url="http://xxxxxxxx:8983/solr" />

  <bean id="solrTemplate" class="org.springframework.data.solr.core.SolrTemplate" scope="singleton">
    <constructor-arg ref="solrServer" />
  </bean>

  <bean id="searchRepository" class="com.bankofamerica.atmtech.repository.SolrJournalRepository">
    <property name="solrOperations" ref="solrTemplate" />
  </bean>

   <bean id="App" class="App">
    <property name="repo" ref="searchRepository" />
  </bean>

I don't see any property where i can set it.

Upvotes: 3

Views: 1484

Answers (1)

Christoph Strobl
Christoph Strobl

Reputation: 6726

You cannot set Credentials directly but have to go through the factory.

@Bean
SolrTemplate solrTemplate() {
  return new SolrTemplate(solrServerFactory());
}

@Bean
SolrServerFactory solrServerFactory() {

  Credentials credentials = new UsernamePasswordCredentials("foo", "bar");
  return new HttpSolrServerFactory(solrServer(), "collection1", credentials , "BASIC");
}

@Bean
SolrServer solrServer() {
  return new HttpSolrServer("http://localhost:8983/solr");
}

I guess some kind of SolrAuthenticationProvider picked up and applied if present in application context would make sense in this case.

Upvotes: 1

Related Questions