2016-07-13 8 views
0

Chromeで、以下のエラーに示されているxmlリンクにアクセスしようとすると、このエラーが発生します。Chrome同じURL、プロトコル、ポートで「URLを読み込むのが安全でない」

URL http://build:8080/view/application/job/Project/Report/SourceMonitor.xsltをURL http://build:8080/view/application/job/Project/Report/SourceMonitor-details.xmlのフレームから読み込むのが安全でない。ドメイン、プロトコル、ポートは一致する必要があります。

ドメインと同じように、プロトコルとポートは同じです。
ファイルは両方ともJenkins CI Webサーバーでホストされているため、ローカルファイルであるためではありません。
Internet Explorerでxmlファイルを開いたときに動作します。
xmlファイルは、以下に示すxmlタグを持つxsltにリンクしています。

<?xml-stylesheet type="text/xsl" href="SourceMonitor.xslt"?> 

私はここで何が欠けていますか?

答えて

1

Jenkins Dockerの内部的なインフラストラクチャで同じ問題が発生しましたが、Jenkins Dockerイメージではドキュメントに従って実行し、XSLTファイルとそのXSLTを参照するXMLファイルを生成するパイプラインジョブを作成すると簡単に再現できますファイル。 ノード割り当てノード:開始のワークスペースフォルダからXMLを開くと、質問に記載されているエラーが出力されます。

の読み込みエラースタイルシート:ネットワークエラーがXSLTスタイルシートを読み込み発生しましたhttp://build:8080/view/application/job/Project/Report/SourceMonitor.xslt

解決

この

は、のようなものを見て、だけでなく、Firefoxがエラーを報告しますようもののChromeはに限定されるものではありませんこれはJenkinsが使用するコンテンツセキュリティポリシー(CSP)を構成するための問題です。コンテンツセキュリティポリシーの仕組みは、 Stackoverflow: How does Content Security Policy work?で説明しています。

JenkinsのデフォルトのCSP設定は非常に厳密で、参照するドキュメントからXSLファイルを読み込むことはできません。デフォルトのCSP設定とそれを変更する方法は、Jenkins wikiページに記載されています。

は、CSPドキュメント(CR-CSP-20121115章4.2スクリプト-SRC)によると、XSLスタイルシートは、スクリプトとして扱われ、私はシンプルなXSLスタイルシートを機能させるために、デフォルトの設定にscript-src 'self';sandbox allow-same-origin;を追加する必要がありました。それは、すべてのジェンキンスのwikiページに文書化され、次の再起動まで一時的にCSPを変更

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","sandbox allow-same-origin; default-src 'none'; img-src 'self'; style-src 'self'; script-src 'self';") 

System.setPropertyを使用する:私は実行することにより、ジェンキンススクリプトコンソールを経由してこれをしませんでした。

XSLTファイルのコンテンツでは、スタイルタグの解釈を許可するなど、他のCSPルールも緩和する必要があるため、Chromeや他のブラウザから報告されるエラーを探します。

関連する問題