Апплет запрашивает crossdomain.xml
У меня есть веб-сервер (IBM Domino), который использует 2 имени хоста из-за двух разных методов аутентификации. Оба обслуживают одно и то же приложение, которое содержит Java-апплет, который выполняет загрузку изображений в сервлет.
Проблема в том, что для одного имени хоста требуется crossdomain.xml, даже если ответ возвращается на тот же сервер. Ниже находится журнал из консоли Java
security: Certificate has been verified with Internet Explorer ROOT certificates successfully
security: Valid certificate from HTTPS server
security: Adding certificate in Deployment session certificate store
security: Added certificate in Deployment session certificate store
security: Saving certificates in Deployment session certificate store
security: Saved certificates in Deployment session certificate store
network: Connecting https://v8lnprox1-sso.pradny.com/lwf/hd.nsf/test.jar with cookie "SessionID=DICYCB6XKY; LtpaToken=AAECAzUxQzgzMjJDNTFDOTgzQUNDTj1Ob3RlcyBEZXNpZ24vTz1QTUIvQz1DWi2qxrRR+Cf/ZLIyNcL5C2MYFyO/"
network: ResponseCode for https://v8lnprox1-sso.pradny.com/lwf/hd.nsf/test.jar : 304
network: Encoding for https://v8lnprox1-sso.pradny.com/lwf/hd.nsf/test.jar : null
network: Disconnect connection to https://v8lnprox1-sso.pradny.com/lwf/hd.nsf/test.jar
cache: Reading Signers from 4633 https://v8lnprox1-sso.pradny.com/lwf/hd.nsf/test.jar | C:\Documents and Settings\exmartin\Data aplikací\Sun\Java\Deployment\cache\6.0\32\4961f60-2fd2a536.idx
cache: Read manifest for https://v8lnprox1-sso.pradny.com/lwf/hd.nsf/test.jar: read=241 full=241
basic: Plugin2ClassLoader.getPermissions CeilingPolicy allPerms
security: Loading Root CA certificates from C:\Program Files\Java\jre6\lib\security\cacerts
security: Loaded Root CA certificates from C:\Program Files\Java\jre6\lib\security\cacerts
security: Loading Deployment certificates from C:\Documents and Settings\exmartin\Data aplikací\Sun\Java\Deployment\security\trusted.certs
security: Loaded Deployment certificates from C:\Documents and Settings\exmartin\Data aplikací\Sun\Java\Deployment\security\trusted.certs
security: Loading certificates from Deployment session certificate store
security: Loaded certificates from Deployment session certificate store
security: Loading certificates from Internet Explorer ROOT certificate store
security: Loaded certificates from Internet Explorer ROOT certificate store
security: Loading certificates from Internet Explorer TrustedPublisher certificate store
security: Loaded certificates from Internet Explorer TrustedPublisher certificate store
security: Validate the certificate chain using CertPath API
security: Obtain certificate collection in Root CA certificate store
security: Obtain certificate collection in Root CA certificate store
security: No timestamping info available
security: Found jurisdiction list file
security: Start checking trusted extension for this certificate
security: Start comparing to jurisdiction list with this certificate
security: The CRL support is disabled
security: The OCSP support is disabled
security: This OCSP End Entity validation is disabled
security: Checking if certificate is in Deployment denied certificate store
security: Checking if certificate is in Deployment permanent certificate store
basic: Applet loaded.s
basic: Applet resized and added to parent container
basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 263251 us, pluginInit dt 4145344 us, TotalTime: 4408595 us
basic: Applet initialized
basic: Removed progress listener: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@1dff3a2
basic: Applet made visible
basic: Starting applet
basic: completed perf rollup
basic: Applet started
basic: Told clients applet is started
SERVERhttp://v8lnprox1-sso.pradny.com/servlet/imgPaste?lnid=C12579B50053D943@F3B5BDE9E7B4E2F4C1257B94003D0AEB10eyr0f4mw4cg&category=imgPozadavek&userName=CN%3DNotes%20Design/O%3DPMB/C%3DCZ
class java.io.InputStream
1
2
3
4
5
network: Connecting http://v8lnprox1-sso.pradny.com/servlet/imgPaste?lnid=C12579B50053D943@F3B5BDE9E7B4E2F4C1257B94003D0AEB10eyr0f4mw4cg&category=imgPozadavek&userName=CN%3DNotes%20Design/O%3DXXX/C%3DCZ with proxy=DIRECT
network: Cache entry not found [url: http://172.27.40.228/crossdomain.xml, version: null]
network: Connecting http://172.27.40.228/crossdomain.xml with proxy=DIRECT
network: Connecting http://172.27.40.228:80/ with proxy=DIRECT
Если я добавлю файл crossdomain.xml, он будет работать нормально, но я не думаю, что это необходимо.
Для обоих имен хостов мы публикуем данные на http-адрес, даже когда приложение работает через https, потому что в прошлом у нас были проблемы с апплетом и https.
Урезанная версия со второго имени хоста, которая отлично работает без crossdomain.xml
network: Connecting https://v8lnprox1.pradny.com/lwf/hd.nsf/test.jar with cookie "SessionID=DICYID8LJR; DomAuthSessId=DC524501EBA6503AB01FC5C61D8DA887"
network: CleanupThread used 3 us
network: Downloading resource: https://v8lnprox1.pradny.com/lwf/hd.nsf/test.jar
Content-Length: 7 630
Content-Encoding: null
network: Wrote URL https://v8lnprox1.pradny.com/lwf/hd.nsf/test.jar to File C:\Documents and Settings\exmartin\Data aplikací\Sun\Java\Deployment\cache\6.0\19\537eb3d3-1edda6c2-temp
SERVERhttp://v8lnprox1.pradny.com/servlet/imgPaste?lnid=C12579B50053D943@F3B5BDE9E7B4E2F4C1257B94003D0AEB10eyr0f4mw4cg&category=imgPozadavek&userName=CN%3DNotes%20Design/O%3DPMB/C%3DCZ
class java.io.InputStream
1
2
3
4
5
network: Connecting http://v8lnprox1.pradny.com/servlet/imgPaste?lnid=C12579B50053D943@F3B5BDE9E7B4E2F4C1257B94003D0AEB10eyr0f4mw4cg&category=imgPozadavek&userName=CN%3DNotes%20Design/O%3DXXX/C%3DCZ with proxy=DIRECT
network: Connecting http://v8lnprox1.pradny.com:80/ with proxy=DIRECT
6
network: Connecting http://v8lnprox1.pradny.com/servlet/imgPaste?lnid=C12579B50053D943@F3B5BDE9E7B4E2F4C1257B94003D0AEB10eyr0f4mw4cg&category=imgPozadavek&userName=CN%3DNotes%20Design/O%3DXXX/C%3DCZ with cookie "SessionID=DICYID8LJR; DomAuthSessId=DC524501EBA6503AB01FC5C61D8DA887"
7
Nacteno bytu: 527412
Есть идеи, что может вызвать разницу? (проверено на Java 1.6u34)
1 ответ
В заметках о выпуске для java 6 update 22 написано:
CVE-2010-3560
Исправление для CVE-2010-3560 могло привести к тому, что некоторые Java-апплеты, работающие в новом Java-плагине, перестали работать, если они встроены в веб-страницы, содержащие JavaScript, который вызывает Java для выполнения действий, требующих разрешений сетевой безопасности. Эти апплеты могут завершиться с ошибкой безопасности сети при некоторых обстоятельствах, если служба имен, которая разрешила исходное имя хоста URL веб-страницы, не возвращает совпадающее имя в результате обратного поиска адреса. [...]
Может ли быть так, что плагин выполняет обратный поиск IP-адреса исходного сервера, обнаруживает другое имя хоста и, следовательно, решает, что это междоменный запрос?