[ https://issues.apache.org/jira/browse/SOLR-14392?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Constantin Mitocaru updated SOLR-14392: --------------------------------------- Summary: CloudSolrClient executes select calls but not updates after adding authentication (was: Solr Cloud 8.5.0 executes select calls but not updates after adding authentication) > CloudSolrClient executes select calls but not updates after adding > authentication > --------------------------------------------------------------------------------- > > Key: SOLR-14392 > URL: https://issues.apache.org/jira/browse/SOLR-14392 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) > Components: SolrCloud > Affects Versions: 8.5 > Environment: Windows 7 64bit > java version "11.0.3" 2019-04-16 LTS > Java(TM) SE Runtime Environment 18.9 (build 11.0.3+12-LTS) > Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.3+12-LTS, mixed mode) > solr 8.5.0 cloud > > RAM 32GB > > Reporter: Constantin Mitocaru > Priority: Major > Labels: Authorization > > I'm trying to upgrade from 8.3.1 to 8.5.0 and I was forced to enable > authorization and authentication (set the file /security.json in zk): > {code:java} > { > "authentication":{ > "blockUnknown": true, > "class":"solr.BasicAuthPlugin", > "credentials":{"solr":"fAOsiVaz+IMaWzzypxvbOsTgA4YC0m0PPymQH09T5Vs= > 0DJIpGUbCUHtEr4NvF6Lluyd1en0cHgGsQLiUYYyphU="}, > "realm":"My Solr users", > "forwardCredentials": true > }, > "authorization":{ > "class":"solr.RuleBasedAuthorizationPlugin", > "permissions":[{"name":"all","role":"admin"}], > "user-role":{"solr":"admin"} > }} > {code} > In my solr client config I have: > {code:java} > final ModifiableSolrParams params = new ModifiableSolrParams(); > params.set("followRedirects", false); > params.set("allowCompression", false); > params.set("httpBasicAuthUser", solrUser); > params.set("httpBasicAuthPassword", solrPass); > CloseableHttpClient httpClient = HttpClientUtil.createClient( params); > final CloudSolrClient client = new CloudSolrClient.Builder( > zkHosts,Optional.empty() ) > .withHttpClient(httpClient) > .build(); > client.setZkClientTimeout( 30000 ); > return client; > {code} > Now, all the select calls (reads) are working via this client. However when I > try to add new documents to a collection: > {code:java} > ... > solrClient.add(collName, docs); > ... > {code} > I get this exception: > {code:java} > org.apache.solr.client.solrj.impl.CloudSolrClient$RouteException: > IOException occurred when talking to server at: > http://192.168.2.159:8983/solr/coreTgy_shard1_replica_n1 > at > org.apache.solr.client.solrj.impl.CloudSolrClient.getRouteException(CloudSolrClient.java:125) > at > org.apache.solr.client.solrj.impl.CloudSolrClient.getRouteException(CloudSolrClient.java:46) > at > org.apache.solr.client.solrj.impl.BaseCloudSolrClient.directUpdate(BaseCloudSolrClient.java:559) > at > org.apache.solr.client.solrj.impl.BaseCloudSolrClient.sendRequest(BaseCloudSolrClient.java:1046) > at > org.apache.solr.client.solrj.impl.BaseCloudSolrClient.requestWithRetryOnStaleState(BaseCloudSolrClient.java:906) > at > org.apache.solr.client.solrj.impl.BaseCloudSolrClient.request(BaseCloudSolrClient.java:838) > at > org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:211) > at > org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:106) > at > org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:71) > at > com.sytrue.nlp.tgy.impl.SolrTgyEngine.saveConcept(SolrTgyEngine.java:1109) > at > com.sytrue.nlp.tgy.mtn.impl.SolrTgyMtnImpl.removeConceptTerm(SolrTgyMtnImpl.java:429) > at > com.sytrue.nlp.tgy.mtn.impl.SolrTgyMtnImpl.processTermAlteration(SolrTgyMtnImpl.java:91) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > at > org.apache.camel.support.ObjectHelper.invokeMethodSafe(ObjectHelper.java:207) > at > org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:421) > at > org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:242) > at > org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:213) > at > org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:148) > at > org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:55) > at > org.apache.camel.component.bean.BeanProducer.process(BeanProducer.java:41) > at > org.apache.camel.processor.SendProcessor.process(SendProcessor.java:134) > at > org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryState.run(RedeliveryErrorHandler.java:476) > at > org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:185) > at > org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59) > at org.apache.camel.processor.Pipeline.process(Pipeline.java:87) > at > org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:228) > at > org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:78) > at > org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:40) > at > org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:129) > at > org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:736) > at > org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:696) > at > org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:674) > at > org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:318) > at > org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:245) > at > org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1189) > at > org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1179) > at > org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1076) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > at java.base/java.lang.Thread.run(Thread.java:834) > Caused by: org.apache.solr.client.solrj.SolrServerException: > IOException occurred when talking to server at: > http://192.168.2.159:8983/solr/coreTgy_shard1_replica_n1 > at > org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:679) > at > org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:265) > at > org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:248) > at > org.apache.solr.client.solrj.impl.LBSolrClient.doRequest(LBSolrClient.java:368) > at > org.apache.solr.client.solrj.impl.LBSolrClient.request(LBSolrClient.java:296) > at > org.apache.solr.client.solrj.impl.BaseCloudSolrClient.lambda$directUpdate$0(BaseCloudSolrClient.java:533) > at > java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) > at > org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:210) > ... 3 more > {code} > I think there might be an issue when the /update path is used in combination > with basic authentication and POST method in which the "/update" portion is > not added to the URL. > What I'm trying to say is that the url should have been > [http://192.168.2.159:8983/solr/coreTgy_shard1_replica_n1/update] -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org