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