Maybe something like this (I omitted a lot of things you'll have to do, like passing zk or the list of hosts):
static class CustomCloudSolrClient extends CloudSolrClient { protected CustomCloudSolrClient(CustomCloudSolrClientBuilder builder) { super(builder); } @Override public NamedList<Object> request(SolrRequest request, String collection) throws SolrServerException, IOException { // your logic here to figure out which credentials to use... String user = "user"; String pass = "pass"; request.setBasicAuthCredentials(user, pass); return super.request(request, collection); } } static class CustomCloudSolrClientBuilder extends CloudSolrClient.Builder { @Override public CloudSolrClient build() { return new CustomCloudSolrClient(this); } } public static void main(String[] args) { CloudSolrClient c = new CustomCloudSolrClientBuilder().build(); ... } Do consider that "request" method is called per request, make sure whatever logic you have there is not super expensive. On Wed, Mar 3, 2021 at 10:48 AM Subhajit Das <subhajitdas...@live.com> wrote: > Hi Thomas, > > Thanks. Can you please also share a sample of code to configure the client > with your workaround? > > From: Tomás Fernández Löbbe<mailto:tomasflo...@gmail.com> > Sent: 04 March 2021 12:05 AM > To: solr-user@lucene.apache.org<mailto:solr-user@lucene.apache.org> > Subject: Re: Programmatic Basic Auth on CloudSolrClient > > As far as I know the current OOTB options are system properties or > per-request (which would allow you to use different per collection, but > probably not ideal if you do different types of requests from different > parts of your code). A workaround (which I've used in the past) is to have > a custom client that overrides and sets the credentials in the "request" > method (you can put whatever logic there to identify which credentials to > use). I recently created https://issues.apache.org/jira/browse/SOLR-15154 > and https://issues.apache.org/jira/browse/SOLR-15155 to try to address > this > issue in future releases. > > On Wed, Mar 3, 2021 at 5:42 AM Subhajit Das <subhajitdas...@live.com> > wrote: > > > > > Hi There, > > > > Is there any way to programmatically set basic authentication credential > > on CloudSolrClient? > > > > The only documentation available is to use system property. This is not > > useful if two collection required two separate set of credentials and > they > > are parallelly accessed. > > Thanks in advance. > > > >