jfarcand 2004/11/22 08:35:18 Modified: catalina/src/share/org/apache/catalina/connector CoyoteInputStream.java InputBuffer.java OutputBuffer.java RequestFacade.java Response.java ResponseFacade.java catalina/src/share/org/apache/catalina/core ApplicationContextFacade.java ApplicationDispatcher.java ApplicationFilterChain.java StandardWrapper.java catalina/src/share/org/apache/catalina/security SecurityUtil.java catalina/src/share/org/apache/catalina/session PersistentManagerBase.java StandardManager.java StandardSession.java Log: Port patch from Tomcat 5.0: When the package protection is not used, do not create the doPrivileged objects . Revision Changes Path 1.2 +6 -5 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/CoyoteInputStream.java Index: CoyoteInputStream.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/CoyoteInputStream.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- CoyoteInputStream.java 23 Jun 2004 08:24:57 -0000 1.1 +++ CoyoteInputStream.java 22 Nov 2004 16:35:17 -0000 1.2 @@ -24,6 +24,7 @@ import javax.servlet.ServletInputStream; +import org.apache.catalina.security.SecurityUtil; /** * This class handles reading bytes. @@ -65,7 +66,7 @@ public int read() throws IOException { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ Integer result = @@ -94,7 +95,7 @@ public int available() throws IOException { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ Integer result = (Integer)AccessController.doPrivileged( @@ -122,7 +123,7 @@ public int read(final byte[] b) throws IOException { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ Integer result = (Integer)AccessController.doPrivileged( @@ -153,7 +154,7 @@ public int read(final byte[] b, final int off, final int len) throws IOException { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ Integer result = (Integer)AccessController.doPrivileged( @@ -193,7 +194,7 @@ */ public void close() throws IOException { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ AccessController.doPrivileged( new PrivilegedExceptionAction(){ 1.4 +2 -1 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/InputBuffer.java Index: InputBuffer.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/InputBuffer.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- InputBuffer.java 29 Aug 2004 16:46:09 -0000 1.3 +++ InputBuffer.java 22 Nov 2004 16:35:17 -0000 1.4 @@ -23,6 +23,7 @@ import java.security.PrivilegedExceptionAction; import java.util.HashMap; +import org.apache.catalina.security.SecurityUtil; import org.apache.coyote.Request; import org.apache.tomcat.util.buf.B2CConverter; import org.apache.tomcat.util.buf.ByteChunk; @@ -465,7 +466,7 @@ enc = DEFAULT_ENCODING; conv = (B2CConverter) encoders.get(enc); if (conv == null) { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ conv = (B2CConverter)AccessController.doPrivileged( new PrivilegedExceptionAction(){ 1.4 +2 -1 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/OutputBuffer.java Index: OutputBuffer.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/OutputBuffer.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- OutputBuffer.java 25 Jun 2004 23:56:25 -0000 1.3 +++ OutputBuffer.java 22 Nov 2004 16:35:18 -0000 1.4 @@ -24,6 +24,7 @@ import java.security.PrivilegedExceptionAction; import java.util.HashMap; +import org.apache.catalina.security.SecurityUtil; import org.apache.coyote.ActionCode; import org.apache.coyote.Response; import org.apache.tomcat.util.buf.ByteChunk; @@ -558,7 +559,7 @@ conv = (C2BConverter) encoders.get(enc); if (conv == null) { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ conv = (C2BConverter)AccessController.doPrivileged( new PrivilegedExceptionAction(){ 1.8 +6 -4 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/RequestFacade.java Index: RequestFacade.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/RequestFacade.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- RequestFacade.java 1 Nov 2004 22:38:44 -0000 1.7 +++ RequestFacade.java 22 Nov 2004 16:35:18 -0000 1.8 @@ -34,6 +34,8 @@ import org.apache.catalina.util.StringManager; +import org.apache.catalina.security.SecurityUtil; + /** * Facade class that wraps a Coyote request object. * All methods are delegated to the wrapped request. @@ -372,7 +374,7 @@ * Clone the returned array only if there is a security manager * in place, so that performance won't suffer in the nonsecure case */ - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ ret = (String[]) AccessController.doPrivileged( new GetParameterValuePrivilegedAction(name)); if (ret != null) { @@ -595,7 +597,7 @@ * Clone the returned array only if there is a security manager * in place, so that performance won't suffer in the nonsecure case */ - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ ret = (Cookie[])AccessController.doPrivileged( new GetCookiesPrivilegedAction()); if (ret != null) { @@ -813,7 +815,7 @@ sm.getString("requestFacade.nullRequest")); } - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ return (HttpSession)AccessController. doPrivileged(new GetSessionPrivilegedAction(create)); } else { 1.10 +5 -4 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/Response.java Index: Response.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/Response.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- Response.java 16 Sep 2004 15:28:29 -0000 1.9 +++ Response.java 22 Nov 2004 16:35:18 -0000 1.10 @@ -44,6 +44,7 @@ import org.apache.catalina.util.CharsetMapper; import org.apache.catalina.util.DateTool; import org.apache.catalina.util.StringManager; +import org.apache.catalina.security.SecurityUtil; import org.apache.tomcat.util.buf.CharChunk; import org.apache.tomcat.util.buf.UEncoder; import org.apache.tomcat.util.http.FastHttpDateFormat; @@ -930,7 +931,7 @@ cookies.add(cookie); final StringBuffer sb = new StringBuffer(); - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { AccessController.doPrivileged(new PrivilegedAction() { public Object run(){ ServerCookie.appendCookieValue @@ -1349,7 +1350,7 @@ if (hreq.isRequestedSessionIdFromCookie()) return (false); - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { return ((Boolean) AccessController.doPrivileged(new PrivilegedAction() { @@ -1452,7 +1453,7 @@ String encodedURI = null; final String frelativePath = relativePath; - if (System.getSecurityManager() != null ){ + if (SecurityUtil.isPackageProtectionEnabled() ){ try{ encodedURI = (String)AccessController.doPrivileged( new PrivilegedExceptionAction(){ 1.9 +4 -3 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/ResponseFacade.java Index: ResponseFacade.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/ResponseFacade.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- ResponseFacade.java 1 Nov 2004 23:34:04 -0000 1.8 +++ ResponseFacade.java 22 Nov 2004 16:35:18 -0000 1.9 @@ -30,6 +30,7 @@ import javax.servlet.http.HttpServletResponse; import org.apache.catalina.util.StringManager; +import org.apache.catalina.security.SecurityUtil; /** * Facade class that wraps a Coyote response object. @@ -205,7 +206,7 @@ if (isCommitted()) return; - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ AccessController.doPrivileged(new SetContentTypePrivilegedAction(type)); } else { response.setContentType(type); @@ -243,7 +244,7 @@ // (/*sm.getString("responseFacade.finished")*/); return; - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ AccessController.doPrivileged(new PrivilegedExceptionAction(){ 1.13 +32 -25 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationContextFacade.java Index: ApplicationContextFacade.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationContextFacade.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- ApplicationContextFacade.java 1 Oct 2004 01:18:12 -0000 1.12 +++ ApplicationContextFacade.java 22 Nov 2004 16:35:18 -0000 1.13 @@ -35,6 +35,8 @@ import javax.servlet.ServletContext; import javax.servlet.ServletException; +import org.apache.catalina.security.SecurityUtil; + /** * Facade object which masks the internal <code>ApplicationContext</code> @@ -118,7 +120,7 @@ public ServletContext getContext(String uripath) { ServletContext theContext = null; - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { theContext = (ServletContext) doPrivileged("getContext", new Object[]{uripath}); } else { @@ -143,7 +145,7 @@ public String getMimeType(String file) { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { return (String)doPrivileged("getMimeType", new Object[]{file}); } else { return context.getMimeType(file); @@ -152,7 +154,7 @@ public Set getResourcePaths(String path) { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ return (Set)doPrivileged("getResourcePaths", new Object[]{path}); } else { return context.getResourcePaths(path); @@ -179,7 +181,7 @@ public InputStream getResourceAsStream(String path) { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { return (InputStream) doPrivileged("getResourceAsStream", new Object[]{path}); } else { @@ -189,7 +191,7 @@ public RequestDispatcher getRequestDispatcher(final String path) { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { return (RequestDispatcher) doPrivileged("getRequestDispatcher", new Object[]{path}); } else { @@ -199,7 +201,7 @@ public RequestDispatcher getNamedDispatcher(String name) { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { return (RequestDispatcher) doPrivileged("getNamedDispatcher", new Object[]{name}); } else { @@ -210,7 +212,7 @@ public Servlet getServlet(String name) throws ServletException { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { try { return (Servlet) invokeMethod(context, "getServlet", new Object[]{name}); @@ -227,7 +229,7 @@ public Enumeration getServlets() { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { return (Enumeration) doPrivileged("getServlets", null); } else { return context.getServlets(); @@ -236,7 +238,7 @@ public Enumeration getServletNames() { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { return (Enumeration) doPrivileged("getServletNames", null); } else { return context.getServletNames(); @@ -245,7 +247,7 @@ public void log(String msg) { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { doPrivileged("log", new Object[]{msg} ); } else { context.log(msg); @@ -254,7 +256,7 @@ public void log(Exception exception, String msg) { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { doPrivileged("log", new Class[]{Exception.class, String.class}, new Object[]{exception,msg}); } else { @@ -264,7 +266,7 @@ public void log(String message, Throwable throwable) { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { doPrivileged("log", new Class[]{String.class, Throwable.class}, new Object[]{message, throwable}); } else { @@ -274,7 +276,7 @@ public String getRealPath(String path) { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { return (String) doPrivileged("getRealPath", new Object[]{path}); } else { return context.getRealPath(path); @@ -283,7 +285,7 @@ public String getServerInfo() { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { return (String) doPrivileged("getServerInfo", null); } else { return context.getServerInfo(); @@ -292,7 +294,7 @@ public String getInitParameter(String name) { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { return (String) doPrivileged("getInitParameter", new Object[]{name}); } else { @@ -302,7 +304,7 @@ public Enumeration getInitParameterNames() { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { return (Enumeration) doPrivileged("getInitParameterNames", null); } else { return context.getInitParameterNames(); @@ -311,7 +313,7 @@ public Object getAttribute(String name) { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { return doPrivileged("getAttribute", new Object[]{name}); } else { return context.getAttribute(name); @@ -320,7 +322,7 @@ public Enumeration getAttributeNames() { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { return (Enumeration) doPrivileged("getAttributeNames", null); } else { return context.getAttributeNames(); @@ -329,7 +331,7 @@ public void setAttribute(String name, Object object) { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { doPrivileged("setAttribute", new Object[]{name,object}); } else { context.setAttribute(name, object); @@ -338,7 +340,7 @@ public void removeAttribute(String name) { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { doPrivileged("removeAttribute", new Object[]{name}); } else { context.removeAttribute(name); @@ -347,7 +349,7 @@ public String getServletContextName() { - if (System.getSecurityManager() != null) { + if (SecurityUtil.isPackageProtectionEnabled()) { return (String) doPrivileged("getServletContextName", null); } else { return context.getServletContextName(); @@ -401,7 +403,7 @@ */ private Object invokeMethod(ApplicationContext appContext, final String methodName, - final Object[] params) + Object[] params) throws Throwable{ try{ @@ -416,6 +418,8 @@ } catch (Exception ex){ handleException(ex, methodName); return null; + } finally { + params = null; } } @@ -428,7 +432,7 @@ */ private Object doPrivileged(final String methodName, final Class[] clazz, - final Object[] params){ + Object[] params){ try{ Method method = context.getClass() @@ -441,6 +445,8 @@ throw new RuntimeException(t.getMessage()); } return null; + } finally { + params = null; } } @@ -459,7 +465,7 @@ IllegalAccessException, InvocationTargetException { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ return AccessController.doPrivileged(new PrivilegedExceptionAction(){ public Object run() throws IllegalAccessException, InvocationTargetException{ return method.invoke(context, params); @@ -472,6 +478,7 @@ /** + * * Throw the real exception. * @param ex The current exception */ 1.41 +2 -2 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationDispatcher.java Index: ApplicationDispatcher.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationDispatcher.java,v retrieving revision 1.40 retrieving revision 1.41 diff -u -r1.40 -r1.41 --- ApplicationDispatcher.java 28 Sep 2004 13:32:27 -0000 1.40 +++ ApplicationDispatcher.java 22 Nov 2004 16:35:18 -0000 1.41 @@ -50,7 +50,7 @@ import org.apache.commons.logging.LogFactory; import org.apache.tomcat.util.IntrospectionUtils; - +import org.apache.catalina.security.SecurityUtil; /** * Standard implementation of <code>RequestDispatcher</code> that allows a * request to be forwarded to a different resource to create the ultimate 1.13 +23 -8 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationFilterChain.java Index: ApplicationFilterChain.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ApplicationFilterChain.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- ApplicationFilterChain.java 1 Oct 2004 01:18:12 -0000 1.12 +++ ApplicationFilterChain.java 22 Nov 2004 16:35:18 -0000 1.13 @@ -111,6 +111,22 @@ */ private InstanceSupport support = null; + + /** + * Static class array used when the SecurityManager is turned on and + * <code>doFilter</code is invoked. + */ + private static Class[] classType = new Class[]{ServletRequest.class, + ServletResponse.class, + FilterChain.class}; + + /** + * Static class array used when the SecurityManager is turned on and + * <code>service</code is invoked. + */ + private static Class[] classTypeUsedInService = new Class[]{ + ServletRequest.class, + ServletResponse.class}; // ---------------------------------------------------- FilterChain Methods @@ -176,12 +192,12 @@ final ServletResponse res = response; Principal principal = ((HttpServletRequest) req).getUserPrincipal(); - Class[] classType = new Class[]{ServletRequest.class, - ServletResponse.class, - FilterChain.class}; + Object[] args = new Object[]{req, res, this}; SecurityUtil.doAsPrivilege ("doFilter", filter, classType, args); + + args = null; } else { filter.doFilter(request, response, this); } @@ -225,14 +241,13 @@ final ServletResponse res = response; Principal principal = ((HttpServletRequest) req).getUserPrincipal(); - Class[] classType = new Class[]{ServletRequest.class, - ServletResponse.class}; Object[] args = new Object[]{req, res}; SecurityUtil.doAsPrivilege("service", servlet, - classType, + classTypeUsedInService, args, - principal); + principal); + args = null; } else { servlet.service((HttpServletRequest) request, (HttpServletResponse) response); 1.56 +21 -7 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardWrapper.java Index: StandardWrapper.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardWrapper.java,v retrieving revision 1.55 retrieving revision 1.56 diff -u -r1.55 -r1.56 --- StandardWrapper.java 28 Oct 2004 16:42:37 -0000 1.55 +++ StandardWrapper.java 22 Nov 2004 16:35:18 -0000 1.56 @@ -243,7 +243,21 @@ private StandardWrapperValve swValve; private long loadTime=0; private int classLoadTime=0; - + + /** + * Static class array used when the SecurityManager is turned on and + * <code>Servlet.init</code> is invoked. + */ + private static Class[] classType = new Class[]{ServletConfig.class}; + + + /** + * Static class array used when the SecurityManager is turned on and + * <code>Servlet.service</code> is invoked. + */ + private static Class[] classTypeUsedInService = new Class[]{ + ServletRequest.class, + ServletResponse.class}; // ------------------------------------------------------------- Properties @@ -960,7 +974,7 @@ // Load the specified servlet class from the appropriate class loader Class classClass = null; try { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ final ClassLoader fclassLoader = classLoader; final String factualClass = actualClass; try{ @@ -1043,12 +1057,13 @@ servlet); if( System.getSecurityManager() != null) { - Class[] classType = new Class[]{ServletConfig.class}; + Object[] args = new Object[]{((ServletConfig)facade)}; SecurityUtil.doAsPrivilege("init", servlet, classType, args); + args = null; } else { servlet.init(facade); } @@ -1062,13 +1077,12 @@ DummyResponse res = new DummyResponse(); if( System.getSecurityManager() != null) { - Class[] classType = new Class[]{ServletRequest.class, - ServletResponse.class}; Object[] args = new Object[]{req, res}; SecurityUtil.doAsPrivilege("service", servlet, - classType, + classTypeUsedInService, args); + args = null; } else { servlet.service(req, res); } 1.15 +18 -0 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/security/SecurityUtil.java Index: SecurityUtil.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/security/SecurityUtil.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- SecurityUtil.java 26 Oct 2004 02:02:37 -0000 1.14 +++ SecurityUtil.java 22 Nov 2004 16:35:18 -0000 1.15 @@ -68,6 +68,10 @@ private static String PACKAGE = "org.apache.catalina.security"; + private static boolean packageDefinitionEnabled = + (System.getProperty("package.definition") == null && + System.getProperty("package.access") == null) ? false : true; + /** * The string resources for this package. */ @@ -363,4 +367,18 @@ public static void remove(Object cachedObject){ objectCache.remove(cachedObject); } + + + /** + * Return the <code>SecurityManager</code> only if Security is enabled AND + * package protection mechanism is enabled. + */ + public static boolean isPackageProtectionEnabled(){ + if (packageDefinitionEnabled && System.getSecurityManager() != null){ + return true; + } + return false; + } + + } 1.25 +11 -9 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/PersistentManagerBase.java Index: PersistentManagerBase.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/PersistentManagerBase.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- PersistentManagerBase.java 22 Nov 2004 14:50:23 -0000 1.24 +++ PersistentManagerBase.java 22 Nov 2004 16:35:18 -0000 1.25 @@ -34,7 +34,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; - +import org.apache.catalina.security.SecurityUtil; /** * Extends the <b>ManagerBase</b> class to implement most of the * functionality required by a Manager which supports any kind of @@ -512,7 +512,7 @@ return; try { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ AccessController.doPrivileged(new PrivilegedStoreClear()); }catch(PrivilegedActionException ex){ @@ -628,9 +628,10 @@ String[] ids = null; try { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ - ids = (String[])AccessController.doPrivileged(new PrivilegedStoreKeys()); + ids = (String[]) + AccessController.doPrivileged(new PrivilegedStoreKeys()); }catch(PrivilegedActionException ex){ Exception exception = ex.getException(); log.error("Exception in the Store during load: " @@ -686,7 +687,7 @@ */ protected void removeSession(String id){ try { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ AccessController.doPrivileged(new PrivilegedStoreRemove(id)); }catch(PrivilegedActionException ex){ @@ -754,9 +755,10 @@ Session session = null; try { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ - session = (Session) AccessController.doPrivileged(new PrivilegedStoreLoad(id)); + session = (Session) + AccessController.doPrivileged(new PrivilegedStoreLoad(id)); }catch(PrivilegedActionException ex){ Exception exception = ex.getException(); log.error("Exception in the Store during swapIn: " @@ -835,7 +837,7 @@ } try { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ AccessController.doPrivileged(new PrivilegedStoreSave(session)); }catch(PrivilegedActionException ex){ 1.27 +4 -4 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardManager.java Index: StandardManager.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardManager.java,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- StandardManager.java 22 Nov 2004 14:50:23 -0000 1.26 +++ StandardManager.java 22 Nov 2004 16:35:18 -0000 1.27 @@ -45,7 +45,7 @@ import org.apache.catalina.util.CustomObjectInputStream; import org.apache.catalina.util.LifecycleSupport; - +import org.apache.catalina.security.SecurityUtil; /** * Standard implementation of the <b>Manager</b> interface that provides * simple session persistence across restarts of this component (such as @@ -302,7 +302,7 @@ * @exception IOException if an input/output error occurs */ public void load() throws ClassNotFoundException, IOException { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ AccessController.doPrivileged( new PrivilegedDoLoad() ); } catch (PrivilegedActionException ex){ @@ -446,7 +446,7 @@ * @exception IOException if an input/output error occurs */ public void unload() throws IOException { - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ try{ AccessController.doPrivileged( new PrivilegedDoUnload() ); } catch (PrivilegedActionException ex){ 1.49 +3 -3 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardSession.java Index: StandardSession.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardSession.java,v retrieving revision 1.48 retrieving revision 1.49 diff -u -r1.48 -r1.49 --- StandardSession.java 7 Sep 2004 20:57:02 -0000 1.48 +++ StandardSession.java 22 Nov 2004 16:35:18 -0000 1.49 @@ -52,7 +52,7 @@ import org.apache.catalina.util.Enumerator; import org.apache.catalina.util.StringManager; - +import org.apache.catalina.security.SecurityUtil; /** * Standard implementation of the <b>Session</b> interface. This object is * serializable, so that it can be stored in persistent storage or transferred @@ -518,7 +518,7 @@ public HttpSession getSession() { if (facade == null){ - if (System.getSecurityManager() != null){ + if (SecurityUtil.isPackageProtectionEnabled()){ final StandardSession fsession = this; facade = (StandardSessionFacade)AccessController.doPrivileged(new PrivilegedAction(){ public Object run(){
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]