MicroStrategy - SDK - Security Filters
How can we create security filter?
How can we determine a list of users who have no security filter?
public class FindUsersWithoutSecurityFilter {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
String methodName = "main";
FindUsersWithoutSecurityFilter p = new FindUsersWithoutSecurityFilter();
WebIServerSession session = getServerSession();
WebObjectSource source = session.getFactory().getObjectSource();
String outputFileName = "C:\\Khai\\UsersWithoutSecurityFilter.txt";
//new PrintWriter(ServerUtil.getFileWriter(fileName, true));
//new File(path)
PrintWriter outputPrintWriter = new PrintWriter(new FileWriter(new File(outputFileName), true));
WebFolder allUsers = p.getAllUsers(source);
int allUsersCount = allUsers.size();
int i = 0;
WebUserSecurityFilters sFilters;
for (i = 0; i < allUsersCount; i++) {
WebUserEntity userEntity = (WebUserEntity) allUsers.get(i);
if (userEntity.isGroup()) {
// We do not have security filter assign to groups so we do not have to do any here
} else {
WebUser user = (WebUser) userEntity;
System.out.println("main. Processing user:" + user.getDisplayName() + ",GUID:" + user.getID());
try {
user.populate();
String loginID = user.getLoginName();
sFilters = user.getSecurityFilters();
if (sFilters.size() == 0) {
System.out.println("User without security filter:" + loginID + ",GUID:" + user.getID());
outputPrintWriter.println(loginID);
outputPrintWriter.flush();
} else {
System.out.println("User with security filter:" + loginID + ",GUID:" + user.getID());
}
} catch(Exception e) {
Log.logger.logp(Level.SEVERE, FindUsersWithoutSecurityFilter.class.getName(), methodName,e.getMessage(),e);
System.exit(1);
}
}
}
outputPrintWriter.close();
}
public static WebIServerSession getServerSession() {
WebIServerSession sessionInfo = null;
try {
String serverName = "...";
//String Project = "";
String loginName = "Administrator";
String password = "...";
WebObjectsFactory woFact = WebObjectsFactory.getInstance();
sessionInfo = woFact.getIServerSession();
sessionInfo.setServerName(serverName);
//sessionInfo.setProjectName(Project);
sessionInfo.setLogin(loginName);
sessionInfo.setPassword(password);
sessionInfo.setAuthMode(EnumDSSXMLAuthModes.DssXmlAuthStandard);
//sessionInfo.setApplicationType(EnumDSSXMLApplicationType.DssXmlApplicationCustomApp);
//Create a new session
sessionInfo.getSessionID();
} catch (WebObjectsException ex) {
System.out.println("Error creating a sesion");
}
return sessionInfo;
}
public WebFolder getAllUsers(WebObjectSource source) {
String methodName = "getAllUsers";
WebFolder searchResults = null;
try {
WebSearch search = null;
search = source.getNewSearchObject();
search.setAsync(false);
search.types().add(EnumDSSXMLObjectSubTypes.DssXmlSubTypeUser);
search.setSearchFlags(search.getSearchFlags() | EnumDSSXMLSearchFlags.DssXmlSearchAbbreviationWildCard);
//search.setDisplayName("*");
search.setAbbreviationPattern("*");
search.setDomain(EnumDSSXMLSearchDomain.DssXmlSearchConfigurationAndAllProjects);
search.submit();
searchResults = search.getResults();
} catch (Exception e) {
Log.logger.logp(Level.SEVERE, FindUsersWithoutSecurityFilter.class.getName(), methodName,e.getMessage(),e);
}
return searchResults;
}
}
page revision: 1, last edited: 08 Feb 2016 21:49