[ 
https://issues.apache.org/jira/browse/HBASE-21281?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16654325#comment-16654325
 ] 

Josh Elser commented on HBASE-21281:
------------------------------------

Had to go digging into this because your explanation didn't actually tell me 
what the cause was, [[email protected]]. The root cause is that *both* 
Hadoop 2 and Hadoop 3 don't explicitly depend on bouncycastle in hbase-server 
like they should.

Circumstantially, on hadoop 2, this doesn't cause an error because we happen to 
get the dependency via kerb-client:
{noformat}
[INFO] +- org.apache.kerby:kerb-client:jar:1.0.1:test
[INFO] |  +- org.apache.kerby:kerby-config:jar:1.0.1:test
[INFO] |  +- org.apache.kerby:kerb-core:jar:1.0.1:test
[INFO] |  |  \- org.apache.kerby:kerby-pkix:jar:1.0.1:test
[INFO] |  |     +- org.apache.kerby:kerby-asn1:jar:1.0.1:test
[INFO] |  |     \- org.apache.kerby:kerby-util:jar:1.0.1:test
[INFO] |  +- org.apache.kerby:kerb-common:jar:1.0.1:test
[INFO] |  |  \- org.apache.kerby:kerb-crypto:jar:1.0.1:test
[INFO] |  +- org.apache.kerby:kerb-util:jar:1.0.1:test
[INFO] |  \- org.apache.kerby:token-provider:jar:1.0.1:test
[INFO] |     \- com.nimbusds:nimbus-jose-jwt:jar:3.10:test
[INFO] |        +- net.jcip:jcip-annotations:jar:1.0:test
[INFO] |        +- net.minidev:json-smart:jar:1.3.1:test
[INFO] |        \- org.bouncycastle:bcprov-jdk15on:jar:1.60:test
{noformat}
In Hadoop 3, we can see this dependency missing:
{noformat}
[INFO] +- org.apache.kerby:kerb-client:jar:1.0.1:test
[INFO] |  +- org.apache.kerby:kerby-config:jar:1.0.1:test
[INFO] |  +- org.apache.kerby:kerb-core:jar:1.0.1:test
[INFO] |  |  \- org.apache.kerby:kerby-pkix:jar:1.0.1:test
[INFO] |  |     +- org.apache.kerby:kerby-asn1:jar:1.0.1:test
[INFO] |  |     \- org.apache.kerby:kerby-util:jar:1.0.1:test
[INFO] |  +- org.apache.kerby:kerb-common:jar:1.0.1:test
[INFO] |  |  \- org.apache.kerby:kerb-crypto:jar:1.0.1:test
[INFO] |  +- org.apache.kerby:kerb-util:jar:1.0.1:test
[INFO] |  \- org.apache.kerby:token-provider:jar:1.0.1:test
{noformat}
All that said, the addendum (explicitly adding the test-dependency) is the 
right one, but the path to that addendum was unnecessarily muddy.

> Update bouncycastle dependency.
> -------------------------------
>
>                 Key: HBASE-21281
>                 URL: https://issues.apache.org/jira/browse/HBASE-21281
>             Project: HBase
>          Issue Type: Task
>          Components: dependencies, test
>            Reporter: Josh Elser
>            Assignee: Josh Elser
>            Priority: Major
>             Fix For: 3.0.0, 2.2.0
>
>         Attachments: 21281.addendum.patch, HBASE-21281.001.branch-2.0.patch
>
>
> Looks like we still depend on bcprov-jdk16 for some x509 certificate 
> generation in our tests. Bouncycastle has moved beyond this in 1.47, changing 
> the artifact names.
> [http://www.bouncycastle.org/wiki/display/JA1/Porting+from+earlier+BC+releases+to+1.47+and+later]
> There are some API changes too, but it looks like we don't use any of these.
> It seems like we also have vestiges in the POMs from when we were depending 
> on a specific BC version that came in from Hadoop. We now have a 
> KeyStoreTestUtil class in HBase, which makes me think we can also clean up 
> some dependencies.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to