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

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: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to