throw new IOException("Instance info has not been set.");
// validate that we can connect as configured
try {
Connector c = getInstance(implementingClass, conf).getConnector(getPrincipal(implementingClass, conf),
CredentialHelper.extractToken(getTokenClass(implementingClass, conf), getToken(implementingClass, conf)));
if (!c.securityOperations().authenticateUser(getPrincipal(implementingClass, conf),
CredentialHelper.extractToken(getTokenClass(implementingClass, conf), getToken(implementingClass, conf))))
throw new IOException("Unable to authenticate user");
if (!c.securityOperations().hasTablePermission(getPrincipal(implementingClass, conf), getInputTableName(implementingClass, conf), TablePermission.READ))
throw new IOException("Unable to access table");