summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.5.1/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationServicePolicyProvider.java
diff options
context:
space:
mode:
authorlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2009-08-13 05:00:53 +0000
committerlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2009-08-13 05:00:53 +0000
commit6836d08176b0a62f7443ac098f1345ddd74f4ade (patch)
tree9f1c768f36d15a11fc80e9320213a3c9bc6c55a5 /branches/sca-java-1.5.1/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationServicePolicyProvider.java
parent18940688871a0d2f0d98b629b0b388c4dde1cf74 (diff)
Merging latest updates to policy security http from 1.x branch
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@803775 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-1.5.1/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationServicePolicyProvider.java')
-rw-r--r--branches/sca-java-1.5.1/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationServicePolicyProvider.java142
1 files changed, 98 insertions, 44 deletions
diff --git a/branches/sca-java-1.5.1/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationServicePolicyProvider.java b/branches/sca-java-1.5.1/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationServicePolicyProvider.java
index 6189de5a5a..32fce4eb81 100644
--- a/branches/sca-java-1.5.1/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationServicePolicyProvider.java
+++ b/branches/sca-java-1.5.1/modules/policy-security-http/src/main/java/org/apache/tuscany/sca/policy/security/http/LDAPRealmAuthenticationServicePolicyProvider.java
@@ -81,45 +81,64 @@ public class LDAPRealmAuthenticationServicePolicyProvider implements PolicyProvi
*/
/**
- *
+ * Find applicable authorization policySets
+ * It first check if any explicitly policySet was identified
+ * Otherwise it look into the list of applicablePolicySets
* @param op
* @return
*/
private List<LDAPRealmAuthenticationPolicy> findAuthenticationPolicies(Operation op) {
List<LDAPRealmAuthenticationPolicy> polices = new ArrayList<LDAPRealmAuthenticationPolicy>();
- // 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 (LDAPRealmAuthenticationPolicy.class.isInstance(p)) {
- polices.add((LDAPRealmAuthenticationPolicy)p);
- }
+
+ // 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);
}
}
}
}
- 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()) {
+
+ // 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 (LDAPRealmAuthenticationPolicy.class.isInstance(p)) {
+ if (p instanceof LDAPRealmAuthenticationPolicy) {
polices.add((LDAPRealmAuthenticationPolicy)p);
}
}
}
}
}
- }
- List<PolicySet> policySets = service.getPolicySets();
- for (PolicySet ps : policySets) {
- for (Object p : ps.getPolicies()) {
- if (LDAPRealmAuthenticationPolicy.class.isInstance(p)) {
- 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);
+ }
}
}
}
@@ -128,50 +147,85 @@ public class LDAPRealmAuthenticationServicePolicyProvider implements PolicyProvi
}
/**
- *
+ * Find applicable authorization policySets
+ * It first check if any explicitly policySet was identified
+ * Otherwise it look into the list of applicablePolicySets
* @param op
* @return
*/
private List<AuthorizationPolicy> findAuthorizationPolicies(Operation op) {
List<AuthorizationPolicy> polices = new ArrayList<AuthorizationPolicy>();
- // 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 (AuthorizationPolicy.class.isInstance(p)) {
- polices.add((AuthorizationPolicy)p);
- }
+
+ // 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 AuthorizationPolicy) {
+ polices.add((AuthorizationPolicy)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()) {
+
+ // 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 (AuthorizationPolicy.class.isInstance(p)) {
+ if (p instanceof AuthorizationPolicy) {
polices.add((AuthorizationPolicy)p);
}
}
}
}
}
- }
- List<PolicySet> policySets = service.getPolicySets();
- for (PolicySet ps : policySets) {
- for (Object p : ps.getPolicies()) {
- if (AuthorizationPolicy.class.isInstance(p)) {
- polices.add((AuthorizationPolicy)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 AuthorizationPolicy) {
+ polices.add((AuthorizationPolicy)p);
+ }
+ }
+ }
+ }
}
}
+
+ List<PolicySet> policySets = service.getPolicySets();
+ for (PolicySet ps : policySets) {
+ for (Object p : ps.getPolicies()) {
+ if (p instanceof AuthorizationPolicy) {
+ polices.add((AuthorizationPolicy)p);
+ }
+ }
+ }
}
return polices;
}
-
+
+ /**
+ * Find a given configured operation
+ * @param operation
+ * @return
+ */
+ private ConfiguredOperation findOperation(Operation operation) {
+ ConfiguredOperation configuredOperation = null;
+
+ for (ConfiguredOperation cOperation : ((OperationsConfigurator)component).getConfiguredOperations()) {
+ if(cOperation.getName().equals(operation.getName())) {
+ configuredOperation = cOperation;
+ break;
+ }
+ }
+
+ return configuredOperation;
+ }
}