[ 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)