billbarker 2004/01/06 21:32:44 Modified: jk/java/org/apache/jk/server JkCoyoteHandler.java Log: Adding the required PAs to allow the Coyote-Jk connector to play in the sandbox. Fix for Bug #25819. Reported By: Dario Bonino [EMAIL PROTECTED] Revision Changes Path 1.47 +39 -2 jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java Index: JkCoyoteHandler.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java,v retrieving revision 1.46 retrieving revision 1.47 diff -u -r1.46 -r1.47 --- JkCoyoteHandler.java 30 Sep 2003 04:17:37 -0000 1.46 +++ JkCoyoteHandler.java 7 Jan 2004 05:32:44 -0000 1.47 @@ -64,6 +64,10 @@ import java.net.InetAddress; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; +import java.security.PrivilegedExceptionAction; +import java.security.AccessController; +import java.security.PrivilegedActionException; +import java.security.PrivilegedAction; import javax.management.MBeanServer; import javax.management.ObjectName; @@ -106,6 +110,17 @@ private static org.apache.commons.logging.Log logTime= org.apache.commons.logging.LogFactory.getLog( "org.apache.jk.REQ_TIME" ); + // ----------------------------------------------------------- DoPrivileged + private final class StatusLinePrivilegedAction implements PrivilegedAction { + int status; + StatusLinePrivilegedAction(int status) { + this.status = status; + } + public Object run() { + return HttpMessages.getMessage(status); + } + } + int headersMsgNote; int c2bConvertersNote; int tmpMessageBytesNote; @@ -330,7 +345,24 @@ C2BConverter c2b=(C2BConverter)res.getNote( utfC2bNote ); if( c2b==null ) { - c2b=new C2BConverter( "UTF8" ); + if(System.getSecurityManager() != null) { + try { + c2b = (C2BConverter) + AccessController.doPrivileged( + new PrivilegedExceptionAction () { + public Object run() + throws IOException{ + return new C2BConverter( "UTF8" ); + } + }); + } catch(PrivilegedActionException pae) { + Exception ex = pae.getException(); + if(ex instanceof IOException) + throw (IOException)ex; + } + } else { + c2b=new C2BConverter( "UTF8" ); + } res.setNote( utfC2bNote, c2b ); } @@ -347,7 +379,12 @@ } String message=res.getMessage(); if( message==null ){ - message= HttpMessages.getMessage(res.getStatus()); + if( System.getSecurityManager() != null ) { + message = (String)AccessController.doPrivileged( + new StatusLinePrivilegedAction(res.getStatus())); + } else { + message= HttpMessages.getMessage(res.getStatus()); + } } else { message = message.replace('\n', ' ').replace('\r', ' '); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]