/** * Does nothing at init time. */ @Override public void init(PolicyFinder finder) { try { logger.info("Loading repository policies..."); setupActivePolicyDirectories(); m_repositoryPolicies.clear(); Map<String,AbstractPolicy> repositoryPolicies = m_policyLoader.loadPolicies(m_policyParser, m_validateRepositoryPolicies, new File(m_repositoryBackendPolicyDirectoryPath)); repositoryPolicies.putAll( m_policyLoader.loadPolicies(m_policyParser, m_validateRepositoryPolicies, new File(m_repositoryPolicyDirectoryPath))); m_repositoryPolicies.addAll(repositoryPolicies.values()); m_repositoryPolicySet = toPolicySet(m_repositoryPolicies, m_combiningAlgorithm); } catch (Throwable t) { logger.error("Error loading repository policies: " + t.toString(), t); } }
/** * Does nothing at init time. */ @Override public void init(PolicyFinder finder) { try { logger.info("Loading repository policies..."); setupActivePolicyDirectories(); m_repositoryPolicies.clear(); Map<String,AbstractPolicy> repositoryPolicies = m_policyLoader.loadPolicies(m_policyParser, m_validateRepositoryPolicies, new File(m_repositoryBackendPolicyDirectoryPath)); repositoryPolicies.putAll( m_policyLoader.loadPolicies(m_policyParser, m_validateRepositoryPolicies, new File(m_repositoryPolicyDirectoryPath))); m_repositoryPolicies.addAll(repositoryPolicies.values()); m_repositoryPolicySet = toPolicySet(m_repositoryPolicies, m_combiningAlgorithm); } catch (Throwable t) { logger.error("Error loading repository policies: " + t.toString(), t); } }
/** * Gets a deny-biased policy set that includes all repository-wide and * object-specific policies. */ @Override public PolicyFinderResult findPolicy(EvaluationCtx context) { PolicyFinderResult policyFinderResult = null; PolicySet policySet = m_repositoryPolicySet; try { String pid = getPid(context); if (pid != null && !pid.isEmpty()) { AbstractPolicy objectPolicyFromObject = m_policyLoader.loadObjectPolicy(m_policyParser.copy(), pid, m_validateObjectPoliciesFromDatastream); if (objectPolicyFromObject != null) { List<AbstractPolicy> policies = new ArrayList<AbstractPolicy>(m_repositoryPolicies); policies.add(objectPolicyFromObject); policySet = toPolicySet(policies, m_combiningAlgorithm); } } policyFinderResult = new PolicyFinderResult(policySet); } catch (Exception e) { logger.warn("PolicyFinderModule seriously failed to evaluate a policy ", e); policyFinderResult = new PolicyFinderResult(new Status(ERROR_CODE_LIST, e .getMessage())); } return policyFinderResult; }
/** * Gets a deny-biased policy set that includes all repository-wide and * object-specific policies. */ @Override public PolicyFinderResult findPolicy(EvaluationCtx context) { PolicyFinderResult policyFinderResult = null; PolicySet policySet = m_repositoryPolicySet; try { String pid = getPid(context); if (pid != null && !pid.isEmpty()) { AbstractPolicy objectPolicyFromObject = m_policyLoader.loadObjectPolicy(m_policyParser.copy(), pid, m_validateObjectPoliciesFromDatastream); if (objectPolicyFromObject != null) { List<AbstractPolicy> policies = new ArrayList<AbstractPolicy>(m_repositoryPolicies); policies.add(objectPolicyFromObject); policySet = toPolicySet(policies, m_combiningAlgorithm); } } policyFinderResult = new PolicyFinderResult(policySet); } catch (Exception e) { logger.warn("PolicyFinderModule seriously failed to evaluate a policy ", e); policyFinderResult = new PolicyFinderResult(new Status(ERROR_CODE_LIST, e .getMessage())); } return policyFinderResult; }