nacho       00/11/06 07:10:29

  Modified:    src/share/org/apache/tomcat/request JDBCRealm.java
                        SimpleRealm.java
  Log:
  Adapting code to new start order.
  
  Revision  Changes    Path
  1.24      +36 -31    
jakarta-tomcat/src/share/org/apache/tomcat/request/JDBCRealm.java
  
  Index: JDBCRealm.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/request/JDBCRealm.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- JDBCRealm.java    2000/11/02 00:38:02     1.23
  +++ JDBCRealm.java    2000/11/06 15:10:27     1.24
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/request/JDBCRealm.java,v 1.23 
2000/11/02 00:38:02 nacho Exp $
  - * $Revision: 1.23 $
  - * $Date: 2000/11/02 00:38:02 $
  + * $Header: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/request/JDBCRealm.java,v 1.24 
2000/11/06 15:10:27 nacho Exp $
  + * $Revision: 1.24 $
  + * $Date: 2000/11/06 15:10:27 $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -470,28 +470,9 @@
   
       public void contextInit(Context ctx)
               throws org.apache.tomcat.core.TomcatException {
  +        super.contextInit(ctx);
  +        init(ctx.getContextManager());
        // Validate and update our current component state
  -      if (!started) {
  -          started = true;
  -      // set-up a per/container note for maps
  -          try {
  -            Class.forName(driverName);
  -            if ((connectionName == null || connectionName.equals("")) &&
  -                (connectionPassword == null || connectionPassword.equals(""))) {
  -                dbConnection = DriverManager.getConnection(connectionURL);
  -            } else {
  -                dbConnection = DriverManager.getConnection(connectionURL,
  -                                                           connectionName,
  -                                                           connectionPassword);
  -            }
  -          }
  -          catch( ClassNotFoundException ex ) {
  -            throw new RuntimeException("JDBCRealm.contextInit: " + ex);
  -          }
  -          catch( SQLException ex ) {
  -            throw new RuntimeException("JDBCRealm.contextInit: " + ex);
  -          }
  -      }
       }
   
       public void contextShutdown(Context ctx)
  @@ -615,16 +596,40 @@
       public void engineInit(ContextManager cm) throws TomcatException {
           //TODO:  Override this org.apache.tomcat.core.BaseInterceptor method
           super.engineInit(cm);
  -        try {
  +        init(cm);
  +    }
  +
  +    void init(ContextManager cm) {
  +      if (!started) {
  +          started = true;
  +      // set-up a per/container note for maps
  +          try {
  +             Class.forName(driverName);
  +             if ((connectionName == null || connectionName.equals("")) &&
  +                 (connectionPassword == null || connectionPassword.equals(""))) {
  +                 dbConnection = DriverManager.getConnection(connectionURL);
  +             } else {
  +                 dbConnection = DriverManager.getConnection(connectionURL,
  +                                                            connectionName,
  +                                                            connectionPassword);
  +             }
             // XXX make the name a "global" static - after everything is stable!
  -          reqRolesNote = cm.getNoteId( ContextManager.REQUEST_NOTE
  +            reqRolesNote = cm.getNoteId( ContextManager.REQUEST_NOTE
                   , "required.roles");
  -          reqRealmSignNote = cm.getNoteId( ContextManager.REQUEST_NOTE
  +            reqRealmSignNote = cm.getNoteId( ContextManager.REQUEST_NOTE
                   , "realm.sign");
  -        } catch( TomcatException ex ) {
  -          log("setting up note for " + cm, ex);
  -          throw new RuntimeException( "Invalid state ");
  -        }
  +          }
  +          catch( TomcatException ex ) {
  +            log("setting up note for " + cm, ex);
  +            throw new RuntimeException( "Invalid state ");
  +          }
  +          catch( ClassNotFoundException ex ) {
  +            throw new RuntimeException("JDBCRealm.contextInit: " + ex);
  +          }
  +          catch( SQLException ex ) {
  +            throw new RuntimeException("JDBCRealm.contextInit: " + ex);
  +          }
  +      }
       }
   
   
  
  
  
  1.12      +51 -31    
jakarta-tomcat/src/share/org/apache/tomcat/request/SimpleRealm.java
  
  Index: SimpleRealm.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/request/SimpleRealm.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- SimpleRealm.java  2000/11/02 00:38:02     1.11
  +++ SimpleRealm.java  2000/11/06 15:10:28     1.12
  @@ -63,6 +63,7 @@
   
   import org.apache.tomcat.core.*;
   import org.apache.tomcat.util.*;
  +import org.apache.tomcat.util.log.*;
   import org.apache.tomcat.helper.*;
   import org.apache.tomcat.util.xml.*;
   import java.io.*;
  @@ -84,8 +85,8 @@
   
       MemoryRealm memoryRealm;
       ContextManager cm;
  -    int reqRolesNote;
  -    int reqRealmSignNote;
  +    int reqRolesNote=-1;
  +    int reqRealmSignNote=-1;
       String filename;
       public SimpleRealm() {
       }
  @@ -93,15 +94,19 @@
       public void contextInit(Context ctx)
        throws TomcatException
       {
  -     if( memoryRealm==null) {
  -         memoryRealm = new MemoryRealm(ctx,filename);
  -         try {
  -             memoryRealm.readMemoryRealm(ctx);
  -         } catch(Exception ex ) {
  -             log("initting " + ctx, ex);
  -             memoryRealm=null;
  -         }
  -     }
  +        super.contextInit(ctx);
  +        ContextManager cm=ctx.getContextManager();
  +        init(cm,ctx);
  +        try {
  +            // XXX make the name a "global" static -
  +            reqRolesNote = cm.getNoteId( ContextManager.REQUEST_NOTE,
  +                         "required.roles");
  +                reqRealmSignNote = cm.getNoteId( ContextManager.REQUEST_NOTE
  +                                       , "realm.sign");
  +        } catch( TomcatException ex ) {
  +            log("getting note for " + cm, ex);
  +            throw new RuntimeException( "Invalid state ");
  +        }
       }
   
       public int authenticate( Request req, Response response )
  @@ -173,17 +178,19 @@
        */
       public void engineInit(ContextManager cm) throws TomcatException {
           super.engineInit(cm);
  -        // set-up a per/container note for maps
  -        try {
  -            // XXX make the name a "global" static -
  -            reqRolesNote = cm.getNoteId( ContextManager.REQUEST_NOTE,
  -                         "required.roles");
  -                reqRealmSignNote = cm.getNoteId( ContextManager.REQUEST_NOTE
  -                                       , "realm.sign");
  -        } catch( TomcatException ex ) {
  -            log("getting note for " + cm, ex);
  -            throw new RuntimeException( "Invalid state ");
  -        }
  +        init(cm,null);
  +    }
  +
  +    void init(ContextManager cm,Context ctx) {
  +     if( memoryRealm==null) {
  +         memoryRealm = new MemoryRealm(cm,null,filename);
  +         try {
  +             memoryRealm.readMemoryRealm();
  +         } catch(Exception ex ) {
  +             log("initting " + cm, ex);
  +             memoryRealm=null;
  +         }
  +     }
       }
   }
   
  @@ -196,11 +203,25 @@
       Hashtable userRoles= new Hashtable();
       String filename;
       Context ctx;
  +    Logger log;
       int debug=0;
  +    ContextManager cm;
   
       MemoryRealm(Context ctx,String fn) {
  -     this.ctx=ctx;
  +     this(ctx.getContextManager(),ctx,fn);
  +    }
  +
  +    MemoryRealm(ContextManager cm,Context ctx,String fn) {
  +     this.cm=cm;
           filename=fn;
  +        if(ctx==null){
  +                log=cm.getLogger();
  +                debug=cm.getDebug();
  +        }else {
  +                log=ctx.getLog().getLogger();
  +                debug=ctx.getDebug();
  +        }
  +
       }
   
       public Hashtable getRoles() {
  @@ -208,7 +229,7 @@
       }
   
       public void addUser(String name, String pass, String groups ) {
  -     if( ctx.getDebug() > 0 )  ctx.log( "Add user " + name + " " + pass + " " + 
groups );
  +     if( debug > 0 )  log.log( "Add user " + name + " " + pass + " " + groups );
        passwords.put( name, pass );
        groups += ",";
        while (true) {
  @@ -238,7 +259,7 @@
   
       public boolean checkPassword( String user, String pass ) {
        if( user==null ) return false;
  -     if( debug > 0 ) ctx.log( "check " + user+ " " + pass + " " + passwords.get( 
user ));
  +     if( debug > 0 ) log.log( "check " + user+ " " + pass + " " + passwords.get( 
user ));
        return pass.equals( (String)passwords.get( user ) );
       }
   
  @@ -254,25 +275,24 @@
   
       public boolean userInRole( String user, String role ) {
        Vector users=(Vector)roles.get(role);
  -     if( debug > 0 ) ctx.log( "check role " + user+ " " + role + " "  );
  +     if( debug > 0 ) log.log( "check role " + user+ " " + role + " "  );
        if(users==null) return false;
        return users.indexOf( user ) >=0 ;
       }
  -    void readMemoryRealm(Context ctx) throws Exception {
  -     ContextManager cm=ctx.getContextManager();
  +    void readMemoryRealm() throws Exception {
        String home=cm.getHome();
           File f;
           if (filename != null)
               f=new File( home + File.separator + filename );
           else
               f=new File( home + "/conf/tomcat-users.xml");
  -            
  +
        if( ! f.exists() ) {
  -         ctx.log( "File not found  " + f );
  +         log.log( "File not found  " + f );
            return;
        }
        XmlMapper xh=new XmlMapper();
  -     if( ctx.getDebug() > 5 ) xh.setDebug( 2 );
  +     if( debug > 5 ) xh.setDebug( 2 );
   
        // call addUser using attributes as parameters
        xh.addRule("tomcat-users/user",
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to