nacho 00/11/01 16:38:03 Modified: src/share/org/apache/tomcat/request JDBCRealm.java SimpleRealm.java Log: Adjusting Realms to the new startup order Revision Changes Path 1.23 +22 -20 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.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- JDBCRealm.java 2000/10/23 15:17:57 1.22 +++ JDBCRealm.java 2000/11/02 00:38:02 1.23 @@ -1,7 +1,7 @@ -/* - * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/request/JDBCRealm.java,v 1.22 2000/10/23 15:17:57 nacho Exp $ - * $Revision: 1.22 $ - * $Date: 2000/10/23 15:17:57 $ +/* + * $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 $ * * The Apache Software License, Version 1.1 * @@ -473,6 +473,7 @@ // 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("")) && @@ -508,22 +509,6 @@ } } - public void setContextManager( ContextManager cm ) { - super.setContextManager( cm ); - - this.cm=cm; - // set-up a per/container note for maps - try { - // XXX make the name a "global" static - after everything is stable! - reqRolesNote = cm.getNoteId( ContextManager.REQUEST_NOTE - , "required.roles"); - reqRealmSignNote = cm.getNoteId( ContextManager.REQUEST_NOTE - , "realm.sign"); - } catch( TomcatException ex ) { - log("setting up note for " + cm, ex); - throw new RuntimeException( "Invalid state "); - } - } public int authenticate( Request req, Response response ) { // Extract the credentials @@ -623,6 +608,23 @@ } } + } + + /** Called when the ContextManger is started + */ + public void engineInit(ContextManager cm) throws TomcatException { + //TODO: Override this org.apache.tomcat.core.BaseInterceptor method + super.engineInit(cm); + try { + // XXX make the name a "global" static - after everything is stable! + reqRolesNote = cm.getNoteId( ContextManager.REQUEST_NOTE + , "required.roles"); + reqRealmSignNote = cm.getNoteId( ContextManager.REQUEST_NOTE + , "realm.sign"); + } catch( TomcatException ex ) { + log("setting up note for " + cm, ex); + throw new RuntimeException( "Invalid state "); + } } 1.11 +36 -39 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.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- SimpleRealm.java 2000/10/23 15:17:57 1.10 +++ SimpleRealm.java 2000/11/02 00:38:02 1.11 @@ -90,27 +90,7 @@ public SimpleRealm() { } - /** Set the context manager. To keep it simple we don't support - * dynamic add/remove for this interceptor. - */ - public void setContextManager( ContextManager cm ) { - super.setContextManager( cm ); - - this.cm=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 "); - } - } - - public void contextInit( Context ctx) + public void contextInit(Context ctx) throws TomcatException { if( memoryRealm==null) { @@ -148,16 +128,16 @@ public int authorize( Request req, Response response, String roles[] ) { - if( roles==null || roles.length==0 ) { - // request doesn't need authentication - return 0; - } + if( roles==null || roles.length==0 ) { + // request doesn't need authentication + return 0; + } - Context ctx=req.getContext(); + Context ctx=req.getContext(); - String userRoles[]=null; - String user=req.getRemoteUser(); - if( user==null ) + String userRoles[]=null; + String user=req.getRemoteUser(); + if( user==null ) return 401; if( ! this.equals(req.getNote(reqRealmSignNote)) ){ @@ -166,19 +146,19 @@ - if( debug > 0 ) log( "Controled access for " + user + " " + - req + " " + req.getContainer() ); + if( debug > 0 ) log( "Controled access for " + user + " " + + req + " " + req.getContainer() ); - userRoles = memoryRealm.getUserRoles( user ); - if ( userRoles == null ) - return 0; - req.setUserRoles( userRoles ); + userRoles = memoryRealm.getUserRoles( user ); + if ( userRoles == null ) + return 0; + req.setUserRoles( userRoles ); - if( SecurityTools.haveRole( userRoles, roles )) - return 0; + if( SecurityTools.haveRole( userRoles, roles )) + return 0; - if( debug > 0 ) log( "UnAuthorized " + roles[0] ); - return 401; + if( debug > 0 ) log( "UnAuthorized " + roles[0] ); + return 401; } public String getFilename() { @@ -187,6 +167,23 @@ public void setFilename(String newFilename) { filename = newFilename; + } + + /** Called when the ContextManger is started + */ + 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 "); + } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]