[
https://issues.apache.org/jira/browse/NIFIREG-186?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16579441#comment-16579441
]
ASF GitHub Bot commented on NIFIREG-186:
----------------------------------------
Github user ijokarumawak commented on the issue:
https://github.com/apache/nifi-registry/pull/131
Note of the last commit. While I was deploying a different Ranger and
Registry environment to test HDFS and Kerberos, I encountered a javax.ws.rs
version conflict issue between jersey-bundle and nifi-registry. The
jersey-bundle-1.19.3 used by Ranger common contains javax.ws.rs 1.x while NiFi
Registry uses rs 2.1 api. This causes following exception occasionally:
```
Caused by: java.lang.LinkageError: ClassCastException: attempting to
castjar:file:/home/koji/nifi-registry-0.3.0-SNAPSHOT/work/jetty/nifi-registry-web-api-0.3.0-SNAPSHOT.war/webapp/WEB-INF/lib/javax.ws.rs-api-2.1.jar!/javax/ws/rs/ext/RuntimeDelegate.classtojar:file:/home/koji/nifi-registry-0.3.0-SNAPSHOT/./ext/ranger/lib/jersey-bundle-1.19.3.jar!/javax/ws/rs/ext/RuntimeDelegate.class
at
javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:116) ~[na:na]
at
javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:91) ~[na:na]
at javax.ws.rs.core.MediaType.<clinit>(MediaType.java:44) ~[na:na]
at
com.sun.jersey.core.header.MediaTypes.<clinit>(MediaTypes.java:65) ~[na:na]
at
com.sun.jersey.core.spi.factory.MessageBodyFactory.initReaders(MessageBodyFactory.java:182)
~[na:na]
at
com.sun.jersey.core.spi.factory.MessageBodyFactory.initReaders(MessageBodyFactory.java:175)
~[na:na]
at
com.sun.jersey.core.spi.factory.MessageBodyFactory.init(MessageBodyFactory.java:162)
~[na:na]
at com.sun.jersey.api.client.Client.init(Client.java:343) ~[na:na]
at com.sun.jersey.api.client.Client.access$000(Client.java:119)
~[na:na]
at com.sun.jersey.api.client.Client$1.f(Client.java:192) ~[na:na]
at com.sun.jersey.api.client.Client$1.f(Client.java:188) ~[na:na]
at
com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193) ~[na:na]
at com.sun.jersey.api.client.Client.<init>(Client.java:188) ~[na:na]
at com.sun.jersey.api.client.Client.<init>(Client.java:171) ~[na:na]
at com.sun.jersey.api.client.Client.create(Client.java:683) ~[na:na]
at
org.apache.ranger.plugin.util.RangerRESTClient.buildClient(RangerRESTClient.java:211)
~[na:na]
at
org.apache.ranger.plugin.util.RangerRESTClient.getClient(RangerRESTClient.java:176)
~[na:na]
at
org.apache.ranger.plugin.util.RangerRESTClient.getResource(RangerRESTClient.java:156)
~[na:na]
at
org.apache.ranger.admin.client.RangerAdminRESTClient.createWebResource(RangerAdminRESTClient.java:275)
~[na:na]
at
org.apache.ranger.admin.client.RangerAdminRESTClient.getServicePoliciesIfUpdated(RangerAdminRESTClient.java:126)
~[na:na]
at
org.apache.ranger.plugin.util.PolicyRefresher.loadPolicyfromPolicyAdmin(PolicyRefresher.java:264)
~[na:na]
at
org.apache.ranger.plugin.util.PolicyRefresher.loadPolicy(PolicyRefresher.java:202)
~[na:na]
at
org.apache.ranger.plugin.util.PolicyRefresher.startRefresher(PolicyRefresher.java:149)
~[na:na]
at
org.apache.ranger.plugin.service.RangerBasePlugin.init(RangerBasePlugin.java:150)
~[na:na]
at
org.apache.nifi.registry.ranger.RangerAuthorizer.onConfigured(RangerAuthorizer.java:165)
~[na:na]
... 69 common frames omitted
```
To avoid this, I've added mvn shade plugin to remove javax.ws.rs package
from the jersey-bundle dependency.
> Create Authorizer implementation that uses Apache Ranger
> --------------------------------------------------------
>
> Key: NIFIREG-186
> URL: https://issues.apache.org/jira/browse/NIFIREG-186
> Project: NiFi Registry
> Issue Type: Improvement
> Reporter: Koji Kawamura
> Assignee: Koji Kawamura
> Priority: Major
>
> In addition to the standard file-based Authorizer, we should provide an
> Authorizer implementation that uses Apache Ranger, so that users implement
> centralized authorization against both NiFi and NiFi Registry.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)