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

ASF GitHub Bot commented on ZOOKEEPER-1525:
-------------------------------------------

Github user lvfangmin commented on the issue:

    https://github.com/apache/zookeeper/pull/84
  
    Generally looks good to me, but I have the same concern as @fpj, maybe in 
the future the newly added auth needs additional parameters, then we have to 
add another wrapper with new interface to keep the old ones backward 
compatible. I also agree a general metadata map is error-prone, but I think we 
can have a compromise solution between explicit parameters and general metadata 
map: 
    
    Create a class (e.g. AuthData) with the explicit parameters(zks, cnxn, 
path, perm, setAcls) in it, which has the get and set method, and use this 
class in the newly added ServerAuthenticationProvider interface. In the future 
if we need additional parameter, we only need to change this class, no 
interface and backward compatible issues will be involved. What do you think 
@Randgalt @fpj?


> Plumb ZooKeeperServer object into auth plugins
> ----------------------------------------------
>
>                 Key: ZOOKEEPER-1525
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1525
>             Project: ZooKeeper
>          Issue Type: Improvement
>    Affects Versions: 3.5.0
>            Reporter: Warren Turkal
>            Assignee: Jordan Zimmerman
>             Fix For: 3.5.3, 3.6.0
>
>         Attachments: ZOOKEEPER-1525.patch, ZOOKEEPER-1525.patch, 
> ZOOKEEPER-1525.patch, ZOOKEEPER-1525.patch, ZOOKEEPER-1525.patch, 
> ZOOKEEPER-1525.patch, ZOOKEEPER-1525.patch, ZOOKEEPER-1525.patch, 
> ZOOKEEPER-1525.patch, ZOOKEEPER-1525.patch
>
>
> I want to plumb the ZooKeeperServer object into the auth plugins so that I 
> can store authentication data in zookeeper itself. With access to the 
> ZooKeeperServer object, I also have access to the ZKDatabase and can look up 
> entries in the local copy of the zookeeper data.
> In order to implement this, I make sure that a ZooKeeperServer instance is 
> passed in to the ProviderRegistry.initialize() method. Then initialize() will 
> try to find a constructor for the AuthenticationProvider that takes a 
> ZooKeeperServer instance. If the constructor is found, it will be used. 
> Otherwise, initialize() will look for a constructor that takes no arguments 
> and use that instead.



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

Reply via email to