On 19/01/2012 11:28, Tomcat Mailing List wrote:
> Hi,
> 
> I added the feature to sign a war file, sothat the war file containing 
> classes can run in a security manager.
> As already explained I can.t put my signed code in a jar in the lib file but 
> have to have it under /classes.
> 
> Now I.d like to commit this change back to the community. 
> My changes are for Tomcat 7.0.23
> 
> Suggestion for Patch:
> java/org/apache/catalina/loader/WebappClassLoader.java

Please create a bugzilla entry for this and attach your suggested patch
in diff -u format.

Cheers,

Mark

> 
> change
>                     if (jarEntry != null) {
>                         entry.certificates = jarEntry.getCertificates();
>                     }
> 
> to
> 
>                     if (jarEntry != null) {
>                         entry.certificates = jarEntry.getCertificates();
>                     }
>                     else {
>                             JarEntry jEntry=null;
>                             JarFile wFile=null;
>                             try {
>                                    wFile = new 
> JarFile(org.apache.naming.resources.WARDirContext.getCurrentPath());
>                             } catch (Exception e) {
>                             }
> 
>                             if (wFile != null) {
> 
>                                 try {
>                                         jEntry = 
> wFile.getJarEntry(current_full_path.substring(1));
>                                         InputStream is = 
> wFile.getInputStream(jEntry);
>                                         int n;
>                                         byte[] buffer = new byte[8192];
>                                         while ((n = is.read(buffer, 0, 
> buffer.length)) != -1) {
>                                         }
>                 
>                            if (jEntry != null) {
>                                                 
> entry.certificates=jEntry.getCertificates();
>                                         }
>                                 } catch (Exception exc) {
>                                         log.info("Could not read certificates 
> from war.");
>                                 }
>                             }
>                     }
> 
> 
> 
> ./java/org/apache/naming/resources/WARDirContext.java
> change 
> protected ZipFile base = null;
> to
> protected static ZipFile base = null;
> 
> and add the following function:
>     public static String getCurrentPath() {
>             if (base != null)
>                 return base.getName();
>             else
>                 return null;
>     }
> 
> Perhaps there is a much better way for getting the filename of the war file . 
> any suggestions? The change to a static variable is only required to get the 
> name of the war file that the class file is read from. 
> 
> Thanks,
> Thomas
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to