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 2006/06/25 13:13:31 UTC
svn commit: r417009 -
/lenya/trunk/src/modules-core/usecase-impl/java/src/org/apache/lenya/cms/ac/usecase/UsecaseAuthorizerImpl.java
Author: andreas
Date: Sun Jun 25 04:13:31 2006
New Revision: 417009
URL: http://svn.apache.org/viewvc?rev=417009&view=rev
Log:
Don't reference ac-impl code. This requires some code duplication, but reading the config file directly is a hack anyway.
Modified:
lenya/trunk/src/modules-core/usecase-impl/java/src/org/apache/lenya/cms/ac/usecase/UsecaseAuthorizerImpl.java
Modified: lenya/trunk/src/modules-core/usecase-impl/java/src/org/apache/lenya/cms/ac/usecase/UsecaseAuthorizerImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/usecase-impl/java/src/org/apache/lenya/cms/ac/usecase/UsecaseAuthorizerImpl.java?rev=417009&r1=417008&r2=417009&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/usecase-impl/java/src/org/apache/lenya/cms/ac/usecase/UsecaseAuthorizerImpl.java (original)
+++ lenya/trunk/src/modules-core/usecase-impl/java/src/org/apache/lenya/cms/ac/usecase/UsecaseAuthorizerImpl.java Sun Jun 25 04:13:31 2006
@@ -17,11 +17,13 @@
package org.apache.lenya.cms.ac.usecase;
+import java.io.File;
import java.util.Arrays;
import java.util.List;
import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.parameters.ParameterException;
import org.apache.avalon.framework.parameters.Parameterizable;
@@ -73,7 +75,7 @@
protected String getConfigurationURI(Publication publication, String requestURI) {
String configURI = null;
try {
- Configuration config = new org.apache.lenya.cms.ac.PublicationAccessControllerResolver().getConfiguration(publication);
+ Configuration config = getConfiguration(publication);
Configuration[] authorizerConfigs = config.getChildren("authorizer");
for (int i = 0; i < authorizerConfigs.length; i++) {
if (authorizerConfigs[i].getAttribute("type").equals("usecase")) {
@@ -237,6 +239,29 @@
protected boolean authorize(Request request, String webappUrl) throws AccessControlException {
return authorize(request);
+ }
+
+ protected static final String AC_CONFIGURATION_FILE = "config/ac/ac.xconf".replace('/', File.separatorChar);
+
+ /**
+ * Retrieves access control configuration of a specific publication.
+ * @param publication The publication.
+ * @return Configuration
+ * @throws AccessControlException when something went wrong.
+ */
+ public Configuration getConfiguration(Publication publication) throws AccessControlException {
+ File configurationFile = new File(publication.getDirectory(), AC_CONFIGURATION_FILE);
+
+ if (configurationFile.isFile()) {
+ try {
+ Configuration configuration = new DefaultConfigurationBuilder().buildFromFile(configurationFile);
+ return configuration;
+ } catch (Exception e) {
+ throw new AccessControlException(e);
+ }
+ } else {
+ throw new AccessControlException("No such file or directory: " + configurationFile);
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org