Не удается загрузить SWF-файл из http-источника (сервера wildfly) в Chrome? - PullRequest
1 голос
/ 26 апреля 2019

Невозможно загрузить SWF-файл (http://my_server:8080/service/com.mypackage/my_file.swf) из Chrome. Он может загрузить тот же файл из Chrome, когда он находится на жестком диске. Я использую flash 32.0.0.171 и Chrome версии 51.0.2704.84 (64 -bit). Другие браузеры, такие как IE, имеют аналогичную проблему. Когда я использую F12 для отладки проблемы, ошибок нет, и междоменный домен не используется, только файл swf извлекается с запросом GET.

Этот SWF-файл создается компилятором версии Adobe AIR 3.7 SDK. я не могу установить последнюю версию SDK по какой-то причине.

  1. Если я введу http://my_server:8080/service/com.mypackage/my_file.swf в Chrome, он будет автоматически загружен. Если я введу SWF-файл (CDdemo.swf) по этой ссылке https://security.stackexchange.com/questions/154182/why-is-google-chrome-blocking-raw-swf-playback, он правильно загружен в тот же браузер, и Flash корректно воспроизводит CDdemo.swf Я пытался использовать тот же объектный код, что и в примере HTML предыдущей ссылки, но ничего не отображалось.

  2. Если я использую HTML-файл, в котором используется SWF, расположенный на флэш-диске жесткого диска, я могу прочитать его и правильно загрузить флэш-память. Этот код работает:

<object name="play" type="application/x-shockwave-flash" data="C:/tmp/my_file.swf"
  1. Я использовал относительный путь com.mypackage / my_file.swf вместо http://my_server:8080/service/com.mypackage/my_file.swf. Chrome дает журнал, уведомляющий о том, что запрос на получение был успешным (200) для этого swf. Однако файл все еще не читается Flash.

  2. Я пытался использовать следующий код, но тоже ничего не отображалось:

<object width="800" height="600" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0">

    <embed src="http://my_server:8080/service/com.mypackage/my_file.swf" quality="high"type="application/x-shockwave-flash" width="800" height="600" />
</object>
  1. Я также использую flashplayer_32_sa_debug.exe для отладки файла swf. Когда я использую SWF-файл на моем локальном жестком диске, он работает, но когда я использую URL http://my_server:8080/service/com.mypackage/my_file.swf, он вылетал без ошибок. Я думаю, что это проблема аутентификации в этом случае. Обычно я аутентифицируюсь на my_server, а затем пытаюсь загрузить SWF-файл.

  2. Если я использую другой SWF-файл, у меня тоже ничего не отображается. я сильно подозреваю, что на моем сервере Wildfly есть блокировка. Я могу загрузить этот SWF-файл на тот же Chrome с сервера Jetty. На мой взгляд, это особая проблема Wildfly.

Это также оригинальный код, который используется для работы, но теперь не отображается в браузере Chrome:

<body>
<object name="play" type="application/x-shockwave-flash" data="http://my_server:8080/service/com.mypackage/my_file.swf" 
id="play" style="margin:0 10px;width:1000;height:1000;" allowScriptAccess="always">

<param name="wmode" value="transparent" />
<param name="flashvars" value="myvalue=blah" />
<param name="quality" value="high" />
<param name="menu" value="false" />
<param name="allowscriptaccess" value="always" />
 <param name="autoplay" value="true" />



</object>
</body>

В журнале доступа к серверу Wildfly у меня есть эта информация:

INFO [io.undertow.accesslog] (задание по умолчанию-12) 167.22.22.22 - 0a658140-8ad8-4347-910b-796e651a12cf [27 / Apr / 2019: 12: 32: 45 +0000] "GET / my_service / my_file.swf HTTP / 1.1 "200 116887" - "" Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, как Gecko)

Я ожидаю воспроизвести файл SWF и отобразить содержимое. Это должно быть "загрузка в процессе ...". Ничего не отображается, и отображается только журнал (200 OK) о том, что SWF-файл загружается правильно с помощью запроса GET.

1 Ответ

1 голос
/ 27 апреля 2019

Исправлено так, что расширение swf разрешалось использовать в качестве типа mime для флэш-памяти в конфигурации web.wml.Фильтр «x-content-type-options» на сервере Wildfly блокировал SWF-файлы

<filter-ref name="x-content-type-options"/>

Поскольку этот SWF-файл был правильно загружен с сервера Jetty, я должен был предположить, что виновником был мой сервер Wildfly..

также

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...