You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Michi Mutsuzaki (JIRA)" <ji...@apache.org> on 2014/03/29 01:54:15 UTC
[jira] [Commented] (ZOOKEEPER-1525) Plumb ZooKeeperServer object
into auth plugins
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13951652#comment-13951652 ]
Michi Mutsuzaki commented on ZOOKEEPER-1525:
--------------------------------------------
Hi Warren,
Sorry for super-slow response. I have 2 comments:
1. Could you fix these warnings?
{noformat}
compile:
[javac] Compiling 3 source files to /home/michi/svndev/zookeeper/trunk/build/classes
[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.5
[javac] /home/michi/svndev/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/auth/ProviderRegistry.java:57: warning: [cast] redundant cast to AuthenticationProvider
[javac] ap = (AuthenticationProvider)constructor.newInstance(zks);
[javac] ^
[javac] /home/michi/svndev/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/auth/ProviderRegistry.java:60: warning: [cast] redundant cast to AuthenticationProvider
[javac] ap = (AuthenticationProvider)constructor.newInstance();
[javac] ^
[javac] 3 warnings
{noformat}
2. When does this throw NullPointerException? Isn't it supposed to throw IllegalArgumentException if the arguments don't match?
{noformat}
+ Constructor<AuthenticationProvider> constructor = c.getConstructor(ZooKeeperServer.class);
+ try {
+ ap = (AuthenticationProvider)constructor.newInstance(zks);
+ } catch (NullPointerException e) {
+ constructor = c.getConstructor();
+ ap = (AuthenticationProvider)constructor.newInstance();
+ }
{noformat}
> Plumb ZooKeeperServer object into auth plugins
> ----------------------------------------------
>
> Key: ZOOKEEPER-1525
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1525
> Project: ZooKeeper
> Issue Type: Improvement
> Reporter: Warren Turkal
> Assignee: Warren Turkal
> Fix For: 3.5.0
>
> Attachments: 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.2#6252)