<workflowRun _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.ParametersAction'><parameter _class='hudson.model.BooleanParameterValue'><name>SKIP_TEST</name><value>false</value></parameter><parameter _class='hudson.model.BooleanParameterValue'><name>SKIP_QUALITY</name><value>false</value></parameter></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UserIdCause'><shortDescription>Démarré par l'utilisateur Miguel Moquillon</shortDescription><userId>mmoquillon</userId><userName>Miguel Moquillon</userName></cause></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1150</buildNumber><marked><SHA1>b3a0a7bf423a3407c3bc6980f30a0c6ee678b5ae</SHA1><branch><SHA1>b3a0a7bf423a3407c3bc6980f30a0c6ee678b5ae</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>b3a0a7bf423a3407c3bc6980f30a0c6ee678b5ae</SHA1><branch><SHA1>b3a0a7bf423a3407c3bc6980f30a0c6ee678b5ae</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>b3a0a7bf423a3407c3bc6980f30a0c6ee678b5ae</SHA1><branch><SHA1>b3a0a7bf423a3407c3bc6980f30a0c6ee678b5ae</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Jenkins-Pipelines.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginsonarqube _class='hudson.plugins.git.util.Build'><buildNumber>261</buildNumber><marked><SHA1>96a3a41e61a0a59a294dd74fce10884c559e77f4</SHA1><branch><SHA1>96a3a41e61a0a59a294dd74fce10884c559e77f4</SHA1><name>refs/remotes/origin/sonarqube</name></branch></marked><revision><SHA1>96a3a41e61a0a59a294dd74fce10884c559e77f4</SHA1><branch><SHA1>96a3a41e61a0a59a294dd74fce10884c559e77f4</SHA1><name>refs/remotes/origin/sonarqube</name></branch></revision></refsremotesoriginsonarqube><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1150</buildNumber><marked><SHA1>ff9903432f6445500447bed914a01e155efc5353</SHA1><branch><SHA1>ff9903432f6445500447bed914a01e155efc5353</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>ff9903432f6445500447bed914a01e155efc5353</SHA1><branch><SHA1>ff9903432f6445500447bed914a01e155efc5353</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>ff9903432f6445500447bed914a01e155efc5353</SHA1><branch><SHA1>ff9903432f6445500447bed914a01e155efc5353</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Core</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1150</buildNumber><marked><SHA1>da97a0aafea25b96dbdb5a8fa0979e7f48773132</SHA1><branch><SHA1>da97a0aafea25b96dbdb5a8fa0979e7f48773132</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>da97a0aafea25b96dbdb5a8fa0979e7f48773132</SHA1><branch><SHA1>da97a0aafea25b96dbdb5a8fa0979e7f48773132</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>da97a0aafea25b96dbdb5a8fa0979e7f48773132</SHA1><branch><SHA1>da97a0aafea25b96dbdb5a8fa0979e7f48773132</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Components</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1150</buildNumber><marked><SHA1>2af94364967e82de1e8d70f466e8367b04421688</SHA1><branch><SHA1>2af94364967e82de1e8d70f466e8367b04421688</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>2af94364967e82de1e8d70f466e8367b04421688</SHA1><branch><SHA1>2af94364967e82de1e8d70f466e8367b04421688</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>2af94364967e82de1e8d70f466e8367b04421688</SHA1><branch><SHA1>2af94364967e82de1e8d70f466e8367b04421688</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Looks</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1150</buildNumber><marked><SHA1>ed6bdc22b8581b07c1e09d74558a2feb664e126b</SHA1><branch><SHA1>ed6bdc22b8581b07c1e09d74558a2feb664e126b</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>ed6bdc22b8581b07c1e09d74558a2feb664e126b</SHA1><branch><SHA1>ed6bdc22b8581b07c1e09d74558a2feb664e126b</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>ed6bdc22b8581b07c1e09d74558a2feb664e126b</SHA1><branch><SHA1>ed6bdc22b8581b07c1e09d74558a2feb664e126b</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Setup</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1150</buildNumber><marked><SHA1>c0a46ddd25bbd81d0e4dbafd3051c0dc5be1ebbc</SHA1><branch><SHA1>c0a46ddd25bbd81d0e4dbafd3051c0dc5be1ebbc</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>c0a46ddd25bbd81d0e4dbafd3051c0dc5be1ebbc</SHA1><branch><SHA1>c0a46ddd25bbd81d0e4dbafd3051c0dc5be1ebbc</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>c0a46ddd25bbd81d0e4dbafd3051c0dc5be1ebbc</SHA1><branch><SHA1>c0a46ddd25bbd81d0e4dbafd3051c0dc5be1ebbc</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Distribution</remoteUrl><scmName></scmName></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>1150</buildNumber><marked><SHA1>0ff3db7ef2fa887e276200aea5587cde84dd56bd</SHA1><branch><SHA1>0ff3db7ef2fa887e276200aea5587cde84dd56bd</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>0ff3db7ef2fa887e276200aea5587cde84dd56bd</SHA1><branch><SHA1>0ff3db7ef2fa887e276200aea5587cde84dd56bd</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>0ff3db7ef2fa887e276200aea5587cde84dd56bd</SHA1><branch><SHA1>0ff3db7ef2fa887e276200aea5587cde84dd56bd</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/Silverpeas/Silverpeas-Assembly</remoteUrl><scmName></scmName></action><action></action><action _class='hudson.plugins.sonar.action.SonarAnalysisAction'><ceTaskId>AaCfaNoDXgE6qZtOJxDE</ceTaskId><installationName>Silverpeas SonarCloud</installationName><installationUrl>https://sonarcloud.io</installationUrl><new>true</new><serverUrl>https://sonarcloud.io</serverUrl><skipped>false</skipped><sonarqubeDashboardUrl>https://sonarcloud.io/dashboard?id=Silverpeas_Silverpeas-Core2&amp;branch=master</sonarqubeDashboardUrl></action><action></action><action></action><action _class='hudson.plugins.sonar.action.SonarAnalysisAction'><ceTaskId>AaCfihG-I3z4HI9aNq6z</ceTaskId><installationName>Silverpeas SonarCloud</installationName><installationUrl>https://sonarcloud.io</installationUrl><new>true</new><serverUrl>https://sonarcloud.io</serverUrl><skipped>false</skipped><sonarqubeDashboardUrl>https://sonarcloud.io/dashboard?id=Silverpeas_Silverpeas-Components&amp;branch=master</sonarqubeDashboardUrl></action><action></action><action></action><action></action><action></action><action></action><action></action><action></action><action _class='hudson.plugins.sonar.action.SonarBuildBadgeAction'></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><artifact><displayPath>build.yaml</displayPath><fileName>build.yaml</fileName><relativePath>target/build.yaml</relativePath></artifact><building>false</building><displayName>6.5-build260914</displayName><duration>8956409</duration><estimatedDuration>6032580</estimatedDuration><fullDisplayName>Silverpeas_Master_AutoDeploy 6.5-build260914</fullDisplayName><id>1150</id><keepLog>false</keepLog><number>1150</number><queueId>59487</queueId><result>SUCCESS</result><timestamp>1789374846986</timestamp><url>https://integration.silverpeas.org/jenkins/view/Continuous%20Autodeployment%20Build/job/Silverpeas_Master_AutoDeploy/1150/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>core-web/src/main/java/org/silverpeas/core/web/filter/IFrameChecker.java</affectedPath><affectedPath>core-library/src/test/java/org/silverpeas/core/index/indexing/model/LastUpdateDateSearchTest.java</affectedPath><affectedPath>core-web/src/test/resources/org/silverpeas/util/security.properties</affectedPath><affectedPath>core-war/src/main/webapp/WEB-INF/tags/silverpeas/util/displayExternalIframe.tag</affectedPath><affectedPath>core-web/src/integration-test/java/org/silverpeas/core/web/filter/MassiveWebSecurityFilterIT.java</affectedPath><affectedPath>core-web/src/main/java/org/silverpeas/core/web/filter/MassiveWebSecurityFilter.java</affectedPath><affectedPath>core-api/src/main/java/org/silverpeas/core/util/security/SecuritySettings.java</affectedPath><affectedPath>core-web/src/integration-test/resources/org/silverpeas/util/security.properties</affectedPath><affectedPath>core-configuration/src/main/config/properties/org/silverpeas/util/security.properties</affectedPath><affectedPath>core-web/src/test/java/org/silverpeas/core/web/filter/IFrameCheckerTest.java</affectedPath><commitId>ff9903432f6445500447bed914a01e155efc5353</commitId><timestamp>1789374831000</timestamp><author><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></author><authorEmail>miguel.moquillon@silverpeas.com</authorEmail><comment>Fix bug #15431

Allow iframes in the data sent to Silverpeas when they refer trusted sources
MassiveWebSecurityFilter no longer blocks every iframe. An iframe is now allowed
if its single src attribute refers either:
- an HTTPS URL whose host is the Silverpeas server or one of the hosts set in
  the new security.external.iframe.hosts.allowed property, or
- a relative URL within the Silverpeas application, without any path
  traversal attempt (even encoded).
Any iframe that cannot be strictly parsed, or that has a srcdoc attribute,
is still rejected.
The JSON bodies of requests are now decoded before the injection checks, so
that they are done on the text as it will be taken by Silverpeas.
The iframe checking is done by the new IFrameChecker class, covered by unit
tests. MassiveWebSecurityFilterIT is also completed.
</comment><date>2026-09-14 10:33:51 +0200</date><id>ff9903432f6445500447bed914a01e155efc5353</id><msg>Fix bug #15431</msg><path><editType>edit</editType><file>core-api/src/main/java/org/silverpeas/core/util/security/SecuritySettings.java</file></path><path><editType>edit</editType><file>core-war/src/main/webapp/WEB-INF/tags/silverpeas/util/displayExternalIframe.tag</file></path><path><editType>add</editType><file>core-web/src/main/java/org/silverpeas/core/web/filter/IFrameChecker.java</file></path><path><editType>edit</editType><file>core-web/src/integration-test/java/org/silverpeas/core/web/filter/MassiveWebSecurityFilterIT.java</file></path><path><editType>edit</editType><file>core-web/src/test/resources/org/silverpeas/util/security.properties</file></path><path><editType>edit</editType><file>core-library/src/test/java/org/silverpeas/core/index/indexing/model/LastUpdateDateSearchTest.java</file></path><path><editType>edit</editType><file>core-web/src/integration-test/resources/org/silverpeas/util/security.properties</file></path><path><editType>add</editType><file>core-web/src/test/java/org/silverpeas/core/web/filter/IFrameCheckerTest.java</file></path><path><editType>edit</editType><file>core-configuration/src/main/config/properties/org/silverpeas/util/security.properties</file></path><path><editType>edit</editType><file>core-web/src/main/java/org/silverpeas/core/web/filter/MassiveWebSecurityFilter.java</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://integration.silverpeas.org/jenkins/user/mmoquillon</absoluteUrl><fullName>Miguel Moquillon</fullName></culprit><inProgress>false</inProgress><previousBuild><number>1149</number><url>https://integration.silverpeas.org/jenkins/view/Continuous%20Autodeployment%20Build/job/Silverpeas_Master_AutoDeploy/1149/</url></previousBuild></workflowRun>