Projet

Général

Profil

Télécharger (38,2 ko) Statistiques
| Branche: | Tag: | Révision:
/*
* This program is a part of the IoTa Project.
*
* Copyright © 2011-2012 Université de Caen Basse-Normandie, GREYC
* Copyright © 2011 Orange Labs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <http://www.gnu.org/licenses/>
*
* See AUTHORS for a list of contributors.
*/
package fr.unicaen.iota.xacml;

import com.sun.xacml.EvaluationCtx;
import com.sun.xacml.PDPConfig;
import com.sun.xacml.PolicyMetaData;
import com.sun.xacml.UnknownIdentifierException;
import com.sun.xacml.combine.BaseCombiningAlgFactory;
import com.sun.xacml.combine.CombiningAlgFactory;
import com.sun.xacml.combine.CombiningAlgFactoryProxy;
import com.sun.xacml.combine.StandardCombiningAlgFactory;
import com.sun.xacml.cond.FunctionFactory;
import com.sun.xacml.cond.FunctionFactoryProxy;
import com.sun.xacml.cond.StandardFunctionFactory;
import com.sun.xacml.ctx.RequestCtx;
import com.sun.xacml.ctx.ResponseCtx;
import com.sun.xacml.finder.AttributeFinder;
import com.sun.xacml.finder.PolicyFinder;
import com.sun.xacml.finder.impl.CurrentEnvModule;
import fr.unicaen.iota.xacml.combine.SCGroupPolicyAlg;
import fr.unicaen.iota.xacml.combine.SCGroupRuleAcceptAlg;
import fr.unicaen.iota.xacml.combine.SCGroupRuleAlg;
import fr.unicaen.iota.xacml.combine.SCGroupRuleDenyAlg;
import fr.unicaen.iota.xacml.cond.OneOrGlobalFunction;
import fr.unicaen.iota.xacml.configuration.Configuration;
import fr.unicaen.iota.xacml.finder.MyPolicyFinderModule;
import fr.unicaen.iota.xacml.policy.GroupPolicy;
import fr.unicaen.iota.xacml.policy.OwnerPolicies;
import fr.unicaen.iota.xacml.policy.function.RevertRegexpMatch;
import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class AccessPolicyManager {

private static final Log log = LogFactory.getLog(AccessPolicyManager.class);
protected EPCISPDP epcispdp;
protected MyPolicyFinderModule finderModule;

public synchronized EPCISPDP getEpcispdp() {
return epcispdp;
}

public synchronized void setEpcispdp(EPCISPDP epcispdp) {
this.epcispdp = epcispdp;
}

public synchronized void init() {
log.trace("INIT AccessPolicyManager");
}

public AccessPolicyManager() {
initCombiningAlg();
initFunction();
initEPCISPDP();
initFinderModule();
}

public AccessPolicyManager(String partnerName) {
initCombiningAlg();
initFunction();
initEPCISPDP(partnerName);
initFinderModule();
}

public synchronized static AccessPolicyManagerSession getInstance(String partnerName) {
return new AccessPolicyManagerSession(partnerName);
}

public void updatePartner(String partnerName) {
}

public synchronized void initFinderModule() {
PolicyFinder policyFinder = this.epcispdp.getPolicyFinder();
if (policyFinder.getModules().size() != 1) {
finderModule = null;
}
Iterator it = policyFinder.getModules().iterator();
finderModule = (MyPolicyFinderModule) it.next();
}

public synchronized void initEPCISPDP(String partnerName) {
String queryPoliciesDirFileName = Configuration.QUERY_POLICIES_DIRECTORY + partnerName + ".xml";
File queryPoliciesDir = new File(queryPoliciesDirFileName);
ArrayList queryFilesList = new ArrayList();
if (queryPoliciesDir.exists()) {
queryFilesList.add(queryPoliciesDir.getAbsolutePath());
}
String capturePoliciesDirFileName = Configuration.CAPTURE_POLICIES_DIRECTORY + partnerName + ".xml";
File capturePoliciesDir = new File(capturePoliciesDirFileName);
ArrayList captureFilesList = new ArrayList();
if (capturePoliciesDir.exists()) {
captureFilesList.add(capturePoliciesDir.getAbsolutePath());
}

String adminPoliciesDirFileName = Configuration.ADMIN_POLICIES_DIRECTORY + partnerName + ".xml";
File adminPoliciesDir = new File(adminPoliciesDirFileName);
ArrayList adminFilesList = new ArrayList();
if (adminPoliciesDir.exists()) {
adminFilesList.add(adminPoliciesDir.getAbsolutePath());
}

MyPolicyFinderModule policyModule = new MyPolicyFinderModule(queryFilesList, captureFilesList, adminFilesList);
CurrentEnvModule envModule = new CurrentEnvModule();
PolicyFinder policyFinder = new PolicyFinder();
Set policyModules = new HashSet();
policyModules.add(policyModule);
policyFinder.setModules(policyModules);
AttributeFinder attributeFinder = new AttributeFinder();
List attrModules = new ArrayList();
attrModules.add(envModule);
attributeFinder.setModules(attrModules);
PDPConfig pdpConfig = new PDPConfig(attributeFinder, policyFinder, null);
log.trace("INITEPCISPDP -> " + partnerName);
epcispdp = new EPCISPDP(pdpConfig);
}

public synchronized void initEPCISPDP() {
String queryPoliciesDirFileName = Configuration.QUERY_POLICIES_DIRECTORY;
File queryPoliciesDir = new File(queryPoliciesDirFileName);
String[] queryPoliciesFileList = queryPoliciesDir.list();
ArrayList queryFilesList = new ArrayList();
for (String fileN : queryPoliciesFileList) {
File file = new File(queryPoliciesDir.getAbsolutePath() + "/" + fileN);
if (file.exists()) {
queryFilesList.add(queryPoliciesDir.getAbsolutePath() + "/" + fileN);
}
}

String capturePoliciesDirFileName = Configuration.CAPTURE_POLICIES_DIRECTORY;
File capturePoliciesDir = new File(capturePoliciesDirFileName);
String[] capturePoliciesFileList = capturePoliciesDir.list();
ArrayList captureFilesList = new ArrayList();
for (String fileN : capturePoliciesFileList) {
File file = new File(capturePoliciesDir.getAbsolutePath() + "/" + fileN);
if (file.exists()) {
captureFilesList.add(capturePoliciesDir.getAbsolutePath() + "/" + fileN);
}
}

String adminPoliciesDirFileName = Configuration.ADMIN_POLICIES_DIRECTORY;
File adminPoliciesDir = new File(adminPoliciesDirFileName);
String[] adminPoliciesFileList = adminPoliciesDir.list();
ArrayList adminFilesList = new ArrayList();
for (String fileN : adminPoliciesFileList) {
File file = new File(adminPoliciesDir.getAbsolutePath() + "/" + fileN);
if (file.exists()) {
adminFilesList.add(adminPoliciesDir.getAbsolutePath() + "/" + fileN);
}
}


MyPolicyFinderModule policyModule = new MyPolicyFinderModule(queryFilesList, captureFilesList, adminFilesList);
CurrentEnvModule envModule = new CurrentEnvModule();
PolicyFinder policyFinder = new PolicyFinder();
Set policyModules = new HashSet();
policyModules.add(policyModule);
policyFinder.setModules(policyModules);
AttributeFinder attributeFinder = new AttributeFinder();
List attrModules = new ArrayList();
attrModules.add(envModule);
attributeFinder.setModules(attrModules);
PDPConfig pdpConfig = new PDPConfig(attributeFinder, policyFinder, null);
log.trace("INITEPCISPDPx ");
epcispdp = new EPCISPDP(pdpConfig);
}

public synchronized void initCombiningAlg() {
StandardCombiningAlgFactory factory = StandardCombiningAlgFactory.getFactory();
final BaseCombiningAlgFactory newFactory;
Set set = new HashSet();
try {
set = StandardCombiningAlgFactory.getStandardAlgorithms(PolicyMetaData.XACML_1_0_IDENTIFIER);
} catch (UnknownIdentifierException ex) {
log.fatal(null, ex);
}
Set algorithms = new HashSet();
for (Object o : set) {
try {
algorithms.add(factory.createAlgorithm(new URI((String) o)));
} catch (UnknownIdentifierException ex) {
log.fatal(null, ex);
} catch (URISyntaxException ex) {
log.fatal(null, ex);
}
}
newFactory = new BaseCombiningAlgFactory(algorithms);
newFactory.addAlgorithm(new SCGroupPolicyAlg());
newFactory.addAlgorithm(new SCGroupRuleDenyAlg());
newFactory.addAlgorithm(new SCGroupRuleAcceptAlg());
newFactory.addAlgorithm(new SCGroupRuleAlg());
CombiningAlgFactory.setDefaultFactory(new CombiningAlgFactoryProxy() {

@Override
public CombiningAlgFactory getFactory() {
return newFactory;
}
});
}

public synchronized void initFunction() {
log.trace("init functions");
FunctionFactoryProxy proxy = StandardFunctionFactory.getNewFactoryProxy();
proxy.getConditionFactory().addFunction(new OneOrGlobalFunction(OneOrGlobalFunction.NAME_GLOBAL_DENY));
proxy.getConditionFactory().addFunction(new OneOrGlobalFunction(OneOrGlobalFunction.NAME_GLOBAL_PERMIT));
FunctionFactory.setDefaultFactory(proxy);
FunctionFactory factory = FunctionFactory.getTargetInstance();
factory.addFunction(new RevertRegexpMatch());

}

public synchronized ResponseCtx evaluate(RequestCtx request) {
return epcispdp.evaluate(request);
}

public synchronized ResponseCtx evaluate(EvaluationCtx context) {
return epcispdp.evaluate(context);
}

public synchronized List getPolicies(String owner) {
List res = new ArrayList();
res.add(getQueryPolicy(owner));
res.add(getCapturePolicy(owner));
res.add(getAdminPolicy(owner));
return res;
}

public synchronized void save(String identifier) {
finderModule.save(identifier);
}

public synchronized boolean updateAPMSession(AccessPolicyManagerSession APMS) {
return finderModule.updateAPMSession(APMS, this.epcispdp.getPolicyFinder());
}

public synchronized boolean updateAPMQuerySession(AccessPolicyManagerSession APMS) {
return finderModule.updateAPMQuerySession(APMS, this.epcispdp.getPolicyFinder());
}

public synchronized boolean updateAPMCaptureSession(AccessPolicyManagerSession APMS) {
return finderModule.updateAPMCaptureSession(APMS, this.epcispdp.getPolicyFinder());
}

public synchronized boolean updateAPMAdminSession(AccessPolicyManagerSession APMS) {
return finderModule.updateAPMAdminSession(APMS, this.epcispdp.getPolicyFinder());
}

public synchronized boolean saveQueryPolicies(String identifier) {
return finderModule.saveQueryPolicies(identifier);
}

public synchronized boolean saveCapturePolicies(String identifier) {
return finderModule.saveCapturePolicies(identifier);
}

public synchronized boolean saveAdminPolicies(String identifier) {
return finderModule.saveAdminPolicies(identifier);
}

public synchronized boolean updateQueryGroupName(String partnerID, String groupId, String value) {
return finderModule.updateQueryGroupName(partnerID, groupId, value);
}

public synchronized boolean updateCaptureGroupName(String partnerID, String groupId, String value) {
return finderModule.updateCaptureGroupName(partnerID, groupId, value);
}

public synchronized boolean updateAdminGroupName(String partnerID, String groupId, String value) {
return finderModule.updateAdminGroupName(partnerID, groupId, value);
}

//#####################################################
//################## QUERY MODULE #####################
//#####################################################
public synchronized OwnerPolicies getQueryPolicy(String owner) {
return finderModule.getPolicies().getQueryPolicy(owner);
}

public synchronized boolean addQueryPolicy(OwnerPolicies ownerPolicies) {
return finderModule.addQueryPolicy(ownerPolicies);
}

public synchronized boolean addQueryGroupPolicy(String identifier, GroupPolicy groupPolicy) {
return finderModule.addQueryGroupPolicy(identifier, groupPolicy);
}

//####################################################
//#################### FILTERS #######################
//####################################################
public synchronized boolean addQueryActionFilter(String identifier, String groupName, String actionName) {
return finderModule.addQueryActionFilter(identifier, groupName, actionName);
}

public synchronized boolean addQueryUserFilter(String identifier, String groupName, String userName) {
return finderModule.addQueryUserFilter(identifier, groupName, userName);
}

public synchronized boolean addQueryBizStepFilter(String identifier, String groupName, String bizStep) {
return finderModule.addQueryBizStepFilter(identifier, groupName, bizStep);
}

public synchronized boolean addQueryEpcFilter(String identifier, String groupName, String epc) {
return finderModule.addQueryEpcFilter(identifier, groupName, epc);
}

public synchronized boolean addQueryEventTimeFilter(String identifier, String groupName, List dates) {
return finderModule.addQueryEventTimeFilter(identifier, groupName, dates);
}

public synchronized boolean addQueryRecordTimeFilter(String identifier, String groupName, List recordTimes) {
return finderModule.addQueryRecordTimeFilter(identifier, groupName, recordTimes);
}

public synchronized boolean addQueryOperationFilter(String identifier, String groupName, String operation) {
return finderModule.addQueryOperationFilter(identifier, groupName, operation);
}

public synchronized boolean addQueryEventTypeFilter(String identifier, String groupName, String eventType) {
return finderModule.addQueryEventTypeFilter(identifier, groupName, eventType);
}

public synchronized boolean addQueryParentIdFilter(String identifier, String groupName, String parentId) {
return finderModule.addQueryParentIdFilter(identifier, groupName, parentId);
}

public synchronized boolean addQueryChildEpcFilter(String identifier, String groupName, String childEpc) {
return finderModule.addQueryChildEpcFilter(identifier, groupName, childEpc);
}

public synchronized boolean addQueryQuantityFilter(String identifier, String groupName, List quantities) {
return finderModule.addQueryQuantityFilter(identifier, groupName, quantities);
}

public synchronized boolean addQueryReadPointFilter(String identifier, String groupName, String readPoint) {
return finderModule.addQueryReadPointFilter(identifier, groupName, readPoint);
}

public synchronized boolean addQueryBizLocFilter(String identifier, String groupName, String bizLoc) {
return finderModule.addQueryBizLocFilter(identifier, groupName, bizLoc);
}

public synchronized boolean addQueryBizTransFilter(String identifier, String groupName, String bizTrans) {
return finderModule.addQueryBizTransFilter(identifier, groupName, bizTrans);
}

public synchronized boolean addQueryDispositionFilter(String identifier, String groupName, String disposition) {
return finderModule.addQueryDispositionFilter(identifier, groupName, disposition);
}

public synchronized boolean addQueryExtensionFilter(String identifier, String groupName, String extensionName, String extensionType) {
return finderModule.addQueryExtensionFilter(identifier, groupName, extensionName, extensionType);
}

public synchronized boolean addQueryExtensionFilter(String identifier, String groupName, List extensions, String extensionType) {
return finderModule.addQueryExtensionFilter(identifier, groupName, extensions, extensionType);
}

public synchronized boolean addQueryMasterDataIdFilter(String identifier, String groupName, String masterDataId) {
return finderModule.addQueryMasterDataIdFilter(identifier, groupName, masterDataId);
}

public synchronized boolean removeQueryActionFilter(String identifier, String groupName, String actionName) {
return finderModule.removeQueryActionFilter(identifier, groupName, actionName);
}

public synchronized boolean removeQueryUserFilter(String identifier, String groupName, String userName) {
return finderModule.removeQueryUserFilter(identifier, groupName, userName);
}

public synchronized boolean removeQueryBizStepFilter(String identifier, String groupName, String bizStep) {
return finderModule.removeQueryBizStepFilter(identifier, groupName, bizStep);
}

public synchronized boolean removeQueryEpcFilter(String identifier, String groupName, String epc) {
return finderModule.removeQueryEpcFilter(identifier, groupName, epc);
}

public synchronized boolean removeQueryEventTimeFilter(String identifier, String groupName, List dates) {
return finderModule.removeQueryEventTimeFilter(identifier, groupName, dates);
}

public synchronized boolean removeQueryRecordTimeFilter(String identifier, String groupName, List recordTimes) {
return finderModule.removeQueryRecordTimeFilter(identifier, groupName, recordTimes);
}

public synchronized boolean removeQueryOperationFilter(String identifier, String groupName, String operation) {
return finderModule.removeQueryOperationFilter(identifier, groupName, operation);
}

public synchronized boolean removeQueryEventTypeFilter(String identifier, String groupName, String eventType) {
return finderModule.removeQueryEventTypeFilter(identifier, groupName, eventType);
}

public synchronized boolean removeQueryParentIdFilter(String identifier, String groupName, String parentId) {
return finderModule.removeQueryParentIdFilter(identifier, groupName, parentId);
}

public synchronized boolean removeQueryChildEpcFilter(String identifier, String groupName, String childEpc) {
return finderModule.removeQueryChildEpcFilter(identifier, groupName, childEpc);
}

public synchronized boolean removeQueryQuantityFilter(String identifier, String groupName, List quantities) {
return finderModule.removeQueryQuantityFilter(identifier, groupName, quantities);
}

public synchronized boolean removeQueryReadPointFilter(String identifier, String groupName, String readPoint) {
return finderModule.removeQueryReadPointFilter(identifier, groupName, readPoint);
}

public synchronized boolean removeQueryBizLocFilter(String identifier, String groupName, String bizLoc) {
return finderModule.removeQueryBizLocFilter(identifier, groupName, bizLoc);
}

public synchronized boolean removeQueryBizTransFilter(String identifier, String groupName, String bizTrans) {
return finderModule.removeQueryBizTransFilter(identifier, groupName, bizTrans);
}

public synchronized boolean removeQueryDispositionFilter(String identifier, String groupName, String disposition) {
return finderModule.removeQueryDispositionFilter(identifier, groupName, disposition);
}

public synchronized boolean removeQueryExtensionFilter(String identifier, String groupName, String extensionName, String extensionType) {
return finderModule.removeQueryExtensionFilter(identifier, groupName, extensionName, extensionType);
}

public synchronized boolean removeQueryExtensionFilter(String identifier, String groupName, List extensions, String extensionType) {
return finderModule.removeQueryExtensionFilter(identifier, groupName, extensions, extensionType);
}

public synchronized boolean removeQueryMasterDataIdFilter(String identifier, String groupName, String masterDataId) {
return finderModule.removeQueryMasterDataIdFilter(identifier, groupName, masterDataId);
}

public synchronized boolean updateQueryPolicy(OwnerPolicies ownerPolicies) {
return finderModule.updateQueryPolicy(ownerPolicies);
}

public synchronized boolean updateQueryPolicy(String identifier, GroupPolicy groupPolicy) {
return finderModule.updateQueryPolicy(identifier, groupPolicy);
}

public synchronized boolean deleteQueryOwnerPolicy(OwnerPolicies policy) {
return finderModule.deleteQueryOwnerPolicy(policy);
}

public synchronized boolean deleteQueryGroupPolicy(String identifier, GroupPolicy policy) {
return finderModule.deleteQueryGroupPolicy(identifier, policy);
}

public synchronized boolean deleteQueryGroupPolicy(String identifier, String policyId) {
return finderModule.deleteQueryGroupPolicy(identifier, policyId);
}

public synchronized boolean switchQueryPermissionUsers(String identifier, String policyId) {
return finderModule.switchQueryPermissionUsers(identifier, policyId);
}

public synchronized boolean switchQueryPermissionBizSteps(String identifier, String policyId) {
return finderModule.switchQueryPermissionBizSteps(identifier, policyId);
}

public synchronized boolean switchQueryPermissionEpcs(String identifier, String policyId) {
return finderModule.switchQueryPermissionEpcs(identifier, policyId);
}

public synchronized boolean switchQueryPermissionEventTimes(String identifier, String policyId) {
return finderModule.switchQueryPermissionEventTimes(identifier, policyId);
}

public synchronized boolean switchQueryPermissionRecordTimes(String identifier, String policyId) {
return finderModule.switchQueryPermissionRecordTimes(identifier, policyId);
}

public synchronized boolean switchQueryPermissionOperations(String identifier, String policyId) {
return finderModule.switchQueryPermissionOperations(identifier, policyId);
}

public synchronized boolean switchQueryPermissionEventTypes(String identifier, String policyId) {
return finderModule.switchQueryPermissionEventTypes(identifier, policyId);
}

public synchronized boolean switchQueryPermissionParentIds(String identifier, String policyId) {
return finderModule.switchQueryPermissionParentIds(identifier, policyId);
}

public synchronized boolean switchQueryPermissionChildEpcs(String identifier, String policyId) {
return finderModule.switchQueryPermissionChildEpcs(identifier, policyId);
}

public synchronized boolean switchQueryPermissionQuantities(String identifier, String policyId) {
return finderModule.switchQueryPermissionQuantities(identifier, policyId);
}

public synchronized boolean switchQueryPermissionReadPoints(String identifier, String policyId) {
return finderModule.switchQueryPermissionReadPoints(identifier, policyId);
}

public synchronized boolean switchQueryPermissionBizLocs(String identifier, String policyId) {
return finderModule.switchQueryPermissionBizLocs(identifier, policyId);
}

public synchronized boolean switchQueryPermissionBizTrans(String identifier, String policyId) {
return finderModule.switchQueryPermissionBizTrans(identifier, policyId);
}

public synchronized boolean switchQueryPermissionDispositions(String identifier, String policyId) {
return finderModule.switchQueryPermissionDispositions(identifier, policyId);
}

public synchronized boolean switchQueryPermissionExtensions(String identifier, String policyId, String extensionId) {
return finderModule.switchQueryPermissionExtensions(identifier, policyId, extensionId);
}

public synchronized boolean switchQueryPermissionMasterDataIds(String identifier, String policyId) {
return finderModule.switchQueryPermissionMasterDataIds(identifier, policyId);
}

//####################################################
//################# CAPTURE MODULE ###################
//####################################################
public synchronized boolean switchCapturePermissionUsers(String identifier, String policyId) {
return finderModule.switchCapturePermissionUsers(identifier, policyId);
}

public synchronized boolean switchCapturePermissionBizSteps(String identifier, String policyId) {
return finderModule.switchCapturePermissionBizSteps(identifier, policyId);
}

public synchronized boolean switchCapturePermissionEpcs(String identifier, String policyId) {
return finderModule.switchCapturePermissionEpcs(identifier, policyId);
}

public synchronized boolean switchCapturePermissionEventTimes(String identifier, String policyId) {
return finderModule.switchCapturePermissionEventTimes(identifier, policyId);
}

public synchronized boolean switchCapturePermissionRecordTimes(String identifier, String policyId) {
return finderModule.switchCapturePermissionRecordTimes(identifier, policyId);
}

public synchronized boolean switchCapturePermissionOperations(String identifier, String policyId) {
return finderModule.switchCapturePermissionOperations(identifier, policyId);
}

public synchronized boolean switchCapturePermissionEventTypes(String identifier, String policyId) {
return finderModule.switchCapturePermissionEventTypes(identifier, policyId);
}

public synchronized boolean switchCapturePermissionParentIds(String identifier, String policyId) {
return finderModule.switchCapturePermissionParentIds(identifier, policyId);
}

public synchronized boolean switchCapturePermissionChildEpcs(String identifier, String policyId) {
return finderModule.switchCapturePermissionChildEpcs(identifier, policyId);
}

public synchronized boolean switchCapturePermissionQuantities(String identifier, String policyId) {
return finderModule.switchCapturePermissionQuantities(identifier, policyId);
}

public synchronized boolean switchCapturePermissionReadPoints(String identifier, String policyId) {
return finderModule.switchCapturePermissionReadPoints(identifier, policyId);
}

public synchronized boolean switchCapturePermissionBizLocs(String identifier, String policyId) {
return finderModule.switchCapturePermissionBizLocs(identifier, policyId);
}

public synchronized boolean switchCapturePermissionBizTrans(String identifier, String policyId) {
return finderModule.switchCapturePermissionBizTrans(identifier, policyId);
}

public synchronized boolean switchCapturePermissionDispositions(String identifier, String policyId) {
return finderModule.switchCapturePermissionDispositions(identifier, policyId);
}

public synchronized boolean switchCapturePermissionExtensions(String identifier, String policyId, String extensionId) {
return finderModule.switchCapturePermissionExtensions(identifier, policyId, extensionId);
}

public synchronized boolean switchCapturePermissionMasterDataIds(String identifier, String policyId) {
return finderModule.switchCapturePermissionMasterDataIds(identifier, policyId);
}

public synchronized OwnerPolicies getCapturePolicy(String owner) {
return finderModule.getPolicies().getCapturePolicy(owner);
}

public synchronized boolean addCapturePolicy(OwnerPolicies ownerPolicies) {
return finderModule.addCapturePolicy(ownerPolicies);
}

public synchronized boolean addCaptureGroupPolicy(String identifier, GroupPolicy groupPolicy) {
return finderModule.addCaptureGroupPolicy(identifier, groupPolicy);
}

//####################################################
//################## FILTERS #########################
//####################################################
public synchronized boolean addCaptureActionFilter(String identifier, String groupName, String actionName) {
return finderModule.addCaptureActionFilter(identifier, groupName, actionName);
}

public synchronized boolean addCaptureUserFilter(String identifier, String groupName, String userName) {
return finderModule.addCaptureUserFilter(identifier, groupName, userName);
}

public synchronized boolean addCaptureBizStepFilter(String identifier, String groupName, String bizStep) {
return finderModule.addCaptureBizStepFilter(identifier, groupName, bizStep);
}

public synchronized boolean addCaptureEpcFilter(String identifier, String groupName, String epc) {
return finderModule.addCaptureEpcFilter(identifier, groupName, epc);
}

public synchronized boolean addCaptureEventTimeFilter(String identifier, String groupName, List dates) {
return finderModule.addCaptureEventTimeFilter(identifier, groupName, dates);
}

public synchronized boolean addCaptureRecordTimeFilter(String identifier, String groupName, List recordTimes) {
return finderModule.addCaptureRecordTimeFilter(identifier, groupName, recordTimes);
}

public synchronized boolean addCaptureOperationFilter(String identifier, String groupName, String operation) {
return finderModule.addCaptureOperationFilter(identifier, groupName, operation);
}

public synchronized boolean addCaptureEventTypeFilter(String identifier, String groupName, String eventType) {
return finderModule.addCaptureEventTypeFilter(identifier, groupName, eventType);
}

public synchronized boolean addCaptureParentIdFilter(String identifier, String groupName, String parentId) {
return finderModule.addCaptureParentIdFilter(identifier, groupName, parentId);
}

public synchronized boolean addCaptureChildEpcFilter(String identifier, String groupName, String childEpc) {
return finderModule.addCaptureChildEpcFilter(identifier, groupName, childEpc);
}

public synchronized boolean addCaptureQuantityFilter(String identifier, String groupName, List quantities) {
return finderModule.addCaptureQuantityFilter(identifier, groupName, quantities);
}

public synchronized boolean addCaptureReadPointFilter(String identifier, String groupName, String readPoint) {
return finderModule.addCaptureReadPointFilter(identifier, groupName, readPoint);
}

public synchronized boolean addCaptureBizLocFilter(String identifier, String groupName, String bizLoc) {
return finderModule.addCaptureBizLocFilter(identifier, groupName, bizLoc);
}

public synchronized boolean addCaptureBizTransFilter(String identifier, String groupName, String bizTrans) {
return finderModule.addCaptureBizTransFilter(identifier, groupName, bizTrans);
}

public synchronized boolean addCaptureDispositionFilter(String identifier, String groupName, String disposition) {
return finderModule.addCaptureDispositionFilter(identifier, groupName, disposition);
}

public synchronized boolean addCaptureExtensionFilter(String identifier, String groupName, String extensionName, String extensionType) {
return finderModule.addCaptureExtensionFilter(identifier, groupName, extensionName, extensionType);
}

public synchronized boolean addCaptureExtensionFilter(String identifier, String groupName, List extensions, String extensionType) {
return finderModule.addCaptureExtensionFilter(identifier, groupName, extensions, extensionType);
}

public synchronized boolean addCaptureMasterDataIdFilter(String identifier, String groupName, String masterDataId) {
return finderModule.addCaptureMasterDataIdFilter(identifier, groupName, masterDataId);
}

public synchronized boolean removeCaptureActionFilter(String identifier, String groupName, String actionName) {
return finderModule.removeCaptureActionFilter(identifier, groupName, actionName);
}

public synchronized boolean removeCaptureUserFilter(String identifier, String groupName, String userName) {
return finderModule.removeCaptureUserFilter(identifier, groupName, userName);
}

public synchronized boolean removeCaptureBizStepFilter(String identifier, String groupName, String bizStep) {
return finderModule.removeCaptureBizStepFilter(identifier, groupName, bizStep);
}

public synchronized boolean removeCaptureEpcFilter(String identifier, String groupName, String epc) {
return finderModule.removeCaptureEpcFilter(identifier, groupName, epc);
}

public synchronized boolean removeCaptureEventTimeFilter(String identifier, String groupName, List dates) {
return finderModule.removeCaptureEventTimeFilter(identifier, groupName, dates);
}

public synchronized boolean removeCaptureRecordTimeFilter(String identifier, String groupName, List recordTimes) {
return finderModule.removeCaptureRecordTimeFilter(identifier, groupName, recordTimes);
}

public synchronized boolean removeCaptureOperationFilter(String identifier, String groupName, String operation) {
return finderModule.removeCaptureOperationFilter(identifier, groupName, operation);
}

public synchronized boolean removeCaptureEventTypeFilter(String identifier, String groupName, String eventType) {
return finderModule.removeCaptureEventTypeFilter(identifier, groupName, eventType);
}

public synchronized boolean removeCaptureParentIdFilter(String identifier, String groupName, String parentId) {
return finderModule.removeCaptureParentIdFilter(identifier, groupName, parentId);
}

public synchronized boolean removeCaptureChildEpcFilter(String identifier, String groupName, String childEpc) {
return finderModule.removeCaptureChildEpcFilter(identifier, groupName, childEpc);
}

public synchronized boolean removeCaptureQuantityFilter(String identifier, String groupName, List quantities) {
return finderModule.removeCaptureQuantityFilter(identifier, groupName, quantities);
}

public synchronized boolean removeCaptureReadPointFilter(String identifier, String groupName, String readPoint) {
return finderModule.removeCaptureReadPointFilter(identifier, groupName, readPoint);
}

public synchronized boolean removeCaptureBizLocFilter(String identifier, String groupName, String bizLoc) {
return finderModule.removeCaptureBizLocFilter(identifier, groupName, bizLoc);
}

public synchronized boolean removeCaptureBizTransFilter(String identifier, String groupName, String bizTrans) {
return finderModule.removeCaptureBizTransFilter(identifier, groupName, bizTrans);
}

public synchronized boolean removeCaptureDispositionFilter(String identifier, String groupName, String disposition) {
return finderModule.removeCaptureDispositionFilter(identifier, groupName, disposition);
}

public synchronized boolean removeCaptureExtensionFilter(String identifier, String groupName, String extensionName, String extensionType) {
return finderModule.removeCaptureExtensionFilter(identifier, groupName, extensionName, extensionType);
}

public synchronized boolean removeCaptureExtensionFilter(String identifier, String groupName, List extensions, String extensionType) {
return finderModule.removeCaptureExtensionFilter(identifier, groupName, extensions, extensionType);
}

public synchronized boolean removeCaptureMasterDataIdFilter(String identifier, String groupName, String masterDataId) {
return finderModule.removeCaptureMasterDataIdFilter(identifier, groupName, masterDataId);
}

public synchronized boolean updateCapturePolicy(OwnerPolicies ownerPolicies) {
return finderModule.updateCapturePolicy(ownerPolicies);
}

public synchronized boolean updateCapturePolicy(String identifier, GroupPolicy groupPolicy) {
return finderModule.updateCapturePolicy(identifier, groupPolicy);
}

public synchronized boolean deleteCaptureOwnerPolicy(OwnerPolicies policy) {
return finderModule.deleteCaptureOwnerPolicy(policy);
}

public synchronized boolean deleteCaptureGroupPolicy(String identifier, GroupPolicy policy) {
return finderModule.deleteCaptureGroupPolicy(identifier, policy);
}

public synchronized boolean deleteCaptureGroupPolicy(String identifier, String policyId) {
return finderModule.deleteCaptureGroupPolicy(identifier, policyId);
}

//####################################################
//############## ADMINISTRATION MODULE ###############
//####################################################
public synchronized OwnerPolicies getAdminPolicy(String owner) {
return finderModule.getPolicies().getAdminPolicy(owner);
}

public synchronized boolean addAdminPolicy(OwnerPolicies ownerPolicies) {
return finderModule.addAdminPolicy(ownerPolicies);
}

public synchronized boolean addAdminGroupPolicy(String identifier, GroupPolicy groupPolicy) {
return finderModule.addAdminGroupPolicy(identifier, groupPolicy);
}

public synchronized boolean addAdminActionFilter(String identifier, String groupName, String actionName) {
return finderModule.addAdminActionFilter(identifier, groupName, actionName);
}

public synchronized boolean addAdminUserFilter(String identifier, String groupName, String userName) {
return finderModule.addAdminUserFilter(identifier, groupName, userName);
}

public synchronized boolean removeAdminActionFilter(String identifier, String groupName, String actionName) {
return finderModule.removeAdminActionFilter(identifier, groupName, actionName);
}

public synchronized boolean removeAdminUserFilter(String identifier, String groupName, String userName) {
return finderModule.removeAdminUserFilter(identifier, groupName, userName);
}

public synchronized boolean deleteAdminOwnerPolicy(OwnerPolicies policy) {
return finderModule.deleteAdminOwnerPolicy(policy);
}

public synchronized boolean deleteAdminGroupPolicy(String identifier, GroupPolicy policy) {
return finderModule.deleteAdminGroupPolicy(identifier, policy);
}

public synchronized boolean deleteAdminGroupPolicy(String identifier, String policyId) {
return finderModule.deleteAdminGroupPolicy(identifier, policyId);
}

public synchronized boolean switchAdminPermissionUsers(String identifier, String policyId) {
return finderModule.switchAdminPermissionUsers(identifier, policyId);
}
}
(1-1/5)