[
https://issues.apache.org/jira/browse/SOLR-9496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15556622#comment-15556622
]
Hrishikesh Gadre commented on SOLR-9496:
----------------------------------------
The problem with documentation route is that it will become out-of-date over
the period of time. Since build file (ivy config) is the authentic source of
dependency information, I would be more confident of the approach which is
solely based on it.
Another point - even though we are currently discussing the solrj impact, there
is also a desire to avoid dependencies on the server side (i.e. solr-core).
e.g. [~ichattopadhyaya] has been working on refactoring the dependency on old
version of jackson library in solr-core (Ref: SOLR-9542 and HADOOP-13672). Now
that we have first class support for Security, I would expect more
authentication/authorization mechanisms integrated with Solr. It is quite
possible that those integrations will bring in more dependencies that are not
useful for all consumers of Solr. Hence instead of taking the documentation
route, we should seriously consider refactoring the security integrations out
of solr-core and solrj. This way folks can "install" only those plugins which
they intend to use.
> SolrJ + Kerberos Requires commons-codec
> ---------------------------------------
>
> Key: SOLR-9496
> URL: https://issues.apache.org/jira/browse/SOLR-9496
> Project: Solr
> Issue Type: Bug
> Security Level: Public(Default Security Level. Issues are Public)
> Components: SolrJ
> Affects Versions: 6.2
> Reporter: Bryan Bende
> Priority: Minor
> Labels: documentation
> Attachments: SOLR-9496.patch
>
>
> When using SolrJ 6.2 with Kerberos enabled on the server (also 6.2), the
> following exception was encountered:
> {code}
> java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64
> at
> org.apache.http.impl.auth.GGSSchemeBase.<init>(GGSSchemeBase.java:85)
> ~[httpclient-4.4.1.jar:4.4.1]
> at org.apache.http.impl.auth.SPNegoScheme.<init>(SPNegoScheme.java:54)
> ~[httpclient-4.4.1.jar:4.4.1]
> at
> org.apache.http.impl.auth.SPNegoSchemeFactory.newInstance(SPNegoSchemeFactory.java:78)
> ~[httpclient-4.4.1.jar:4.4.1]
> at
> org.apache.http.auth.AuthSchemeRegistry.getAuthScheme(AuthSchemeRegistry.java:113)
> ~[httpclient-4.4.1.jar:4.4.1]
> at
> org.apache.http.auth.AuthSchemeRegistry$1.create(AuthSchemeRegistry.java:151)
> ~[httpclient-4.4.1.jar:4.4.1]
> at
> org.apache.http.impl.client.AuthenticationStrategyImpl.select(AuthenticationStrategyImpl.java:188)
> ~[httpclient-4.4.1.jar:4.4.1]
> at
> org.apache.http.impl.client.TargetAuthenticationStrategy.select(TargetAuthenticationStrategy.java:43)
> ~[httpclient-4.4.1.jar:4.4.1]
> at
> org.apache.http.impl.auth.HttpAuthenticator.handleAuthChallenge(HttpAuthenticator.java:154)
> ~[httpclient-4.4.1.jar:4.4.1]
> at
> org.apache.http.impl.client.HttpAuthenticator.authenticate(HttpAuthenticator.java:58)
> ~[httpclient-4.4.1.jar:4.4.1]
> at
> org.apache.http.impl.client.DefaultRequestDirector.handleResponse(DefaultRequestDirector.java:1057)
> ~[httpclient-4.4.1.jar:4.4.1]
> at
> org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:515)
> ~[httpclient-4.4.1.jar:4.4.1]
> at
> org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:882)
> ~[httpclient-4.4.1.jar:4.4.1]
> at
> org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
> ~[httpclient-4.4.1.jar:4.4.1]
> at
> org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
> ~[httpclient-4.4.1.jar:4.4.1]
> at
> org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
> ~[httpclient-4.4.1.jar:4.4.1]
> at
> org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:497)
> ~[na:na]
> at
> org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:261)
> ~[na:na]
> at
> org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:250)
> ~[na:na]
> at
> org.apache.solr.client.solrj.impl.LBHttpSolrClient.doRequest(LBHttpSolrClient.java:403)
> ~[na:na]
> at
> org.apache.solr.client.solrj.impl.LBHttpSolrClient.request(LBHttpSolrClient.java:355)
> ~[na:na]
> at
> org.apache.solr.client.solrj.impl.CloudSolrClient.sendRequest(CloudSolrClient.java:1291)
> ~[na:na]
> at
> org.apache.solr.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState(CloudSolrClient.java:1061)
> ~[na:na]
> at
> org.apache.solr.client.solrj.impl.CloudSolrClient.request(CloudSolrClient.java:997)
> ~[na:na]
> at
> org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:149)
> ~[na:na]
> at
> org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:166)
> ~[na:na]
> {code}
> Adding a dependency to my project on commons-codec resolved the issue:
> {code}
> <dependency>
> <groupId>commons-codec</groupId>
> <artifactId>commons-codec</artifactId>
> <version>1.10</version>
> </dependency>
> {code}
> SolrJ should include this dependency if it is required for Kerberos
> authentication.
> If not we should consider updating the SolrJ section on the Wiki page here to
> mention that client application needs to add it:
> https://cwiki.apache.org/confluence/display/solr/Kerberos+Authentication+Plugin
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]