package com.hqyg.disjob.register.auth.node;
import java.util.ArrayList;
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;
import com.hqyg.disjob.register.auth.AuthZKRegistry;
import com.hqyg.disjob.register.auth.EjobAuthInfo;
import com.hqyg.disjob.register.auth.EjobReaderACL;
import com.hqyg.disjob.register.repository.ZnodeApi;
import com.hqyg.disjob.register.repository.ZnodeApiCuratorImpl;
class VisitorAuthNode {
protected CuratorFramework client;
protected ZnodeApi znode = new ZnodeApiCuratorImpl();
private String nodepath = AuthConstants.visitorRootPath;
public VisitorAuthNode(String ZKHost){
client = AuthUtil.getClient(ZKHost);
}
public VisitorAuthNode(CuratorFramework client){
this.client = client;
}
public List<AuthInfo> getAuthInfos(){
List<AuthInfo> authInfos = new ArrayList<>();
if(znode.getData(client, nodepath) == null){
new AuthZKRegistry(client).init();
}
authInfos.add(new EjobAuthInfo(znode.getByteData(client, nodepath)));
return authInfos;
}
public List<ACL> getACLs() {
List<ACL> acllist = new ArrayList<>();
String adminAccount = znode.getData(client, nodepath);
acllist.add(new EjobReaderACL(adminAccount));
return acllist;
}
}