[ 
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: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to