Добавьте таблицу стилей к iframe с jQuery

Похоже, что в хранилище ключей есть запись для нашего закрытого ключа, но не сертификат клиента; перечислены только два сертификата от .p7b с сайта веб-сервисов.

PrivateKeyEntry, который вы показываете в списке keytool , содержит сертификат клиента (BC, KU и NCT) и сертификат CA, который, предположительно, является выдающим (родительским) сертификатом для этого клиента засвидетельствовано (Если вы импортировали эти сертификаты в это хранилище ключей с помощью keytool, то сертификат CA определенно является эмитентом, потому что keytool проверяет это; если вы использовали другой инструмент, он должен выполнить то же требование, но не может.) Вы описываете p7b содержит «второй для сайта веб-сервисов, выпущенного собственным CA корпоративного владельца», но (1) если бы в этом случае keytool не импортировал бы его как часть той же цепочки, и (2) это не имело бы смысла, потому что клиент не нуждается в выданном СА (то есть не самоподписанном) серверном сертификате в своем хранилище ключей или доверенного хранилища, только в сертификате ЦС сервера в своем хранилище доверенных сертификатов, и это как отдельная запись, отсутствующая в PrivateKeyEntry клиента, даже если это общий файл.

Согласно вашему описанию, вы получаете трассировку javax.net.debug=ssl, поэтому посмотрите на ту часть трассировки, куда она загружает хранилище ключей, и убедитесь, что эта запись загружается, и посмотрите на *** CertificateRequest сервера. ] в Cert Authorities, чтобы увидеть, какой CA (ы) он запрашивает (непосредственно до *** ServerHelloDone) и сравнить его (те) с фактическим CA для цепочки в вашем хранилище ключей (неотредактированный). Поскольку вы используете Apache HttpClient, если вы используете одну из перегрузок, которая задает PrivateKeyStrategy, убедитесь, что он правильно выбирает псевдоним.

8
задан hunter 9 March 2009 в 04:07
поделиться

2 ответа

Пока можно взаимодействовать с document.styleSheets iframe, олдскульный надежный путь состоит в том, чтобы или иметь таблицу стилей там во-первых (путем записи iframe-src для указания на пустой документ с желаемой таблицей стилей) или помещать его на месте с document.write(). Например:

<body>
    <iframe></iframe>
    <script type="text/javascript">

        var d= frames[0].document;
        d.open();
        d.write(
            '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional //EN" "http://www.w3.org/TR/html4/loose.dtd">'+
            '<html><head><style type="text/css">'+
            'body { font-size: 200%; }'+
            '<\/style><\/head><body><\/body><\/html>'
        );
        d.close();

        d.body.innerHTML= '<em>Hello</em>';
    </script>
</body>

(Это также установит iframe документ Режиму Стандартов, предполагая, что это - то, что Вы хотите.)

12
ответ дан 5 December 2019 в 05:34
поделиться

Вытащил этот код из источника jHtmlArea. Забавно, что функция была там, а я этого не понял. Я наткнулся на этот SO Question, когда пытался понять, как его реализовать. :)

На самом деле это не "jQuery", но он работает. Я догадываюсь, что что-то с приложением не работает с iframe, так что они сделали это в старой школе. Ответ Бобинса тоже выглядит хорошо, и может быть более надёжным? Пока что, похоже, это работает.

var e = edit.createElement('link'); 
e.rel = 'stylesheet'; 
e.type = 'text/css'; 
e.href = options.css; 
this.iframe[0].contentWindow.document.getElementsByTagName('head')[0].appendChild(e);

РЕДАКТИРОВАНИЕ : Я думаю, что причина, по которой это работает, в том, что это один и тот же домен (включая создание iframe в js) Иначе обычные блоки безопасности браузера не позволят вам манипулировать iframe dom.

Смотрите Как применить CSS к iFrame

1
ответ дан 5 December 2019 в 05:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: