[
https://issues.apache.org/jira/browse/SOLR-9496?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15555754#comment-15555754
]
Hrishikesh Gadre commented on SOLR-9496:
----------------------------------------
[~risdenk] [~ichattopadhyaya]
bq. In that light, I think we should add a documentation note to the Kerberos
page (SolrJ section) that user needs this dependency along with solrj in order
to make kerberos work.
I don't think adding this in the documentation is a good idea since dependency
management tools should take care of this kind of stuff. If we are concerned
with the adding extra dependencies for kerberos integration, we should think
about cleanly separating out the security related stuff into a different
(add-on) module so that can we can list all the kerberos dependencies there.
This will ensure that users not using kerberos are not affected with these
extra dependencies, at the same time users using kerberos don't run into type
of issues mentioned in this jira.
> 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]