online delivery jenkins jenkins-plugins

delivery - jenkins online



Complemento de editor HTML de Jenkins: sin enlaces externos con Jenkins 1.643 (3)

Tengo un trabajo de Jenkins, donde genero una página HTML como un paso de compilación posterior, que contiene un enlace de imagen (etiqueta img HTML). El plugin HTMLPublisher publica esta página HTML para cada trabajo.

Esto siempre ha funcionado muy bien. Pero como actualicé Jenkins a la versión 1.643, solo veo una página en blanco cuando hago clic en la página HTML publicada.

He probado muchas cosas y descubrí el siguiente comportamiento extraño: desde la actualización, no puedo incrustar enlaces externos en las páginas HTML que publico. Si incrusto una imagen desde una ubicación externa (img src = "somelocation / xxx.jpg), la imagen no se mostrará.

Si examino la página HTML con Firefox, puedo ver que la etiqueta de la imagen aparece atenuada como si fuera invisible, pero no lo es.

Si incrusto un hipervínculo normal, apuntando a una ubicación externa, puedo ver el enlace en la página mostrada, pero cuando hago clic en él, no sucede nada.

Es como si Jenkins no permitiera enlaces externos en este contexto.

Por favor, ayúdame aquí :)

¡Gracias!

Editar:

Gracias a Dave Bacher, me dio la pista correcta. Mire esta página para ver la nueva política de seguridad de Jenkins.

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

Tienes que relajar las reglas, para que se pueda incrustar imágenes externas nuevamente.

Para probarlo, simplemente escriba lo siguiente en su consola de script:

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

Esto permitirá incrustar imágenes de cualquier sitio web externo.

Si ejecuta Jenkins en Ubuntu y desea configurarlo permanentemente, simplemente edite el archivo / etc / default / jenkins. En # argumentos para pasar a Java, agregue la siguiente línea:

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


El problema que está viendo probablemente esté relacionado con las correcciones de seguridad recientes. Consulte la página wiki de Configuración de la Política de seguridad de contenido para obtener detalles sobre cómo relajar la configuración de Jenkins.

El encabezado CSP enviado por Jenkins se puede modificar configurando la propiedad del sistema hudson.model.DirectoryBrowserSupport.CSP :

Si su valor es la cadena vacía, por ejemplo, java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war , el encabezado no se enviará en absoluto.

(¡Advertencia!) Esto es potencialmente muy inseguro y solo debe usarse después de revisar la configuración de seguridad general.

Puede experimentar con diferentes configuraciones utilizando la consola de script Jenkins .

Además, como señala la página wiki, asegúrese de haber actualizado a HTML Publisher 1.10 (o posterior).


Sé que la pregunta original era para Linux, pero esto también ayudará a los usuarios de Windows ... Si tiene instalado Jenkins como servicio (a partir de Jenkins.exe), deberá cambiar los argumentos en jenkins.xml para esa propiedad persistir.

Si va a utilizar la opción en blanco insegura, recuerde poner el parámetro entre comillas. A continuación se muestra mi línea de ejemplo de jenkins.xml:

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


Si está utilizando Red Hat, actualice JENKINS_JAVA_OPTIONS