You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2003/10/16 10:57:11 UTC
cvs commit: cocoon-lenya/src/java/org/apache/lenya/cms/ac2 DefaultAccessController.java
andreas 2003/10/16 01:57:11
Modified: src/java/org/apache/lenya/cms/ac2
DefaultAccessController.java
Log:
- using authorizers in declared order
- added some log messages
Revision Changes Path
1.15 +35 -13 cocoon-lenya/src/java/org/apache/lenya/cms/ac2/DefaultAccessController.java
Index: DefaultAccessController.java
===================================================================
RCS file: /home/cvs/cocoon-lenya/src/java/org/apache/lenya/cms/ac2/DefaultAccessController.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- DefaultAccessController.java 28 Aug 2003 10:06:44 -0000 1.14
+++ DefaultAccessController.java 16 Oct 2003 08:57:11 -0000 1.15
@@ -55,8 +55,10 @@
*/
package org.apache.lenya.cms.ac2;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import org.apache.avalon.framework.activity.Disposable;
@@ -95,10 +97,11 @@
private ServiceSelector authorizerSelector;
private Map authorizers = new HashMap();
+ private List authorizerKeys = new ArrayList();
private ServiceSelector policyManagerSelector;
private PolicyManager policyManager;
-
+
private Authenticator authenticator;
/**
@@ -121,6 +124,9 @@
boolean authorized = false;
+ getLogger().info("=========================================================");
+ getLogger().info("Beginning authorization.");
+
if (hasAuthorizers()) {
Authorizer[] authorizers = getAuthorizers();
int i = 0;
@@ -128,15 +134,16 @@
while ((i < authorizers.length) && authorized) {
+ getLogger().info("---------------------------------------------------------");
+ getLogger().info("Invoking authorizer [" + authorizers[i] + "]");
+
if (authorizers[i] instanceof PolicyAuthorizer) {
PolicyAuthorizer authorizer = (PolicyAuthorizer) authorizers[i];
authorizer.setAccreditableManager(accreditableManager);
authorizer.setPolicyManager(policyManager);
}
- authorized =
- authorized
- && authorizers[i].authorize(request);
+ authorized = authorized && authorizers[i].authorize(request);
getLogger().info(
"Authorizer [" + authorizers[i] + "] returned [" + authorized + "]");
@@ -144,6 +151,10 @@
i++;
}
}
+ getLogger().info("=========================================================");
+ getLogger().info("Authorization complete, result: [" + authorized + "]");
+ getLogger().info("=========================================================");
+
return authorized;
}
@@ -210,17 +221,19 @@
for (int i = 0; i < authorizerConfigurations.length; i++) {
String type = authorizerConfigurations[i].getAttribute(TYPE_ATTRIBUTE);
Authorizer authorizer = (Authorizer) authorizerSelector.select(type);
+ authorizerKeys.add(type);
authorizers.put(type, authorizer);
getLogger().info("Adding authorizer [" + type + "]");
}
}
-
+
/**
* Configures the authorizers.
* @param configuration The main configuration.
* @throws ConfigurationException when something went wrong.
*/
- protected void configureAuthorizers(Configuration configuration) throws ConfigurationException {
+ protected void configureAuthorizers(Configuration configuration)
+ throws ConfigurationException {
Configuration[] authorizerConfigurations = configuration.getChildren(AUTHORIZER_ELEMENT);
for (int i = 0; i < authorizerConfigurations.length; i++) {
@@ -247,7 +260,7 @@
policyManager = (PolicyManager) policyManagerSelector.select(policyManagerType);
getLogger().info("Policy manager type: [" + policyManagerType + "]");
}
-
+
/**
* Sets up the authenticator.
* @throws ServiceException when something went wrong.
@@ -281,7 +294,14 @@
* @return An array of authorizers.
*/
public Authorizer[] getAuthorizers() {
- return (Authorizer[]) authorizers.values().toArray(new Authorizer[authorizers.size()]);
+
+ Authorizer[] authorizerArray = new Authorizer[authorizers.size()];
+ for (int i = 0; i < authorizers.size(); i++) {
+ String key = (String) authorizerKeys.get(i);
+ authorizerArray[i] = (Authorizer) authorizers.get(key);
+ }
+
+ return authorizerArray;
}
/**
@@ -317,7 +337,7 @@
}
getManager().release(authorizerSelector);
}
-
+
if (authenticator != null) {
getManager().release(authenticator);
}
@@ -366,9 +386,11 @@
if (!hasValidIdentity(session)) {
Identity identity = new Identity();
String remoteAddress = request.getRemoteAddr();
-
+
Machine machine = new Machine(remoteAddress);
- for (Iterator i = accreditableManager.getIPRangeManager().getIPRanges(); i.hasNext(); ) {
+ for (Iterator i = accreditableManager.getIPRangeManager().getIPRanges();
+ i.hasNext();
+ ) {
IPRange range = (IPRange) i.next();
if (range.contains(machine)) {
machine.addIPRange(range);
@@ -395,5 +417,5 @@
}
return valid;
}
-
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: lenya-cvs-unsubscribe@cocoon.apache.org
For additional commands, e-mail: lenya-cvs-help@cocoon.apache.org