A Security Filter only exists in association with a user and a project. It is possible to get a list of users associated to a particular security filter inside a project. This sample application returns such list.
package com.Strategy.sdk;
import com.Strategy.web.objects.WebIServerSession;
import com.Strategy.web.objects.WebObjectSource;
import com.Strategy.web.objects.WebObjectsFactory;
import com.Strategy.web.objects.WebProjectInstance;
import com.Strategy.web.objects.admin.users.WebMDSecurityFilter;
import com.Strategy.web.objects.admin.users.WebUserEntity;
import com.Strategy.web.objects.admin.users.WebUserSearch;
import com.Strategy.web.objects.admin.users.WebUserServicesSource;
import com.Strategy.webapi.EnumDSSXMLApplicationType;
import com.Strategy.webapi.EnumDSSXMLObjectFlags;
import com.Strategy.webapi.EnumDSSXMLObjectTypes;
public class SecurityFilterMapping {
public static void main(String arg[]) {
WebObjectsFactory wof = WebObjectsFactory.getInstance();
WebIServerSession wiss = wof.getIServerSession();
WebObjectSource wos = wof.getObjectSource();
wos.setFlags(EnumDSSXMLObjectFlags.DssXmlObjectTotalObject);
try {
// Creating the connection to the Intelligence server
wiss.setServerName("I-server");
wiss.setServerPort(0);
wiss.setProjectName("Strategy Tutorial");
wiss.setLogin("UserName");
wiss.setPassword("Password");
wiss.setApplicationType(EnumDSSXMLApplicationType.DssXmlApplicationCustomApp);
// Instantiating the WebUserSearch object
WebUserServicesSource wuss = wos.getUserServicesSource();
WebUserSearch wuSearch = wuss.getNewUserSearchObject();
// Instantiating the WebProjectInstance that represents the project for the search
WebProjectInstance project = wof.getProjectSource().getProjects().itemByName("Strategy Tutorial");
// Instantiating the WebMDSecurityFilter that represents the security filter
WebMDSecurityFilter securityFilter = (WebMDSecurityFilter) wos.getObject("06648A0711D50131C00051916B98494F", EnumDSSXMLObjectTypes.DssXmlTypeMDSecurityFilter);
// Setting the parameters for the search
wuSearch.setProject(project);
wuSearch.setSecurityFilter(securityFilter);
WebUserEntity[] webUsers = wuSearch.getResults();
// Printing the list of users/groups that are using that security filter in that project
for (int i = 0; i < webUsers.length; i++) {
System.out.println(webUsers.getName());
//To check if returned is a User(8704) or User Group(8705)
//System.out.println(webUsers.getSubType());
}
// Closing the existing session
wiss.closeSession();
} catch (Exception e) {
e.printStackTrace();
}
}
}