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