জেনকিনস - এইচটিএমএল প্রকাশক প্লাগইন - জেনকিন্স সার্ভারে প্রতিবেদনটি দেখার সময় কোনও সিএসএস প্রদর্শিত হয় না


92

জেনকিনস এইচটিএমএল প্রকাশক প্লাগইন নিয়ে আমার একটি অদ্ভুত সমস্যা রয়েছে, যার মধ্যে জেনকিন্সে দেখার সময় আমি প্রতিবেদনে যুক্ত করা সমস্ত অভিনব সিএসএস সরিয়ে ফেলা হয়। আমি যদি স্থানীয়টিতে প্রতিবেদনটি ডাউনলোড করি তবে আমি সিএসএস বিন্যাস দেখতে সক্ষম হব। জেনকিন্সে এমন কোনও সেটিংস রয়েছে যা CSS দেখার অনুমতি দেয়?

জেনকিন্সে আমার এইচটিএমএল প্রকাশক সেটিংস:

এখানে চিত্র বর্ণনা লিখুন

জেনকিনসে প্রদর্শিত হলে আমার রিপোর্ট পৃষ্ঠা:

এখানে চিত্র বর্ণনা লিখুন

স্থানীয়তে প্রদর্শিত হলে আমার রিপোর্ট পৃষ্ঠা:

এখানে চিত্র বর্ণনা লিখুন



4
প্রত্যেকে কেন এটি প্রথম স্থানে রয়েছে তা নিয়ে কোনও চিন্তা ছাড়াই বিষয়বস্তু সুরক্ষা নীতি নিষ্ক্রিয় করে এটি "ঠিক" করে বলছেন। যে কেউ তৈরি করা পরিবর্তনগুলিকে প্রভাবিত করতে পারে সে অ্যাডমিনের শংসাপত্রগুলি হাইজ্যাক করতে এবং পুরো জেনকিন্স ক্লাস্টারে অ্যাক্সেস অর্জন করতে সক্ষম হবে। ইনলাইন সিএসএস বেশিরভাগ ক্ষেত্রে নিরাপদ যদি আপনি সতর্ক হন তবে স্ক্রিপ্টগুলি মঞ্জুরি দেওয়া বিপর্যয়।
অরেঞ্জডগ

উত্তর:


174

ইস্যুটি বের করলেন। এটি অন্যান্য ব্যবহারকারীর জন্য এখানে ভাগ করে নেওয়া।

জেনকিনসে বিষয়বস্তু সুরক্ষা নীতিমালার কারণে সিএসএস ছিনিয়ে নেওয়া হয়েছে। ( https://wiki.jenkins-ci.org/display/JENKINS/ কনফিগারিং + কনটেন্ট + সুরক্ষা + পুলিশি )

ডিফল্ট নিয়মটি এতে সেট করা আছে:

sandbox; default-src 'none'; img-src 'self'; style-src 'self';

এই বিধি নিম্নলিখিত ফলাফলগুলি সেট করে:

  • কোনও জাভাস্ক্রিপ্ট মোটেই অনুমোদিত নয়
  • কোনও প্লাগইন (বস্তু / এম্বেড) অনুমোদিত নয়
  • অন্য কোনও সাইট থেকে কোনও ইনলাইন সিএসএস বা সিএসএস অনুমোদিত নয়
  • অন্যান্য সাইট থেকে কোনও চিত্র অনুমোদিত নয়
  • কোনও ফ্রেমের অনুমতি নেই
  • কোনও ওয়েব ফন্ট অনুমোদিত নয়
  • কোনও এক্সএইচআর / এজেএক্স অনুমোদিত নয়, ইত্যাদি

এই নিয়মটি শিথিল করতে, এখানে যান

  1. জেনকিন্স-> পরিচালনা করুন
  2. নোড-> পরিচালনা করুন
  3. সেটিংস (গিয়ার আইকন) -> ক্লিক করুন
  4. বামদিকে স্ক্রিপ্ট কনসোল ক্লিক করুন এবং নিম্নলিখিত কমান্ডটি টাইপ করুন:

    System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

এবং রান চাপুন। আপনি যদি "ফলাফল" শিরোনামের নীচে আউটপুটটিকে 'ফলাফল:' হিসাবে দেখেন তবে সুরক্ষা অক্ষম করা হয়। আপনার বিল্ডটি পুনরায় চালনা করুন এবং আপনি দেখতে পাবেন যে নতুন এইচটিএমএল ফাইলগুলি সংরক্ষণাগারভুক্ত হবে তাতে CSS সক্ষম হবে।


4
ধন্যবাদ!!! এটি আমাকে জেনকিন্সের সাথে থাকা এই সিএসএস সমস্যাটি সমাধান করতে সত্যিই সহায়তা করেছিল।
ইয়াল সুলিমান

4
@ স্টেরপাইক আমি কী বলতে চাইছিলাম তা ভেবে অবাক হয়েছিলাম এবং তারপরে জানতে পারি যে জেনকিন্স পুনরায় চালু করার পরে CSS অবরোধ করা হয়েছিল। তাই আমি একটি জেনকিন্স কাজ তৈরি করেছি যা প্রতি 12 ঘন্টা অন্তর কমান্ড চালায়। কৌতুক করতে পারে বলে মনে হচ্ছে।
এ্যারোফার

@ এ্যারোফার আপনাকে ধন্যবাদ - আমি জেনকিন্স নবাগত - আমি কীভাবে এই কাজটি সেটআপ করব? উইন্ডোজ ব্যাচ কমান্ডের একটি বিল্ড স্টেপ অফ এক্সিকিউট দিয়ে একটি সাধারণ কাজ সেটআপ করবেন?
স্টিয়ারপাইক

4
@ স্টিয়ারপাইক এটি গ্রুভি কমান্ড ব্যতীত ঠিক আছে, সুতরাং আপনার এটি "এক্সিকিউট সিস্টেম গ্রুভি স্ক্রিপ্ট" বিল্ড পদক্ষেপে সম্পাদন করা দরকার। এবং তারপরে "ট্রিগারগুলি তৈরি করুন" বিভাগের অধীনে আমি এই মানটি দিয়ে "পর্যায়ক্রমিকভাবে বিল্ড" নির্বাচন করেছি: এইচ 12 * * *
এ্যারোফার

আসলে, আপনার নিজের বিল্ডটি পুনরায় চালানোর দরকার নেই। জেনকিন্স থেকে উত্পন্ন এইচটিএমএলকে কেবল পুনরায় লোড করুন এবং এটি নীতি পরিবর্তনের প্রভাব গ্রহণ করবে।
hshib

22

ইন CentOS , HTML প্রতিবেদন চিত্র সক্ষম করতে

  • sudo vi /etc/sysconfig/jenkins
  • ভিতরে নিম্নলিখিত সেট JENKINS_JAVA_OPTION

JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.model.DirectoryBrowserSupport.CSP=\"default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;\""

এটি জেনকিন্স সার্ভার পুনরায় চালু করার পরেও কাজ করবে।


নির্দেশিকা

ডিফল্ট-এসসিআর : জাভাস্ক্রিপ্ট, চিত্র, সিএসএস, ফন্ট, এজেএক্স অনুরোধ, ফ্রেমস, এইচটিএমএল 5 মিডিয়া হিসাবে সামগ্রী লোড করার জন্য ডিফল্ট-এসসিআর হ'ল ডিফল্ট নীতি is

img-src: চিত্রগুলির বৈধ উত্সগুলি সংজ্ঞায়িত করে।

উত্স মান

'স্ব' - একই উত্স (একই স্কিম, হোস্ট এবং পোর্ট) থেকে সংস্থানগুলি লোড করার অনুমতি দেয়।

ব্যবহার: default-src 'self'

'অনিরাপদ-ইনলাইন' - শৈলীর বৈশিষ্ট্য, অনক্লিক, বা স্ক্রিপ্ট ট্যাগ সংস্থাগুলি (এটি প্রয়োগ করা উত্সের প্রেক্ষাপটে নির্ভর করে) এবং জাভাস্ক্রিপ্ট: ইউআরআই হিসাবে ইনলাইন উত্স উপাদানগুলির ব্যবহারের অনুমতি দেয়।

ব্যবহার: default-src 'unsafe-inline'

'অনিরাপদ-alভাল' - জাভাস্ক্রিপ্ট ইভাল () এর মতো অনিরাপদ গতিশীল কোড মূল্যায়নের অনুমতি দেয়

ব্যবহার: default-src 'unsafe-eval'

ডেটা: - ডেটা স্কিমের মাধ্যমে সংস্থানগুলি লোড করার অনুমতি দেয় (উদাঃ বেস 64 এনকোডড চিত্রগুলি)।

ব্যবহার: img-src 'self' data:

বিষয়বস্তু সুরক্ষা নীতি সম্পর্কে এখানে আরও উল্লেখ করুন


4
আপনার কেবল ইনলাইন সিএসএস সক্ষম করা উচিত, এবং এই সমস্ত অনিরাপদ জিনিসগুলি নয়
অরেঞ্জডগ

যদি আপনি এই জাতীয় ডেটা অংশে কিছু এসজিজি ব্যবহার করেন <object type="image/svg+xml" data="imgs/lifecycle-diagram.svg"><span class="alt">lifecycleDiagram</span></object>(এম্বেডেড প্ল্যান্টামল ডায়াগ্রামের জন্য ইন্টারেক্টিভ এসিইডোক্টর স্প্রিং-রেস্ট ডকুমেন্টেশনের ফলাফল), আপনার নিজের জন্য অবজেক্ট-এসসিআর সেট করতে হবে। পালানোর লক্ষ করুন:JENKINS_JAVA_OPTIONS='-Djava.awt.headless=true -Dhudson.security.HudsonPrivateSecurityRealm.ID_REGEX="^[a-zA-Z0-9_.-]+$" -Dhudson.model.DirectoryBrowserSupport.CSP="sandbox; default-src '\''none'\''; img-src '\''self'\''; style-src '\''self'\''; object-src '\''self'\'';"'
লুবো

4
দুর্দান্ত! --env JAVA_OPTS = "..."
স্মেল্ম

4
আমার উবুন্টু ইনস্টলেশনের জন্য আমি vi /etc/default/jenkinsভেরিয়েবলটি ব্যবহার করেছিJAVA_ARGS
mRyan

14

"জেনকিন্স পরিচালনা করুন" -> "স্ক্রিপ্ট কনসোল" এ যান এবং কমান্ডের নীচে রান করুন:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

4
দ্বিতীয় পরম সংশোধন করার পরে কিথিংমাত্থে বর্ণিত মূল্যবোধগুলিতে এটি আমার জন্য কাজ করেছিল, যেমনSystem.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
অ্যান্ড্রু ম্যাক্রোড্ট

@ অ্যান্ড্রুম্যাক্রোড যা পরামর্শ দিয়েছেন তা হ'ল আমার পক্ষে কাজ করা একমাত্র সমাধান (আমি
সেন্টস-এ

12

(নিম্নলিখিত সমাধানটি উইন্ডোজের জন্য))

একটি স্থায়ী সমাধান হ'ল একটি লাইন পরিবর্তন করা [Jenkins directory]\jenkins.xml(আমার জন্য এটি এখানে C:\Jenkins\jenkins.xml)

<executable>java.exe</executable>
<arguments>[arguments are here]</arguments>

আর্গুমেন্টের সাদা স্থান-বিচ্ছিন্ন তালিকায় নিম্নলিখিত যুক্তি যুক্ত করুন:

-Dhudson.model.DirectoryBrowserSupport.CSP=

তারপরে পরিবর্তনটি বেছে নিতে জেনকিন্স পরিষেবাটি পুনরায় চালু করুন।


4
এটি আমার পক্ষে একমাত্র কার্যকরী উত্তর, আমি -Dfile.encoding=UTF-8যুক্তিগুলিতে আরও যুক্ত করেছিলাম
সাশা বন্ড

9

আপনি উল্লেখিত খাঁজকাটা কমান্ড ব্যবহার করে এটিকে ঠিক করতে পারেন Vall এর উত্তর।

জেনকিন্স পুনরায় আরম্ভ না হওয়া পর্যন্ত এর প্রভাব কার্যকর রয়েছে এবং এরপরে আপনাকে আবার এটি করতে হবে।

এই সমস্যার সমাধানের সমাধান হ'ল একটি কাজটি কনফিগার করা যা যখনই জিনকিনস শুরু হবে আপনার জন্য এটি করবে।

আপনি স্টার্টআপ ট্রিগার প্লাগইন ব্যবহার করে এটি করতে পারেন ।

এটি ইনস্টল করার পরে এটি একটি নতুন কাজ তৈরি করবে এবং আপনার বিল্ড ট্রিগার বিভাগের অধীনে একটি নতুন চেকবক্স থাকবে যা আপনাকে চেক করতে হবে।

তারপরে কমান্ডটি দিয়ে একটি এক্সিকিউট সিস্টেম গ্রোভি স্ক্রিপ্ট বিল্ড স্টেপ যুক্ত করুন:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")

সংরক্ষণ করুন এবং সবকিছু কাজ করা উচিত।


এই পদ্ধতিটি সহ আপনার গ্রুভি প্লাগইনও ইনস্টল করতে হবে, যদি আপনার ইতিমধ্যে না থাকে। অন্যথায়, কার্যকর করুন সিস্টেম গ্রুভি স্ক্রিপ্ট বিল্ড স্টেপ বিল্ড বিকল্পগুলির মধ্যে প্রদর্শিত হবে না।
বিলিন্ট পাপ

5

উবুন্টুর জন্য 14 সংস্করণ সহায়ক ছিল বিশেষ প্লাগইনস:

https://wiki.jenkins-ci.org/display/JENKINS/Startup+ ট্রিগার - জেনকিন্স স্টার্টআপে কাজ শুরু করতে

https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin - সিস্টেম গ্রোভি স্ক্রিপ্ট চালাতে

এবং আমি একটি কাজ করেছি, এটি জেনকিন্স পুনরায় আরম্ভ হতে শুরু করে এবং প্যারামিটার সেট করে।

জেনকিন্স চালানোর পরে বিল্ড শুরু করতে প্রস্তুত

এবং প্যারামিটার সেট করতে সিস্টেম গ্রোভি স্ক্রিপ্ট যুক্ত করেছে। সিস্টেম গ্রোভি স্ক্রিপ্ট চালান System.setProperty ("hudson.model.DirectoryBrowserSupport.CSP", "স্যান্ডবক্স; img-src 'স্ব';")


যদিও কাজটি চালানো সফলভাবে শেষ হয়েছে, এটি আমার প্রতিবেদনের জন্য সিএসএস প্রদর্শন সক্ষম করে না। আমি "স্ক্রিপ্ট কনসোল" -তে ঠিক একই গ্রোভি স্ক্রিপ্ট চালিয়েছিলাম এবং এটি দুর্দান্ত কাজ করেছে। আমি আর কী করতে পা্রি? এই কাজের গ্রোভি স্ক্রিপ্ট প্রকৃত পিতামাতার জেনকিনের সম্পত্তি পরিবর্তন করছে না।
frakman1

@ ফ্রেমম্যান 1 এই মুহুর্তে আমার গ্রোভি স্ক্রিপ্টটি দেখতে দেখতে - System.setProperty ("hudson.model.DirectoryBrowserSupport.CSP", "") তবে এগুলি সব কিছু কাজ করে। সম্ভবত আপনার প্রশাসক ব্যবহারকারী নেই?
অবিব

প্রতিক্রিয়ার জন্য আপনাকে ধন্যবাদ. আমি অবশেষে এটি কাজ করতে পেলাম। পরিবর্তে আমাকে এই স্ক্রিপ্টটি ব্যবহার করতে হয়েছিল:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox allow-same-origin allow-scripts; default-src 'self'; script-src * 'unsafe-eval'; img-src *; style-src * 'unsafe-inline'; font-src *")
ফ্রেমম্যান 1

1

যাও

জেনকিন্স -> স্ক্রিপ্ট কনসোল পরিচালনা করুন

এবং নিম্নলিখিত কমান্ডটি টাইপ করুন:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

তারপরে রান চাপুন। যদি আপনি 'ফলাফল' হিসাবে আউটপুট পান তবে বিল্টটি পুনরায় চালু করুন এইচটিএমএল প্রতিবেদন বিন্যাসটি পুনরায় চালু করুন


1

স্থায়ীভাবে একটি গ্রোভি স্ক্রিপ্ট ফাইল তৈরি করতে $ জেনকেইনসহোম / init.groovy , বা ডিরেক্টরিতে কোনও .Groovy ফাইল $ JENKINS_Home / init.groovy.d / নিম্নলিখিত সামগ্রীর সাথে:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox allow-scripts; default-src 'self'; img-src *; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline';")

systemctl পুনরায় আরম্ভ করুন jenkins

https://wiki.jenkins.io/display/JENKINS/ পোষ্ট- নামকরণ সংক্রান্ত+ স্ক্রিপ্ট


1

Jenkins.xML ফাইলটি খুলুন এবং নীচের মতো যুক্তিগুলি অনুলিপি করুন। এটি স্থায়ীভাবে ঠিক হয়ে যাবে। এটি হয়ে গেলে আপনার মেশিনটি পুনরায় চালু করুন।

<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -Dhudson.model.DirectoryBrowserSupport.CSP="sandbox allow-scripts; default-src 'self'; style-src 'self' 'unsafe-inline';" -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war"</arguments

1

উপর সেন্টওএস , সমাধান নিচে (যা অন্য উত্তর মন্তব্যে প্রস্তাব ছিল) শুধুমাত্র এক যা আমার জন্য কাজ করেছেন:

  1. এতে যান: জেনকিন্স> নোড এবং ক্লাউড পরিচালনা করুন
  2. নোডের জন্য ডানদিকে গিয়ার আইকনটি ক্লিক করুন (ডিফল্টরূপে কেবলমাত্র মাস্টার নামে একটি নোড থাকবে)
  3. বামদিকে 'স্ক্রিপ্ট কনসোল' ক্লিক করুন
  4. কনসোল উইন্ডোতে নিম্নলিখিতটি প্রবেশ করান: System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' 'unsafe-inline' data:;")
  5. রান ক্লিক করুন
  6. নীচের স্ক্রিনশটের অনুরূপ ফলাফল বিভাগে আপনার কিছু আউটপুট দেখতে হবে:

স্ক্রিপ্ট কনসোল ফলাফল

আমার বিশেষ ইস্যুতে সেরেনিটি বিডিডি রিপোর্টে চিত্র / সিএসএস অনুপস্থিত ছিল। এই পদক্ষেপগুলি সম্পাদন করার পরে আমার সেরেনিটি রিপোর্টগুলিতে সমস্ত চিত্র / সিএসএস যথাযথভাবে রেন্ডারিং হয়েছে, বিল্ডগুলি থেকে প্রতিবেদনগুলিও যা এই পরিবর্তনের পূর্বে কার্যকর হয়েছিলএই সমাধানটি যে কোনও প্রকাশিত এইচটিএমএল-ভিত্তিক প্রতিবেদনের জন্যও কাজ করবে।


0

প্রতিক্রিয়া জানাতে দেরি হয়ে গেছে তবে ভাগ করে নেওয়ার কথা ভেবেছে।

টমক্যাটে মোতায়েন করা জেনকিন্সের সাথে আমি লড়াই করে যাচ্ছিলাম, স্ক্রিপ্ট কার্যকর করার চেষ্টা করেছি, টমক্যাটটি পুনরায় চালু করা থাকলে এটি সাহায্য করে তবে চলে যায়।

টমক্যাটে Catalina.properties এ সম্পত্তি সেট করে স্থায়ী ফিক্স তৈরি করে।

প্রোপার্টি ফাইল: tomcat_installation_dir / conf / catalina.properties কেবল নীচের লাইনটি ক্যাটালিনা.প্রেপার্টিগুলিতে সর্বশেষে অনুলিপি করুন (বিদ্যমান বৈশিষ্ট্যগুলির সাথে গোলমাল না করে আপনি এটি যে কোনও জায়গায় সেট করতে পারেন)

-ডডসন.মডেল.ডাইরেক্টরি ব্রাউজারসপোর্ট.সিএসপি = ""


0

আমার জেনকিনগুলিতে এইচটিটিপিএস যুক্ত করার পরে আমার একই সমস্যা ছিল। আপনার যদি একই সমস্যা হয় তবে সমাধানটি সহজ - আপনার জেনকিন্স ইউআরএলকে HTTP এর পরিবর্তে HTTPS প্রোটোকল ব্যবহার করতে সেট করুন। এটি জেনকিন্স কনফিগারেশন -> জেনকিন্স ইউআরএলের মাধ্যমে কনফিগার করা যায়


0

জেনকিনস-এক্স ব্যবহার করা থাকলে সিস্টেমের সম্পত্তি স্থায়ীভাবে সেট করতে myvalues.yaml, নিম্নলিখিত কন্টেন্ট সহ বর্তমান ডিরেক্টরিতে ফাইলটি তৈরি করুন :

jenkins:
  Master:
    JavaOpts: >
      -Dhudson.model.DirectoryBrowserSupport.CSP=

তারপরে জেনকিনস-এক্স প্ল্যাটফর্মটি পুনরায় চালু করুন, যা এটি আপগ্রেড করার মাধ্যমে করা যেতে পারে:

$ jx upgrade platform --always-upgrade
# Presumably jx.exe is used if on Windows (not tested)

প্ল্যাটফর্মটি আসলে আপগ্রেড করা এড়াতে, জোর করে এটিকে একই সংস্করণে আপগ্রেড করুন:

$ version=$(jx version --no-version-check\
            | grep 'jenkins x platform' | sed -e 's/^jenkins.\+ //')
$ jx upgrade platform --version ${version} --always-upgrade

0

যারা asciidoctor-maven-pluginজিনকিনসে আরও প্রকাশ করতে, প্লাগইন কনফিগারেশন আপডেট করতে, linkcssবৈশিষ্ট্য যুক্ত করতে এসকিডোক ফাইল থেকে এইচটিএমএল ডকুমেন্ট তৈরি করতে প্লাগইন ব্যবহার করছেন তাদের জন্য :

<configuration>
    <attributes>
        <linkcss>true</linkcss>
    </attributes>
    <backend>html5</backend>
    <outputDirectory>${project.build.directory}/generated-resources</outputDirectory>
</configuration>

-2

উপর Debian / Ubuntu- মধ্যে প্রবণতা ইনস্টলেশনের :

  • sudo vi /etc/default/jenkins
  • যোগ -Dhudson.model.DirectoryBrowserSupport.CSP=করার জন্য JAVA_ARGS(যেমন JAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP=")
  • জেনকিনগুলি পুনরায় চালু করুন - service jenkins restart

এটি আমার পক্ষে যথেষ্ট, তবে পরামিতিগুলির সম্পূর্ণ তালিকার জন্য এই উত্তরটি দেখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.