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