[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