in modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationServicePolicyProvider.java [93:150]
private List<LDAPRealmAuthenticationPolicy> findAuthenticationPolicies(Operation op) {
List<LDAPRealmAuthenticationPolicy> polices = new ArrayList<LDAPRealmAuthenticationPolicy>();
// check explicity added policies first
ConfiguredOperation configuredOperation = findOperation(op);
if (configuredOperation!= null && configuredOperation.getPolicySets().size() > 0) {
for ( PolicySet ps : configuredOperation.getPolicySets()) {
for (Object p : ps.getPolicies()) {
if (p instanceof LDAPRealmAuthenticationPolicy) {
polices.add((LDAPRealmAuthenticationPolicy)p);
}
}
}
}
// otherwise find applicable policySets
if ( polices.size() == 0) {
// FIXME: How do we get a list of effective policySets for a given operation?
for(Operation operation : operations) {
if (operation!= null && operation.getName() != null && operation.getName().equals(op.getName())) {
for (PolicySet ps : operation.getPolicySets()) {
for (Object p : ps.getPolicies()) {
if (p instanceof LDAPRealmAuthenticationPolicy) {
polices.add((LDAPRealmAuthenticationPolicy)p);
}
}
}
}
}
if (service instanceof OperationsConfigurator) {
OperationsConfigurator operationsConfigurator = (OperationsConfigurator)service;
for (ConfiguredOperation cop : operationsConfigurator.getConfiguredOperations()) {
if (cop!= null && cop.getName() != null && cop.getName().equals(op.getName())) {
for (PolicySet ps : cop.getApplicablePolicySets()) {
for (Object p : ps.getPolicies()) {
if (p instanceof LDAPRealmAuthenticationPolicy) {
polices.add((LDAPRealmAuthenticationPolicy)p);
}
}
}
}
}
}
List<PolicySet> policySets = service.getPolicySets();
for (PolicySet ps : policySets) {
for (Object p : ps.getPolicies()) {
if (p instanceof LDAPRealmAuthenticationPolicy) {
polices.add((LDAPRealmAuthenticationPolicy)p);
}
}
}
}
return polices;
}