import java.util.Date;
import java.util.Iterator;
import java.util.TreeSet;
import com.eruces.teadmin.*;
import com.eruces.teagent.*;
public class Java_Admin_ACL_List_Trust {
private static final String m_strServ = "sampleserver";
private static final int m_intPort = 8888;
private static final String m_strAdminUser = "ls";
private static final String m_strAdminPass = "password1A";
private static final String m_strFile = "util/test.txt.enc";
private static TEAgentConnection m_conn;
public static void connect() throws TEAgentException {
m_conn = TEAgentConnectionFactory.getInstance(TEAgentConnectionFactory.SECURE_USER_PASSWORD);
m_conn.open(m_strServ, m_intPort, m_strAdminUser, m_strAdminPass);
System.out.println("Connected to " + m_strServ + ":" + m_intPort + " as " + m_strAdminUser + ".");
}
public static void disconnect() throws TEAgentException {
m_conn.close();
System.out.println("Disconnected from " + m_strServ + ":" + m_intPort + " as " + m_strAdminUser + ".");
}
public static String getTtag(String strFileName) throws TEAgentException {
TEAgentFile agent = new TEAgentFile(strFileName);
return agent.getHiddenLinkFromFile();
}
public static void getACL(String strTtag) throws TEAgentException, AdminException
{
Administration admin = new Administration();
admin.attachConnection(m_conn);
try {
ACLInfo info = admin.getACL(strTtag);
System.out.println("ACL Info for File \"" + m_strFile + "\":");
System.out.println("\t" + "T-tag: " + info.getHiddenLink());
System.out.println("\t" + "Hash Code: " + info.hashCode());
System.out.println("\t" + "Created: " + new Date(info.getCreationTimeStamp().getTime() * 1000));
System.out.println("\t" + "Entries: " + info.getACLEntryCount());
TreeSet<?> entries = info.getAllEntries();
PList plist = new PList();
Iterator<?> iter = entries.iterator();
while (iter.hasNext()) {
ACLEntry entry = (ACLEntry)iter.next();
long usr_id = entry.getPrincipalID();
plist.add(usr_id);
}
PrincipalInfo[] pinfo = admin.getPrincipalList(plist);
for (int i = 0; i < pinfo.length; i ++) {
PrincipalInfo user = pinfo[i];
System.out.println("ACL Entry:");
System.out.println("\t" + "User Name: " + user.getPrincipalName());
System.out.println("\t" + "User ID: " + user.getPrincipalID());
System.out.println("\t" + "User Type: " + user.getClass().toString());
System.out.println("\t" + "System ID: " + user.getSystemID());
}
}
catch (TEServerException tse) {
System.out.println("The user accessing the ACL must be the owner of the T-tag.");
}
finally {
admin.detachConnection();
}
}
public static void main(String[] args)
{
try {
connect();
System.out.println();
getACL(getTtag(m_strFile));
System.out.println();
disconnect();
}
catch (Exception ex) {
System.out.println("Exception encountered: ");
ex.printStackTrace();
}
}
}