/class.class Connecting https://www.gryf.net/~tkaczma/sun/mindbright/application/MindTerm/class.class with proxy=lcproxy.cmis.abbott.com:8080 Firewall authentication: site=lcproxy.cmis.abbott.com/10.254.248.1:8080, protocol=http, prompt=TrafficServer, scheme=basic Modality pushed Modality popped User selected: 0 load: class mindbright.application.MindTerm.class not found. java.lang.ClassNotFoundException: mindbright.application.MindTerm.class at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:151) at sun.plugin.security.PluginClassLoader.findClass(PluginClassLoader.java:189) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:112) at java.lang.ClassLoader.loadClass(ClassLoader.java:262) at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:478) at sun.applet.AppletPanel.createApplet(AppletPanel.java:548) at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1621) at sun.applet.AppletPanel.runLoader(AppletPanel.java:477) at sun.applet.AppletPanel.run(AppletPanel.java:290) at java.lang.Thread.run(Thread.java:536) Caused by: java.io.IOException: open HTTP connection failed. at sun.applet.AppletClassLoader.getBytes(AppletClassLoader.java:224) at sun.applet.AppletClassLoader.access$100(AppletClassLoader.java:40) at sun.applet.AppletClassLoader$1.run(AppletClassLoader.java:141) at java.security.AccessController.doPrivileged(Native Method) at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:138) ... 10 more Dump thread list ... Group main,ac=11,agc=1,pri=10 main,5,alive AWT-Shutdown,5,alive AWT-Windows,6,alive,dameon AWT-EventQueue-0,6,alive Main Console Writer,6,alive TimerQueue,5,alive,dameon Thread-4,5,alive Group https://www.gryf.net/~tkaczma/sun/-threadGroup,ac=3,agc=0,pri=4 thread applet-mindbright.application.MindTerm.class,4,alive AWT-EventQueue-1,4,alive TimerQueue,4,alive,dameon Done. Dump system properties ... ---------------------------------------------------- acl.read = + acl.read.default = acl.write = + acl.write.default = application.home = C:\PROGRA~1\Java\J2RE14~1.0 awt.toolkit = sun.awt.windows.WToolkit bridge.home = C:\PROGRA~1\Java\J2RE14~1.0 browser = sun.plugin browser.vendor = Sun Microsystems, Inc. browser.version = 1.1 file.encoding = Cp1252 file.encoding.pkg = sun.io file.separator = file.separator.applet = true http.agent = Mozilla/4.0 (Windows 2000 5.0) java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment java.awt.printerjob = sun.awt.windows.WPrinterJob java.class.path = C:\PROGRA~1\Java\J2RE14~1.0\lib\applet java.class.version = 48.0 java.class.version.applet = true java.endorsed.dirs = C:\PROGRA~1\Java\J2RE14~1.0\lib\endorsed java.ext.dirs = C:\PROGRA~1\Java\J2RE14~1.0\lib\ext java.home = C:\PROGRA~1\Java\J2RE14~1.0 java.io.tmpdir = C:\DOCUME~1\KACZMT~1.NOR\LOCALS~1\Tempjava.library.path = C:\Program Files\Internet Explorer;.;C:\WINNT\System32;C:\WINNT;C:\Program Files\Internet Explorer;;C:\Program Files\Tcl\bin;C:\Perl\bin\;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\DMI\bin;C:\Program Files\SecureCRT 3.0 java.protocol.handler.pkgs = sun.plugin.net.protocol java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition java.runtime.version = 1.4.0-b92 java.specification.name = Java Platform API Specification java.specification.vendor = Sun Microsystems Inc. java.specification.version = 1.4 java.util.prefs.PreferencesFactory = java.util.prefs.WindowsPreferencesFactory java.vendor = Sun Microsystems Inc. java.vendor.applet = true java.vendor.url = http://java.sun.com/ java.vendor.url.applet = true java.vendor.url.bug = http://java.sun.com/cgi-bin/bugreport.cgi java.version = 1.4.0 java.version.applet = true java.vm.info = mixed mode java.vm.name = Java HotSpot(TM) Client VM java.vm.specification.name = Java Virtual Machine Specification java.vm.specification.vendor = Sun Microsystems Inc. java.vm.specification.version = 1.0 java.vm.vendor = Sun Microsystems Inc. java.vm.version = 1.4.0-b92 javaplugin.cache.size = 100m javaplugin.console = hide javaplugin.debug.mode = false javaplugin.enabled = true javaplugin.exception = false javaplugin.jre.path = Default javaplugin.jre.type = Default javaplugin.maxHeapSize = 96m javaplugin.nodotversion = 140 javaplugin.proxy.auto.url = http://lcproxy.cmis.abbott.com/lcproxy.pac javaplugin.proxy.bypass = javaplugin.proxy.config.type = auto javaplugin.proxy.usebrowsersettings = true javaplugin.version = 1.4.0 line.separator = \r\n line.separator.applet = true os.arch = x86 os.arch.applet = true os.name = Windows 2000 os.name.applet = true os.version = 5.0 os.version.applet = true package.restrict.access.netscape = false package.restrict.access.sun = true package.restrict.definition.java = true package.restrict.definition.netscape = true package.restrict.definition.sun = true path.separator = ; path.separator.applet = true sun.arch.data.model = 32 sun.boot.class.path = C:\PROGRA~1\Java\J2RE14~1.0\lib\rt.jar;C:\PROGRA~1\Java\J2RE14~1.0\lib\i18n.jar;C:\PROGRA~1\Java\J2RE14~1.0\lib\sunrsasign.jar;C:\PROGRA~1\Java\J2RE14~1.0\lib\jsse.jar;C:\PROGRA~1\Java\J2RE14~1.0\lib\jce.jar;C:\PROGRA~1\Java\J2RE14~1.0\lib\charsets.jar;C:\PROGRA~1\Java\J2RE14~1.0\classes;C:\PROGRA~1\Java\J2RE14~1.0\lib\jaws.jar;C:\PROGRA~1\Java\J2RE14~1.0\lib\charsets.jar;C:\PROGRA~1\Java\J2RE14~1.0\lib\jaws.jar;C:\PROGRA~1\Java\J2RE14~1.0\lib\jce.jar;C:\PROGRA~1\Java\J2RE14~1.0\lib\jsse.jar;C:\PROGRA~1\Java\J2RE14~1.0\lib\rt.jar;C:\PROGRA~1\Java\J2RE14~1.0\lib\sunrsasign.jar sun.boot.library.path = C:\PROGRA~1\Java\J2RE14~1.0\bin sun.cpu.endian = little sun.cpu.isalist = pentium i486 i386 sun.io.unicode.encoding = UnicodeLittle sun.java2d.fontpath = sun.os.patch.level = Service Pack 1 trustProxy = true user.country = US user.dir = C:\Documents and Settings\kaczmtj.NORTHAMERICA\Desktop user.home = C:\Documents and Settings\kaczmtj.NORTHAMERICA user.language = en user.name = kaczmtj user.timezone = America/Chicago user.variant = ---------------------------------------------------- Done. This bug can be reproduced always. CUSTOMER WORKAROUND : Go to a non SSL unsecure site and load an applet so that the plugin caches proxy authentication credentials. Using the same instance of the browser/plugin go to the secure authenticated site. (Review ID: 146433) ====================================================================== Name: gm110360 Date: 05/10/2002 FULL PRODUCT VERSION : java version "1.4.0" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92) Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode) FULL OPERATING SYSTEM VERSION : Microsoft Windows 2000 [Version 5.00.2195] EXTRA RELEVANT SYSTEM CONFIGURATION : The trace and example were done usine IE 6 for convenience or reporter who used Mozilla to fill out the bug report at the same time. The bug was actually observed using Mozilla 1.0 Release Candidate 1 and the results are consistent across the two browsers suggesting that it is in fact a problem with the plugin. A DESCRIPTION OF THE PROBLEM : When trying to load a jar file containing the applet from a secure authenticated site via an authenticated proxy the applet gets into an authentication loop with the proxy (it appears that it is not with the site but the proxy). The following occurs: 1. Proxy auth dialog pops up (correct credentials are entered) 2. Site auth dialog pops up (correct credentails are entered) 3. Proxy auth dialog pops up (correct credentials are entered) 4. Proxy auth dialog pops up (correct credentials are entered) 5. Proxy auth dialog pops up (correct credentials are entered) . . . Finally loading fails or I loose patience. The problem can be worked around if one loads an applet from a nonauthenticated site (e.g. http://java.sun.com, which is unsecure too) so that the plugin caches the proxy access credentials. The problem occurs with Mozilla and IE. It seems that the plugin either confuses the error returned by the proxy/site or sends the proxy incorrect (most likely site) credentials. This problem does not seem to occur when SSL is not involved. I set up a lab for you for comparison at: http://www.gryf.net/~tkaczma/sun and https://www.gryf.net/~tkaczma/sun For now you need to provide your own authenticated HTTP proxy. The secure site runs with a certificate signed by a private CA. The root cert can be found at http://www.gryf.net/ca.crt. You have an option of either trusting the site cert or adding the CA cert to the cacerts in the security subdirectory of JRE using a procedure documented on java.sun.com. STEPS TO FOLLOW TO REPRODUCE THE PROBLEM : 1. Configure all the pieces (http proxy and CA/site cert in the plugin) 2. Start a fresh browser so that no copy of the plugin is running 3. Go to https://www.gryf.net/~tkaczma/sun using the authenticated proxy 4. Enter proxy credentials 5. Enter site credentials (user: "java", password: "bug") (the plugin should load at this time) 6. Enter proxy credentials in the plugin pop-up 7. Enter site credentials in the plugin pop-up (user: "java", password: "bug") (Here is where the loop begins. You will be continuously queried for proxy credentials.) EXPECTED VERSUS ACTUAL BEHAVIOR : After entering the proxy and site credentials in the plugin auth dialogs the applet loads. This can be seen when going to the nonsecure site. (The nonsecure site can be biased, however, as I suspect that files downloaded via HTTP are cached while files downloaded via HTTPS are not) ERROR MESSAGES/STACK TRACES THAT OCCUR : Java(TM) Plug-in: Version 1.4.0 Using JRE version 1.4.0 Java HotSpot(TM) Client VM User home directory = C:\Documents and Settings\kaczmtj.NORTHAMERICA Proxy Configuration: Automatic Proxy Configuration URL: http://lcproxy.cmis.abbott.com/lcproxy.pac ---------------------------------------------------- c: clear console window f: finalize objects on finalization queue g: garbage collect h: display this help message l: dump classloader list m: print memory usage o: trigger logging p: reload proxy configuration q: hide console r: reload policy configuration s: dump system properties t: dump thread list x: clear classloader cache 0-5: set trace level to <n> ---------------------------------------------------- Trace level set to 5: basic, net, security, ext, liveconnect ... completed. Firewall authentication: site=lcproxy.cmis.abbott.com/10.254.248.1:8080, protocol=http, prompt=TrafficServer, scheme=basic Modality pushed Modality popped User selected: 0 java.net.UnknownHostException: www.gryf.net at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:143) at java.net.Socket.connect(Socket.java:425) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(DashoA6275) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(DashoA6275) at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(DashoA6275) at sun.net.www.protocol.https.HttpsClient.doConnect(DashoA6275) at sun.net.www.http.HttpClient.openServer(HttpClient.java:366) at sun.net.www.http.HttpClient.openServer(HttpClient.java:582) at sun.net.www.protocol.https.HttpsClient.<init>(DashoA6275) at sun.net.www.protocol.https.HttpsClient.a(DashoA6275) at sun.net.www.protocol.https.HttpsClient.a(DashoA6275) at sun.net.www.protocol.https.HttpsClient.a(DashoA6275) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.plainConnect(DashoA6275) at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:753) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.setProxiedClient(DashoA6275) at sun.net.www.protocol.https.PluginDelegateHttpsURLConnection.superConnect(PluginDelegateHttpsURLConnection.java:329) at sun.net.www.protocol.https.PluginDelegateHttpsURLConnection.access$100(PluginDelegateHttpsURLConnection.java:44) at sun.net.www.protocol.https.PluginDelegateHttpsURLConnection$2.run(PluginDelegateHttpsURLConnection.java:151) at java.security.AccessController.doPrivileged(Native Method) at sun.net.www.protocol.https.PluginDelegateHttpsURLConnection.connect(PluginDelegateHttpsURLConnection.java:146) at sun.net.www.protocol.https.PluginDelegateHttpsURLConnection.getInputStream(PluginDelegateHttpsURLConnection.java:341) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(DashoA6275) at sun.plugin.net.protocol.http.HttpUtils.followRedirects(HttpUtils.java:39) at sun.plugin.cache.CachedJarLoader.isUpToDate(CachedJarLoader.java:257) at sun.plugin.cache.CachedJarLoader.loadFromCache(CachedJarLoader.java:156) at sun.plugin.cache.CachedJarLoader.load(CachedJarLoader.java:127) at sun.plugin.cache.JarCache.get(JarCache.java:177) at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(CachedJarURLConnection.java:71) at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(CachedJarURLConnection.java:56) at sun.misc.URLClassPath$JarLoader.getJarFile(URLClassPath.java:498) at sun.misc.URLClassPath$JarLoader.<init>(URLClassPath.java:459) at sun.misc.URLClassPath$2.run(URLClassPath.java:255) at java.security.AccessController.doPrivileged(Native Method) at sun.misc.URLClassPath.getLoader(URLClassPath.java:244) at sun.misc.URLClassPath.getLoader(URLClassPath.java:221) at sun.misc.URLClassPath.getResource(URLClassPath.java:134) at java.net.URLClassLoader$1.run(URLClassLoader.java:190) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:186) at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:132) at sun.plugin.security.PluginClassLoader.findClass(PluginClassLoader.java:189) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:112) at java.lang.ClassLoader.loadClass(ClassLoader.java:262) at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:473) at sun.applet.AppletPanel.createApplet(AppletPanel.java:548) at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1621) at sun.applet.AppletPanel.runLoader(AppletPanel.java:477) at sun.applet.AppletPanel.run(AppletPanel.java:290) at java.lang.Thread.run(Thread.java:536) WARNING: error reading https://www.gryf.net/~tkaczma/sun/mindterm.jar from cache. Downloading https://www.gryf.net/~tkaczma/sun/mindterm.jar to cache Loading Root CA certificates from C:\PROGRA~1\Java\J2RE14~1.0\lib\security\cacerts Loaded Root CA certificates from C:\PROGRA~1\Java\J2RE14~1.0\lib\security\cacerts Loading Https Root CA certificates from C:\PROGRA~1\Java\J2RE14~1.0\lib\security\jssecacerts Https Root CA certificates file not found: C:\PROGRA~1\Java\J2RE14~1.0\lib\security\jssecacerts Loaded Https Root CA certificates from C:\PROGRA~1\Java\J2RE14~1.0\lib\security\jssecacerts Loading JPI Https certificates from C:\Documents and Settings\kaczmtj.NORTHAMERICA\.java\jpihttpscerts140 Loaded JPI Https certificates from C:\Documents and Settings\kaczmtj.NORTHAMERICA\.java\jpihttpscerts140 Loading certificates from JPI session certificate store Loaded certificates from JPI session certificate store Firewall authentication: site=null:443, protocol=https, prompt=Sun, scheme=basic Modality pushed Modality popped User selected: 0 Firewall authentication: site=lcproxy.cmis.abbott.com/10.254.248.1:8080, protocol=http, prompt=TrafficServer, scheme=basic Modality pushed Modality popped User selected: 0 java.net.UnknownHostException: www.gryf.net at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:143) at java.net.Socket.connect(Socket.java:425) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(DashoA6275) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(DashoA6275) at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(DashoA6275) at sun.net.www.protocol.https.HttpsClient.doConnect(DashoA6275) at sun.net.www.http.HttpClient.openServer(HttpClient.java:366) at sun.net.www.http.HttpClient.openServer(HttpClient.java:582) at sun.net.www.protocol.https.HttpsClient.<init>(DashoA6275) at sun.net.www.protocol.https.HttpsClient.a(DashoA6275) at sun.net.www.protocol.https.HttpsClient.a(DashoA6275) at sun.net.www.protocol.https.HttpsClient.a(DashoA6275) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.plainConnect(DashoA6275) at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:753) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.setProxiedClient(DashoA6275) at sun.net.www.protocol.https.PluginDelegateHttpsURLConnection.superConnect(PluginDelegateHttpsURLConnection.java:329) at sun.net.www.protocol.https.PluginDelegateHttpsURLConnection.access$100(PluginDelegateHttpsURLConnection.java:44) at sun.net.www.protocol.https.PluginDelegateHttpsURLConnection$2.run(PluginDelegateHttpsURLConnection.java:151) at java.security.AccessController.doPrivileged(Native Method) at sun.net.www.protocol.https.PluginDelegateHttpsURLConnection.connect(PluginDelegateHttpsURLConnection.java:146) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:556) at sun.net.www.protocol.https.PluginDelegateHttpsURLConnection.getInputStream(PluginDelegateHttpsURLConnection.java:351) at sun.net.www.protocol.http.HttpURLConnection.getHeaderFields(HttpURLConnection.java:1133) at sun.net.www.protocol.https.PluginDelegateHttpsURLConnection.checkCookieHeader(PluginDelegateHttpsURLConnection.java:394) at sun.net.www.protocol.https.PluginDelegateHttpsURLConnection.getInputStream(PluginDelegateHttpsURLConnection.java:349) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(DashoA6275) at sun.plugin.cache.CachedJarLoader.decompress(CachedJarLoader.java:365) at sun.plugin.cache.CachedJarLoader.access$500(CachedJarLoader.java:56) at sun.plugin.cache.CachedJarLoader$5.run(CachedJarLoader.java:344) at java.security.AccessController.doPrivileged(Native Method) at sun.plugin.cache.Cache.privileged(Cache.java:230) at sun.plugin.cache.CachedJarLoader.download(CachedJarLoader.java:329) at sun.plugin.cache.CachedJarLoader.load(CachedJarLoader.java:131) at sun.plugin.cache.JarCache.get(JarCache.java:177) at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(CachedJarURLConnection.java:71) at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(CachedJarURLConnection.java:56) at sun.misc.URLClassPath$JarLoader.getJarFile(URLClassPath.java:498) at sun.misc.URLClassPath$JarLoader.<init>(URLClassPath.java:459) at sun.misc.URLClassPath$2.run(URLClassPath.java:255) at java.security.AccessController.doPrivileged(Native Method) at sun.misc.URLClassPath.getLoader(URLClassPath.java:244) at sun.misc.URLClassPath.getLoader(URLClassPath.java:221) at sun.misc.URLClassPath.getResource(URLClassPath.java:134) at java.net.URLClassLoader$1.run(URLClassLoader.java:190) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:186) at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:132) at sun.plugin.security.PluginClassLoader.findClass(PluginClassLoader.java:189) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:112) at java.lang.ClassLoader.loadClass(ClassLoader.java:262) at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:473) at sun.applet.AppletPanel.createApplet(AppletPanel.java:548) at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1621) at sun.applet.AppletPanel.runLoader(AppletPanel.java:477) at sun.applet.AppletPanel.run(AppletPanel.java:290) at java.lang.Thread.run(Thread.java:536) WARNING: Unable to cache https://www.gryf.net/~tkaczma/sun/mindterm.jar Connecting https://www.gryf.net/~tkaczma/sun/mindterm.jar with proxy=lcproxy.cmis.abbott.com:8080 Firewall authentication: site=lcproxy.cmis.abbott.com/10.254.248.1:8080, protocol=http, prompt=TrafficServer, scheme=basic Modality pushed Modality popped User selected: 0 Connecting https://www.gryf.net/~tkaczma/sun/mindbright/application/MindTerm.class with proxy=lcproxy.cmis.abbott.com:8080 Firewall authentication: site=lcproxy.cmis.abbott.com/10.254.248.1:8080, protocol=http, prompt=TrafficServer, scheme=basic Modality pushed Modality popped User selected: 0 WARNING: Unable to cache https://www.gryf.net/~tkaczma/sun/mindbright/application/MindTerm.class Connecting https://www.gryf.net/~tkaczma/sun/mindbright/application/MindTerm.class with proxy=lcproxy.cmis.abbott.com:8080 Firewall authentication: site=lcproxy.cmis.abbott.com/10.254.248.1:8080, protocol=http, prompt=TrafficServer, scheme=basic Modality pushed Modality popped User selected: 0 Connecting https://www.gryf.net/~tkaczma/sun/mindbright/application/MindTerm/class.class with proxy=lcproxy.cmis.abbott.com:8080 Firewall authentication: site=lcproxy.cmis.abbott.com/10.254.248.1:8080, protocol=http, prompt=TrafficServer, scheme=basic Modality pushed Modality popped User selected: 0 WARNING: Unable to cache https://www.gryf.net/~tkaczma/sun/mindbright/application/MindTerm
|