cziegeler    02/05/29 08:38:09

  Modified:    src/java/org/apache/cocoon/components
                        CocoonComponentManager.java
               src/java/org/apache/cocoon/webapps/authentication/components
                        AuthenticationManager.java HandlerManager.java
  Log:
  New authentication manager
  
  Revision  Changes    Path
  1.22      +3 -3      
xml-cocoon2/src/java/org/apache/cocoon/components/CocoonComponentManager.java
  
  Index: CocoonComponentManager.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/CocoonComponentManager.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- CocoonComponentManager.java       29 May 2002 13:38:48 -0000      1.21
  +++ CocoonComponentManager.java       29 May 2002 15:38:09 -0000      1.22
  @@ -81,7 +81,7 @@
    * and by handling the lookup of the <code>SourceResolver</code> (in development)
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
  - * @version CVS $Id: CocoonComponentManager.java,v 1.21 2002/05/29 13:38:48 
cziegeler Exp $
  + * @version CVS $Id: CocoonComponentManager.java,v 1.22 2002/05/29 15:38:09 
cziegeler Exp $
    */
   public final class CocoonComponentManager
   extends ExcaliburComponentManager
  @@ -225,6 +225,8 @@
                       if (component instanceof Recomposable) {
                           ((Recomposable) component).recompose(this);
                       }
  +                    ((RequestLifecycleComponent) 
component).setup((org.apache.cocoon.environment.SourceResolver)objects[0],
  +                                                                  (Map)objects[1]);
                       if (component instanceof SitemapConfigurable) {
                           for(int i=0; i < stack.size(); i++) {
                               Object[] o = (Object[])stack.get(i);
  @@ -237,8 +239,6 @@
                               }
                           }
                       }
  -                    ((RequestLifecycleComponent) 
component).setup((org.apache.cocoon.environment.SourceResolver)objects[0],
  -                                                                  (Map)objects[1]);
                   } catch (Exception local) {
                       throw new ComponentException("Exception during setup of 
RequestLifecycleComponent with role '"+role+"'", local);
                   }
  
  
  
  1.7       +16 -13    
xml-cocoon2/src/java/org/apache/cocoon/webapps/authentication/components/AuthenticationManager.java
  
  Index: AuthenticationManager.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/webapps/authentication/components/AuthenticationManager.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AuthenticationManager.java        29 May 2002 13:38:48 -0000      1.6
  +++ AuthenticationManager.java        29 May 2002 15:38:09 -0000      1.7
  @@ -98,7 +98,7 @@
    *  This is the basis authentication component.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
  - * @version CVS $Id: AuthenticationManager.java,v 1.6 2002/05/29 13:38:48 cziegeler 
Exp $
  + * @version CVS $Id: AuthenticationManager.java,v 1.7 2002/05/29 15:38:09 cziegeler 
Exp $
   */
   public final class AuthenticationManager
   extends AbstractSessionComponent
  @@ -115,6 +115,9 @@
   
       private static final String SESSION_CONTEXT_ATTRIBUTE_ADMIN_ROLE = 
"org.apache.cocoon.webapps.authentication.adminrole";
   
  +    /** The handler manager */
  +    private HandlerManager handlerManager = new HandlerManager();
  +
       /** All Handlers hashed by their name */
       private Map     configuredHandlers;
   
  @@ -161,14 +164,6 @@
       }
   
       /**
  -     * Set the configuration
  -     * The configuration is set global once when the AuthAction is
  -     * configured, allowing other components to use the AuthenticationManager
  -     * instance
  -     */
  -    private static Configuration authenticationConfiguration;
  -
  -    /**
        * Recyclable
        */
       public void recycle() {
  @@ -178,6 +173,9 @@
           this.handler = null;
           this.handlerName = null;
           this.userHandlers = null;
  +
  +        // clear handlers
  +        this.handlerManager.clearAvailableHandlers();
       }
   
       /**
  @@ -185,7 +183,15 @@
        */
       public void setSitemapConfiguration(Configuration config)
       throws ConfigurationException {
  -        authenticationConfiguration = config;
  +        try {
  +            // synchronized
  +            this.configureHandlers(config);
  +        } catch (ProcessingException pe) {
  +            throw new ConfigurationException("Exception during configuration of 
handlers.");
  +        }
  +
  +        //this.handlerManager.addConfiguration( config, this.resolver, this.request 
);
  +        //this.handlerManager.addAvailableHandlers( config );
       }
   
       /**
  @@ -197,9 +203,6 @@
       public void setup(SourceResolver resolver, Map objectModel)
       throws ProcessingException, SAXException, IOException {
           super.setup(resolver, objectModel);
  -
  -        // synchronized
  -        this.configureHandlers(AuthenticationManager.authenticationConfiguration);
   
           // get the media of the current request
           String useragent = request.getHeader("User-Agent");
  
  
  
  1.3       +48 -13    
xml-cocoon2/src/java/org/apache/cocoon/webapps/authentication/components/HandlerManager.java
  
  Index: HandlerManager.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/webapps/authentication/components/HandlerManager.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- HandlerManager.java       29 May 2002 15:05:59 -0000      1.2
  +++ HandlerManager.java       29 May 2002 15:38:09 -0000      1.3
  @@ -62,7 +62,7 @@
    *  This is a utility class managing the authentication handlers
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
  - * @version CVS $Id: HandlerManager.java,v 1.2 2002/05/29 15:05:59 cziegeler Exp $
  + * @version CVS $Id: HandlerManager.java,v 1.3 2002/05/29 15:38:09 cziegeler Exp $
   */
   public final class HandlerManager {
   
  @@ -74,18 +74,21 @@
       /** All configured handlers */
       protected static Map configuredHandlers = new HashMap(4);
   
  +    /** The available handlers for the current request */
  +    protected Map availableHandlers = new HashMap(4);
  +
       /**
        * Add new configurations to the pool
        */
       public void addConfiguration(Configuration  conf,
                                    SourceResolver resolver,
                                    Request        request)
  -    throws ConfigurationException, ProcessingException {
  +    throws ConfigurationException {
           if (null != conf &&
  -            !this.configuredConfigurations.contains(conf)) {
  -            synchronized (this.configuredConfigurations) {
  -                if (!this.configuredConfigurations.contains(conf)) {
  -                    this.configuredConfigurations.add( conf );
  +            !configuredConfigurations.contains(conf)) {
  +            synchronized (configuredConfigurations) {
  +                if (!configuredConfigurations.contains(conf)) {
  +                    configuredConfigurations.add( conf );
   
                       // test for handlers
                       Configuration handlersWrapper = conf.getChild("handlers", 
false);
  @@ -107,12 +110,12 @@
       protected void addHandler(Configuration  configuration,
                                 SourceResolver resolver,
                                 Request        request)
  -    throws ConfigurationException, ProcessingException {
  +    throws ConfigurationException {
           // get handler name
           final String name = configuration.getAttribute("name");
   
           // test if handler is unique
  -        if (this.configuredHandlers.get(name) != null) {
  +        if (configuredHandlers.get(name) != null) {
               throw new ConfigurationException("Handler names must be unique: " + 
name);
           }
   
  @@ -120,14 +123,16 @@
           Handler currentHandler = new Handler(name);
   
           // store handler
  -        this.configuredHandlers.put(name, currentHandler);
  +        configuredHandlers.put(name, currentHandler);
   
           try {
               currentHandler.configure(resolver,request, configuration);
  +        } catch (ProcessingException se) {
  +            throw new ConfigurationException("Exception during configuration of 
handler: " + name, se);
           } catch (org.xml.sax.SAXException se) {
  -            throw new ProcessingException("Exception during configuration of 
handler: " + name, se);
  +            throw new ConfigurationException("Exception during configuration of 
handler: " + name, se);
           } catch (java.io.IOException se) {
  -            throw new ProcessingException("Exception during configuration of 
handler: " + name, se);
  +            throw new ConfigurationException("Exception during configuration of 
handler: " + name, se);
           }
       }
   
  @@ -135,7 +140,37 @@
        * Clear all
        */
       public void clearConfigurations() {
  -        this.configuredConfigurations.clear();
  -        this.configuredHandlers.clear();
  +        configuredConfigurations.clear();
  +        configuredHandlers.clear();
  +    }
  +
  +    /**
  +     * Clear available handlers
  +     */
  +    public void clearAvailableHandlers() {
  +        this.availableHandlers.clear();
  +    }
  +
  +    /**
  +     * Add to available handlers
  +     */
  +    public void addAvailableHandlers(Configuration  conf)
  +    throws ConfigurationException {
  +        if ( null != conf ) {
  +            final Configuration handlersConf = conf.getChild("handlers", false);
  +            if ( null != handlersConf ) {
  +                Configuration[] handlers = handlersConf.getChildren("handler");
  +                if ( null != handlers ) {
  +                    for(int i=0; i < handlers.length; i++) {
  +                        final String name = handlers[i].getAttribute("name");
  +                        final Object o = this.configuredHandlers.get(name);
  +                        if ( null == o)
  +                            throw new ConfigurationException("Handler " + name + " 
is missing in configuration.");
  +                        this.availableHandlers.put(name, o);
  +                    }
  +                }
  +            }
  +        }
       }
  +
   }
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to