Description
/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
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