From 84d5a61c80a49222e62f4c65a7eb402e042e9a66 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Tue, 14 Oct 2014 15:02:22 +1100 Subject: [PATCH] [MRM-1145] RSS tests do not correctly check responses --- .../java/org/apache/archiva/web/rss/RssFeedServlet.java | 9 +++++++++ .../org/apache/archiva/web/rss/RssFeedServletTest.java | 4 +--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/rss/RssFeedServlet.java b/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/rss/RssFeedServlet.java index 958ad28e7..a0994cd25 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/rss/RssFeedServlet.java +++ b/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/rss/RssFeedServlet.java @@ -115,11 +115,14 @@ public class RssFeedServlet public void doGet( HttpServletRequest req, HttpServletResponse res ) throws ServletException, IOException { + + String repoId = null; String groupId = null; String artifactId = null; String url = StringUtils.removeEnd( req.getRequestURL().toString(), "/" ); + if ( StringUtils.countMatches( StringUtils.substringAfter( url, "feeds/" ), "/" ) > 0 ) { artifactId = StringUtils.substringAfterLast( url, "/" ); @@ -128,6 +131,12 @@ public class RssFeedServlet } else if ( StringUtils.countMatches( StringUtils.substringAfter( url, "feeds/" ), "/" ) == 0 ) { + // we receive feeds?babla=ded which is not correct + if ( StringUtils.countMatches( url, "feeds?" ) > 0 ) + { + res.sendError( HttpServletResponse.SC_BAD_REQUEST, "Invalid request url." ); + return; + } repoId = StringUtils.substringAfterLast( url, "/" ); } else diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/web/rss/RssFeedServletTest.java b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/web/rss/RssFeedServletTest.java index 54dab14ae..582a53225 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/web/rss/RssFeedServletTest.java +++ b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/web/rss/RssFeedServletTest.java @@ -430,12 +430,10 @@ public class RssFeedServletTest mockHttpServletResponse.getStatus() ); } - @Ignore + @Test public void testInvalidRequest() throws Exception { - //RssFeedServlet servlet = - // (RssFeedServlet) client.newInvocation( "http://localhost/feeds?invalid_param=xxx" ).getServlet(); MockHttpServletRequest request = new MockHttpServletRequest(); request.setRequestURI( "/feeds?invalid_param=xxx" ); request.addHeader( "User-Agent", "Apache Archiva unit test" ); -- 2.39.5