File tree Expand file tree Collapse file tree 7 files changed +107
-105
lines changed
test/src/test/java/jenkins/security Expand file tree Collapse file tree 7 files changed +107
-105
lines changed Original file line number Diff line number Diff line change @@ -63,7 +63,7 @@ THE SOFTWARE.
6363 <dependency >
6464 <groupId >org.springframework</groupId >
6565 <artifactId >spring-framework-bom</artifactId >
66- <version >6.2.9 </version >
66+ <version >6.2.10 </version >
6767 <type >pom</type >
6868 <scope >import</scope >
6969 </dependency >
Original file line number Diff line number Diff line change @@ -220,6 +220,14 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas
220220 */
221221 /* private final */ static int CHECK_UPDATE_ATTEMPTS ;
222222
223+ /**
224+ * Class name prefixes to skip in the class loading
225+ */
226+ private static final String [] CLASS_PREFIXES_TO_SKIP = {
227+ "SimpleTemplateScript" , // cf. groovy.text.SimpleTemplateEngine
228+ "groovy.tmp.templates.GStringTemplateScript" , // Leaks on classLoader in some cases, see JENKINS-75879
229+ };
230+
223231 static {
224232 try {
225233 // Secure initialization
@@ -2407,8 +2415,10 @@ public UberClassLoader(List<PluginWrapper> activePlugins) {
24072415
24082416 @ Override
24092417 protected Class <?> findClass (String name ) throws ClassNotFoundException {
2410- if (name .startsWith ("SimpleTemplateScript" )) { // cf. groovy.text.SimpleTemplateEngine
2411- throw new ClassNotFoundException ("ignoring " + name );
2418+ for (String namePrefixToSkip : CLASS_PREFIXES_TO_SKIP ) {
2419+ if (name .startsWith (namePrefixToSkip )) {
2420+ throw new ClassNotFoundException ("ignoring " + name );
2421+ }
24122422 }
24132423 return loaded .computeIfAbsent (name , this ::computeValue ).orElseThrow (() -> new ClassNotFoundException (name ));
24142424 }
Original file line number Diff line number Diff line change @@ -29,12 +29,12 @@ THE SOFTWARE.
2929 a spacer if none is available.
3030
3131 The help link is rendered as a table cell with an (?) icon.
32- If the user clicks it, the content of the HTML fragment at the given URL
32+ If the user clicks it, the content of the HTML fragment at the given URL
3333 is rendered in the area designated as <f:helpArea> by the caller,
3434 usually in a row beneath the item with help.
35-
35+
3636 The alternative spacer is just an empty table cell.
37-
37+
3838 This tag was introduced to ensure that the space reserved for help items
3939 is consistent over the UI whether or not help exists.
4040
@@ -49,14 +49,14 @@ THE SOFTWARE.
4949 ]]>
5050 </st : attribute >
5151 <st : attribute name =" featureName" >
52- Name of the feature described by the help text, used for constructing the
52+ Name of the feature described by the help text, used for constructing the
5353 icon's alt attribute. Optional.
5454 </st : attribute >
5555 </st : documentation >
5656 <j : choose >
5757 <j : when test =" ${attrs.url!=null}" >
5858 <j : set var =" altText" value =" ${attrs.featureName != null ? '%Help for feature:' + ' ' + attrs.featureName : '%Help'}" />
59- <a href =" #" class =" jenkins-help-button" tooltip =" ${altText}" helpURL =" ${rootURL}${attrs.url}" >
59+ <a href =" #" class =" jenkins-help-button" aria-label =" ${altText}" helpURL =" ${rootURL}${attrs.url}" >
6060 <!-- .jenkins-help-button span element is required as it's restyled in CSS -->
6161 <span >?</span >
6262 </a >
Original file line number Diff line number Diff line change 2323 "lint" : " yarn lint:js && yarn lint:css"
2424 },
2525 "devDependencies" : {
26- "@babel/cli" : " 7.28.0 " ,
27- "@babel/core" : " 7.28.0 " ,
28- "@babel/preset-env" : " 7.28.0 " ,
26+ "@babel/cli" : " 7.28.3 " ,
27+ "@babel/core" : " 7.28.3 " ,
28+ "@babel/preset-env" : " 7.28.3 " ,
2929 "@eslint/js" : " 9.33.0" ,
3030 "babel-loader" : " 10.0.0" ,
3131 "clean-webpack-plugin" : " 4.0.0" ,
Original file line number Diff line number Diff line change @@ -98,7 +98,7 @@ THE SOFTWARE.
9898 <spotless .check.skip>false</spotless .check.skip>
9999 <!-- Make sure to keep the jetty-ee9-maven-plugin version in war/pom.xml in sync with the Jetty release in Winstone: -->
100100 <winstone .version>8.13</winstone .version>
101- <node .version>24.5 .0</node .version>
101+ <node .version>24.6 .0</node .version>
102102 </properties >
103103
104104 <!--
Original file line number Diff line number Diff line change @@ -28,19 +28,11 @@ void setUp(JenkinsRule rule) {
2828 j = rule ;
2929 }
3030
31- @ Test
32- void noXssInHelpLinkPanel () throws Exception {
33- noCrossSiteScriptingInHelp ("#link-panel a" );
34- }
35-
3631 @ Test
3732 void noXssInHelpIconPanel () throws Exception {
38- noCrossSiteScriptingInHelp ("#icon-panel svg" );
39- }
40-
41- private void noCrossSiteScriptingInHelp (String selector ) throws Exception {
42- final AtomicInteger alerts = new AtomicInteger ();
43- final JenkinsRule .WebClient webClient = j .createWebClient ();
33+ var selector = "#icon-panel svg" ;
34+ var alerts = new AtomicInteger ();
35+ var webClient = j .createWebClient ();
4436 webClient .setAlertHandler ((AlertHandler ) (p , s ) -> alerts .addAndGet (1 ));
4537 final HtmlPage page = webClient .goTo (URL_NAME );
4638 page .executeJavaScript ("document.querySelector('" + selector + "')._tippy.show()" );
You can’t perform that action at this time.
0 commit comments