KannarFr opened a new issue #5841: Biscuit customs authentication and 
authorization providers usages.
URL: https://github.com/apache/pulsar/issues/5841
 
 
   **Describe the bug**
   pulsar-client java invalid connection state using custom authentication & 
authorization provider:
   
   ```
   19:55:25.068 [pulsar-client-io-1-1] INFO  
org.apache.pulsar.client.impl.ConnectionPool - [[id: 0x88e0c178, 
L:/127.0.0.1:38446 - R:127.0.0.1/127.0.0.1:22022]] Connected to server
   19:55:25.120 [pulsar-client-io-1-1] DEBUG 
org.apache.pulsar.common.protocol.PulsarHandler - [[id: 0x88e0c178, 
L:/127.0.0.1:38446 - R:127.0.0.1/127.0.0.1:22022]] Scheduling keep-alive task 
every 30 s
   19:55:25.123 [pulsar-client-io-1-1] DEBUG 
org.apache.pulsar.client.impl.ClientCnx - [id: 0x88e0c178, L:/127.0.0.1:38446 - 
R:127.0.0.1/127.0.0.1:22022] Connected to broker
   19:55:25.143 [pulsar-client-io-1-1] DEBUG 
org.apache.pulsar.client.impl.ClientCnx - Complete: true
   19:55:25.163 [pulsar-client-io-1-1] DEBUG 
org.apache.pulsar.common.protocol.PulsarDecoder - [127.0.0.1/127.0.0.1:22022] 
Received cmd ERROR
   20:34:55.905 [pulsar-client-io-1-1] WARN  
org.apache.pulsar.client.impl.ClientCnx - [127.0.0.1/127.0.0.1:22022] Got 
exception IllegalArgumentException : null
   java.lang.IllegalArgumentException: null
        at 
com.google.common.base.Preconditions.checkArgument(Preconditions.java:108) 
~[guava-21.0.jar:?]
        at 
org.apache.pulsar.client.impl.ClientCnx.handleError(ClientCnx.java:588) 
~[pulsar-client-original-2.4.1.jar:2.4.1]
        at 
org.apache.pulsar.common.protocol.PulsarDecoder.channelRead(PulsarDecoder.java:154)
 ~[pulsar-common-2.4.1.jar:2.4.1]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:799)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:433) 
[netty-all-4.1.32.Final.jar:4.1.32.Final]
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:330) 
[netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 [netty-all-4.1.32.Final.jar:4.1.32.Final]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_201]
   ```
   
   **To Reproduce**
   Steps to reproduce the behavior:
   1. `git clone [email protected]:CleverCloud/biscuit-pulsar.git`
   2. `mvn install` # it's using hadoop-unit which boot a pulsar
   3. `BiscuitPulsarIntegrationTest.java` should create a producer but it 
throws the quoted exception.
   
   **Expected behavior**
   Create producer and produce messages using biscuit authentication & 
authorization.
   
   **Additional context**
   To debug pulsar-client you probably needs to remove the hadoop-unit usage 
and use standalone. To do it you just need to boot a pulsar standalone and 
replace the needed configuration on pulsar client creation in 
`BiscuitPulsarIntegrationTest.java` and provide the built biscuit-plugin like:
   
   ```
   # Enable authentication
   authenticationEnabled=true
   
   # Autentication provider name list, which is comma separated list of class 
names
   
authenticationProviders=com.clevercloud.biscuitpulsar.AuthenticationProviderBiscuit
   
   # Enforce authorization
   authorizationEnabled=true
   
   # Authorization provider fully qualified class-name
   
authorizationProvider=com.clevercloud.biscuitpulsar.AuthorizationProviderBiscuit
   
   # Biscuit root signing key
   
biscuitRootKey=da905388864659eb785877a319fbc42c48e2f8a40af0c5baea0ef8ff7c795253 
#random string
   
   superUserRoles=admin
   ```
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to