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

ASF GitHub Bot commented on BOOKKEEPER-959:
-------------------------------------------

Github user eolivelli commented on the issue:

    https://github.com/apache/bookkeeper/pull/67
  
    Thanks @merlimat for the review.
    Do you think we can remove the use of the "extensions"  and use a field for 
the payload ?
    
    At least for the transition from no-auth to auth I can submit a fix on this 
PR or is it better to create a new JIRA ?
    
    my idea is to make the Bookie answer a standard message 
"authentication-disabled" to clients which is trying to make any kind of auth, 
so:
    - on the server side the connection goes to "authenticated" state
    - on the client side falls back to a "authenticated" state
    this standard message will be processed from BookKeeper client system code 
and not passed to the auth plugin
    
    we have to implement a "require.authentication" flag on the Bookie side, to 
let the admin set it to false, in order to deal with legacy clients (and 
Bookies) which do not perform authentication.
    On a rolling restart we upgrade Bookie to the new version with 
require.authentication=false, then upgrade all the clients to the new version 
and/or auth plugin, then we restart again each Bookie ith 
require.authentication=true
    
    this simple implementation will allow to switch from no-auth to auth, but 
not from auth-1-plugin to auth-2-plugin
    
    does it sound good  ?


> ClientAuthProvider and BookieAuthProvider Public API used Protobuf Shaded 
> classes
> ---------------------------------------------------------------------------------
>
>                 Key: BOOKKEEPER-959
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-959
>             Project: Bookkeeper
>          Issue Type: Bug
>          Components: bookkeeper-client, bookkeeper-server
>    Affects Versions: 4.4.0
>            Reporter: Enrico Olivelli
>            Assignee: Enrico Olivelli
>            Priority: Blocker
>             Fix For: 4.5.0
>
>
> With 4.4.0 we introduced the ability to implement custom authentication 
> plugins.
> The new interfaces ClientAuthProvider and BookieAuthProvider depend on 
> ExtensionRegistry, which is a shaded dependency.
> As a consequence it is not possibile to implement any custom auth provider in 
> code outside the project, because shaded/relocated dependencies cannot be 
> used.
> We need to break the actual interface and introduce a new way to implement 
> such plugins in a portable way



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to