Java源码示例:org.wso2.balana.VersionConstraints
示例1
@Override
public AbstractPolicy getPolicy(URI identifier, int type, VersionConstraints constraints) {
AbstractPolicy policy = policyCollection.get(identifier);
if (policy != null) {
// we found a valid version, so see if it's the right kind,
// and if it is then we return it
if (type == PolicyReference.POLICY_REFERENCE) {
if (policy instanceof Policy) {
return policy;
}
} else {
if (policy instanceof PolicySet) {
return policy;
}
}
}
return null;
}
示例2
@Override
public AbstractPolicy getPolicy(URI identifier, int type, VersionConstraints constraints) {
AbstractPolicy policy = policyCollection.get(identifier);
if (policy != null) {
// we found a valid version, so see if it's the right kind,
// and if it is then we return it
if (type == PolicyReference.POLICY_REFERENCE) {
if (policy instanceof Policy)
return policy;
} else {
if (policy instanceof PolicySet)
return policy;
}
}
return null;
}
示例3
@Override
public PolicyFinderResult findPolicy(URI idReference, int type, VersionConstraints constraints,
PolicyMetaData parentMetaData) {
AbstractPolicy policy = policies.get(idReference);
if (policy != null) {
if (type == PolicyReference.POLICY_REFERENCE) {
if (policy instanceof Policy) {
return new PolicyFinderResult(policy);
}
} else {
if (policy instanceof PolicySet) {
return new PolicyFinderResult(policy);
}
}
}
// if there was an error loading the policy, return the error
ArrayList<String> code = new ArrayList<String>();
code.add(Status.STATUS_PROCESSING_ERROR);
Status status = new Status(code,
"couldn't load referenced policy");
return new PolicyFinderResult(status);
}
示例4
public PolicyFinderResult findPolicy(URI idReference, int type, VersionConstraints constraints,
PolicyMetaData parentMetaData) {
// clear all current policies
policies.getPolicies().clear();
AbstractPolicy policy = null;
try {
AbstractPolicy policyFromStore = policyReader.readPolicy(idReference.toString(),
this.policyFinder);
if (policyFromStore != null) {
if (type == PolicyReference.POLICY_REFERENCE) {
if (policyFromStore instanceof Policy) {
policy = policyFromStore;
policies.addPolicy(policy);
}
} else {
if (policyFromStore instanceof PolicySet) {
policy = policyFromStore;
policies.addPolicy(policy);
}
}
}
} catch (EntitlementException e) {
// ignore and just log the error.
log.error(e);
}
if (policy == null) {
return new PolicyFinderResult();
} else {
return new PolicyFinderResult(policy);
}
}
示例5
/**
* Attempts to retrieve a policy based on the given identifier and other constraints. If there
* are multiple versions of the identified policy that meet the version constraints, then the
* most recent version is returned.
*
* @param identifier
* @param type
* @param constraints
* @return
*/
public AbstractPolicy getPolicy(URI identifier, int type, VersionConstraints constraints) {
TreeSet<AbstractPolicy> set = policies.get(identifier.toString());
// if we don't know about this identifier then there's nothing to do
if (set == null)
return null;
// walk through the set starting with the most recent version, looking
// for a match until we exhaust all known versions
Iterator<AbstractPolicy> it = set.iterator();
while (it.hasNext()) {
AbstractPolicy policy = (AbstractPolicy) (it.next());
if (constraints.meetsConstraint(policy.getVersion())) {
// we found a valid version, so see if it's the right kind,
// and if it is then we return it
if (type == PolicyReference.POLICY_REFERENCE) {
if (policy instanceof Policy)
return policy;
} else {
if (policy instanceof PolicySet)
return policy;
}
}
}
// we didn't find a match
return null;
}
示例6
@Override
public PolicyFinderResult findPolicy(URI idReference, int type, VersionConstraints constraints,
PolicyMetaData parentMetaData) {
AbstractPolicy policy = policyReferenceCache.get(idReference);
if (policy == null) {
if (this.finderModules != null) {
for (PolicyFinderModule finderModule : this.finderModules) {
String policyString = finderModule.getReferencedPolicy(idReference.toString());
if (policyString != null) {
policy = policyReader.getPolicy(policyString);
if (policy != null) {
policyReferenceCache.put(idReference, policy);
break;
}
}
}
}
}
if (policy != null) {
// we found a valid version, so see if it's the right kind,
// and if it is then we return it
if (type == PolicyReference.POLICY_REFERENCE) {
if (policy instanceof Policy) {
return new PolicyFinderResult(policy);
}
} else {
if (policy instanceof PolicySet) {
return new PolicyFinderResult(policy);
}
}
}
return new PolicyFinderResult();
}
示例7
public PolicyFinderResult findPolicy(URI idReference, int type, VersionConstraints constraints,
PolicyMetaData parentMetaData) {
// clear all current policies
policies.getPolicies().clear();
AbstractPolicy policy = null;
try {
AbstractPolicy policyFromStore = policyReader.readPolicy(idReference.toString(),
this.policyFinder);
if (policyFromStore != null) {
if (type == PolicyReference.POLICY_REFERENCE) {
if (policyFromStore instanceof Policy) {
policy = policyFromStore;
policies.addPolicy(policy);
}
} else {
if (policyFromStore instanceof PolicySet) {
policy = policyFromStore;
policies.addPolicy(policy);
}
}
}
} catch (EntitlementException e) {
// ignore and just log the error.
log.error(e);
}
if (policy == null) {
return new PolicyFinderResult();
} else {
return new PolicyFinderResult(policy);
}
}
示例8
/**
* Attempts to retrieve a policy based on the given identifier and other constraints. If there
* are multiple versions of the identified policy that meet the version constraints, then the
* most recent version is returned.
*
* @param identifier
* @param type
* @param constraints
* @return
*/
public AbstractPolicy getPolicy(URI identifier, int type, VersionConstraints constraints) {
TreeSet<AbstractPolicy> set = policies.get(identifier.toString());
// if we don't know about this identifier then there's nothing to do
if (set == null)
return null;
// walk through the set starting with the most recent version, looking
// for a match until we exhaust all known versions
Iterator<AbstractPolicy> it = set.iterator();
while (it.hasNext()) {
AbstractPolicy policy = (AbstractPolicy) (it.next());
if (constraints.meetsConstraint(policy.getVersion())) {
// we found a valid version, so see if it's the right kind,
// and if it is then we return it
if (type == PolicyReference.POLICY_REFERENCE) {
if (policy instanceof Policy)
return policy;
} else {
if (policy instanceof PolicySet)
return policy;
}
}
}
// we didn't find a match
return null;
}
示例9
@Override
public PolicyFinderResult findPolicy(URI idReference, int type, VersionConstraints constraints,
PolicyMetaData parentMetaData) {
AbstractPolicy policy = policyReferenceCache.get(idReference);
if (policy == null) {
if (this.finderModules != null) {
for (PolicyFinderModule finderModule : this.finderModules) {
String policyString = finderModule.getReferencedPolicy(idReference.toString());
if (policyString != null) {
policy = policyReader.getPolicy(policyString);
if (policy != null) {
policyReferenceCache.put(idReference, policy);
break;
}
}
}
}
}
if (policy != null) {
// we found a valid version, so see if it's the right kind,
// and if it is then we return it
if (type == PolicyReference.POLICY_REFERENCE) {
if (policy instanceof Policy) {
return new PolicyFinderResult(policy);
}
} else {
if (policy instanceof PolicySet) {
return new PolicyFinderResult(policy);
}
}
}
return new PolicyFinderResult();
}
示例10
/**
* returns policy by identifier type and version
*
* @param identifier policy identifier
* @param type policy type whether policy or policy set
* @param constraints policy version constraints
* @return policy as AbstractPolicy object of Balana
*/
public AbstractPolicy getPolicy(URI identifier, int type, VersionConstraints constraints);
示例11
/**
* returns policy by identifier type and version
*
* @param identifier policy identifier
* @param type policy type whether policy or policy set
* @param constraints policy version constraints
* @return policy as AbstractPolicy object of Balana
*/
public AbstractPolicy getPolicy(URI identifier, int type, VersionConstraints constraints);
示例12
/**
* Tries to find one and only one matching policy given the idReference If more than one policy
* is found, this is an error and must be reported as such. If no policies are found, then an
* empty result must be returned. By default this method returns an empty result. This method
* should never return null.
*
* @param idReference an identifier specifying some policy
* @param type type of reference (policy or policySet) as identified by the fields in
* <code>PolicyReference</code>
* @param constraints any optional constraints on the version of the referenced policy (this
* will never be null, but it may impose no constraints, and in fact will never
* impose constraints when used from a pre-2.0 XACML policy)
* @param parentMetaData the meta-data from the parent policy, which provides XACML version,
* factories, etc.
*
* @return the result of looking for a matching policy
*/
public PolicyFinderResult findPolicy(URI idReference, int type, VersionConstraints constraints,
PolicyMetaData parentMetaData) {
return new PolicyFinderResult();
}