package com.hqyg.disjob.register.auth.node;
import java.util.List;
import org.apache.curator.framework.AuthInfo;
import org.apache.curator.framework.CuratorFramework;
import org.apache.zookeeper.data.ACL;
import com.hqyg.disjob.register.auth.AuthConstants;
import com.hqyg.disjob.register.auth.AuthUtil;
/**
* /ejob/auth/global 下全局账号的访问, 其下的admin和visitor作为一个整体
* @author chengangxiong
*
*/
public class GlobalAuthNode{
private CuratorFramework client;
private AdminAuthNode adminAuthNode;
private VisitorAuthNode visitorAuthNode;
public GlobalAuthNode(String zkHost) {
client = AuthUtil.getAdminClient(zkHost);
init();
}
private void init() {
adminAuthNode = new AdminAuthNode(client);
visitorAuthNode = new VisitorAuthNode(client);
}
public GlobalAuthNode(CuratorFramework client) {
this.client = client;
init();
}
public List<AuthInfo> getAuthInfos(){
List<AuthInfo> authInfos = adminAuthNode.getAuthInfos();
authInfos.addAll(visitorAuthNode.getAuthInfos());
authInfos.add(AuthConstants.defaultAuthInfo);
AuthUtil.closeClient(client);
return authInfos ;
}
public List<ACL> getACLs() {
List<ACL> acllist = adminAuthNode.getACLs();
acllist.addAll(visitorAuthNode.getACLs());
return acllist ;
}
}