[java-support] branch main updated: JSPT-105 Catch exceptions thrown by LanguageRange#Parse(Sting)

Rod Widdowson rdw at steadingsoftware.com
Sat Jan 2 14:31:00 UTC 2021


This is an automated email from the git hooks/post-receive script.

rdw pushed a commit to branch main
in repository java-support.

View the commit online:
http://git.shibboleth.net/view/?p=java-support.git;a=commit;h=0bc63a21ff7f1e74a881378162431d9191db9687

The following commit(s) were added to refs/heads/main by this push:
       new  0bc63a2   JSPT-105 Catch exceptions thrown by LanguageRange#Parse(Sting)
0bc63a2 is described below

commit 0bc63a21ff7f1e74a881378162431d9191db9687
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Sat Jan 2 14:27:56 2021 +0000

    JSPT-105 Catch exceptions thrown by LanguageRange#Parse(Sting)
    
    https://issues.shibboleth.net/jira/browse/JSPT-105
---
 .../utilities/java/support/net/HttpServletSupport.java   | 16 +++++++++++++---
 .../java/support/net/HttpServletSupportTest.java         | 13 +++++++++++++
 2 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/src/main/java/net/shibboleth/utilities/java/support/net/HttpServletSupport.java b/src/main/java/net/shibboleth/utilities/java/support/net/HttpServletSupport.java
index e189305..543dfa0 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/net/HttpServletSupport.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/net/HttpServletSupport.java
@@ -29,6 +29,9 @@ import javax.servlet.ServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import com.google.common.net.MediaType;
 
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
@@ -38,6 +41,9 @@ import net.shibboleth.utilities.java.support.primitive.StringSupport;
 /** Utilities for working with HTTP Servlet requests and responses. */
 public final class HttpServletSupport {
 
+    /** Log. */
+    private static final Logger LOG = LoggerFactory.getLogger(HttpServletSupport.class);
+
     /** Constructor. */
     private HttpServletSupport() {
     }
@@ -152,10 +158,14 @@ public final class HttpServletSupport {
     public static List<LanguageRange> getLanguageRange(@Nonnull final HttpServletRequest request) {
         
         final String languages = StringSupport.trimOrNull(request.getHeader("Accept-Language"));
-        if (languages == null) {
-            return Collections.EMPTY_LIST;
+        if (languages != null) {
+            try {
+                return List.copyOf(LanguageRange.parse(languages));
+            } catch (final IllegalArgumentException e) {
+                LOG.warn("Could not parse provided languages '{}'", languages, e);
+            }
         }
-        return List.copyOf(LanguageRange.parse(languages));
+        return Collections.EMPTY_LIST;
     }
 
     /**
diff --git a/src/test/java/net/shibboleth/utilities/java/support/net/HttpServletSupportTest.java b/src/test/java/net/shibboleth/utilities/java/support/net/HttpServletSupportTest.java
index e86f2b2..5ac8faa 100644
--- a/src/test/java/net/shibboleth/utilities/java/support/net/HttpServletSupportTest.java
+++ b/src/test/java/net/shibboleth/utilities/java/support/net/HttpServletSupportTest.java
@@ -28,6 +28,7 @@ import org.testng.annotations.Test;
 import com.google.common.net.MediaType;
 
 /** {@link HttpServletSupport} unit test. */
+ at SuppressWarnings("javadoc")
 public class HttpServletSupportTest {
 
     @Test public void testAddNoCacheHeaders(){
@@ -150,4 +151,16 @@ public class HttpServletSupportTest {
                 true));
         
     }
+
+    @Test
+    public void testLanguageRanges() {
+        MockHttpServletRequest request =  new MockHttpServletRequest();
+
+        Assert.assertTrue(HttpServletSupport.getLanguageRange(request).isEmpty());
+        request.addHeader("Accept-Language", "en-us");
+        Assert.assertEquals(HttpServletSupport.getLanguageRange(request).size(), 1);
+        request =  new MockHttpServletRequest();
+        request.addHeader("Accept-Language", "A Random Pile Of Garbage");
+        Assert.assertTrue(HttpServletSupport.getLanguageRange(request).isEmpty());
+    }
 }
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list