Plugin HTML Publisher Jenkins: nessun collegamento esterno con Jenkins 1.643

Ho un lavoro Jenkins, in cui ho generato una pagina HTML come un post buildstep, contenente un collegamento immagine (tag HTML img). Questa pagina HTML è pubblicata dal plugin HTMLPublisher per ogni lavoro.

Questo ha sempre funzionato alla grande. Ma da quando ho aggiornato Jenkins alla v. 1.643, vedo solo una pagina vuota quando faccio clic sulla pagina HTML pubblicata.

Ho provato molte cose e ho scoperto il seguente strano comportamento: dall’aggiornamento non posso incorporare link esterni nelle pagine HTML che pubblico. Se incorporo un’immagine da una posizione esterna (img src = “somelocation / xxx.jpg), l’immagine non verrà visualizzata.

Se esamino la pagina HTML con Firefox, posso vedere che il tag dell’immagine è distriggersto come se fosse invisibile, ma non lo è.

Se incorporo un normale collegamento ipertestuale, puntando a una posizione esterna, posso vedere il collegamento nella pagina visualizzata, ma quando clicco su di esso, non succede nulla.

    È come se Jenkins non consentisse collegamenti esterni in questo contesto.

    Per favore aiutami qui 🙂

    Grazie!

    Modificare:

    Grazie a Dave Bacher, mi ha dato il suggerimento giusto. Guarda questa pagina per vedere la nuova politica di sicurezza di Jenkins.

    https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy#ConfiguringContentSecurityPolicy-Implementation

    Devi rilassare le regole, in modo che l’incorporamento di immagini esterne sia nuovamente consentito.

    Per provarlo, basta digitare quanto segue nella console di script:

    System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; img-src *;") 

    Ciò consentirà l’incorporamento di immagini da qualsiasi sito Web esterno.

    Se esegui Jenkins su Ubuntu e vuoi impostarlo in modo permanente, modifica il file / etc / default / jenkins. Sotto # argomenti da passare a java aggiungere la seguente riga:

     JAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP=\"sandbox; img-src *;\"" 

    Il problema che stai vedendo è probabilmente correlato alle recenti correzioni sulla sicurezza . Vedere la pagina wiki Configurazione della politica di sicurezza del contenuto per i dettagli su come rilassare la configurazione di Jenkins.

    L’intestazione CSP inviata da Jenkins può essere modificata impostando la proprietà di sistema hudson.model.DirectoryBrowserSupport.CSP :

    Se il suo valore è la stringa vuota, ad esempio java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war l’intestazione non verrà inviata affatto.

    (Attenzione!) Questo è potenzialmente molto pericoloso e dovrebbe essere utilizzato solo dopo aver esaminato l’impostazione di sicurezza generale.

    Puoi provare diverse impostazioni usando la console di script di Jenkins .

    Inoltre, come nota la pagina wiki, assicurati di aver eseguito l’aggiornamento a HTML Publisher 1.10 (o successivo).

    So che la domanda originale era per Linux, ma questo aiuterà anche gli utenti di Windows … Se hai Jenkins installato come servizio (a partire da Jenkins.exe) dovrai modificare gli argomenti in jenkins.xml per quella proprietà persistere.

    Se si intende utilizzare l’opzione vuota non sicura, ricordare di inserire i parametri tra virgolette. Di seguito è la mia linea di esempio da jenkins.xml:

     -Xrs -Xmx1048m -XX:MaxPermSize=512m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle "-Dhudson.model.DirectoryBrowserSupport.CSP= " -jar "%BASE%\jenkins.war" --httpPort=8080 

    Se stai utilizzando Red Hat, aggiorna JENKINS_JAVA_OPTIONS