@@ -61,8 +61,8 @@ public void bad3(HttpServletRequest request) {
6161 runtimeServices .parse (reader , new Template ()); // $hasTemplateInjection
6262 }
6363
64- @ GetMapping (value = "bad4 " )
65- public void bad4 (HttpServletRequest request ) {
64+ @ GetMapping (value = "good1 " )
65+ public void good1 (HttpServletRequest request ) {
6666 String name = "ttemplate" ;
6767 String code = request .getParameter ("code" );
6868
@@ -72,7 +72,7 @@ public void bad4(HttpServletRequest request) {
7272 StringWriter w = new StringWriter ();
7373 StringReader reader = new StringReader ("test" );
7474
75- Velocity .evaluate (context , w , "mystring" , reader ); // $hasTemplateInjection
75+ Velocity .evaluate (context , w , "mystring" , reader ); // Safe
7676 }
7777
7878 @ GetMapping (value = "bad5" )
@@ -85,15 +85,17 @@ public void bad5(HttpServletRequest request) {
8585
8686 StringWriter w = new StringWriter ();
8787 VelocityEngine engine = null ;
88- engine .mergeTemplate ("testtemplate.vm" , "UTF-8" , context , w ); // $hasTemplateInjection
88+ engine .mergeTemplate ("testtemplate.vm" , "UTF-8" , context , w ); // Safe
8989 AbstractContext ctx = null ;
9090 ctx .put ("key" , code );
91- engine .evaluate (ctx , null , null , null ); // $hasTemplateInjection
91+ engine .evaluate (ctx , null , null , (String ) null ); // Safe
92+ engine .evaluate (ctx , null , null , (Reader ) null ); // Safe
9293 engine .evaluate (null , null , null , code ); // $hasTemplateInjection
94+ engine .evaluate (null , null , null , new StringReader (code )); // $hasTemplateInjection
9395 }
9496
95- @ GetMapping (value = "bad6 " )
96- public void bad6 (HttpServletRequest request ) {
97+ @ GetMapping (value = "good2 " )
98+ public void good2 (HttpServletRequest request ) {
9799 String name = "ttemplate" ;
98100 String code = request .getParameter ("code" );
99101
@@ -102,24 +104,13 @@ public void bad6(HttpServletRequest request) {
102104
103105 StringWriter w = new StringWriter ();
104106 Template t = new Template ();
105- t .merge (context , w ); // $hasTemplateInjection
106- }
107-
108- @ GetMapping (value = "bad7" )
109- public void bad7 (HttpServletRequest request ) {
110- String name = "ttemplate" ;
111- String code = request .getParameter ("code" );
107+ t .merge (context , w ); // Safe
108+ t .merge (context , w , new LinkedList <String >()); // Safe
112109
113- VelocityContext context = new VelocityContext ();
114- context .put ("code" , code );
115-
116- StringWriter w = new StringWriter ();
117- Template t = new Template ();
118- t .merge (context , w , new LinkedList <String >()); // $hasTemplateInjection
119110 }
120111
121- @ GetMapping (value = "bad8 " )
122- public void bad8 (HttpServletRequest request ) {
112+ @ GetMapping (value = "bad6 " )
113+ public void bad6 (HttpServletRequest request ) {
123114 String code = request .getParameter ("code" );
124115
125116 StringResourceRepository repo = new StringResourceRepositoryImpl ();
0 commit comments