From 43770c51edf664af05622459f0e29f50b272de63 Mon Sep 17 00:00:00 2001 From: remm Date: Fri, 8 Dec 2006 01:37:24 +0000 Subject: [PATCH] - Based on Mark's patch. Ensure accept-language header conforms to RFC 2616 when accessed through getLocale and friends, and ignore it if it doesn't. git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@483769 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/connector/Request.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/java/org/apache/catalina/connector/Request.java b/java/org/apache/catalina/connector/Request.java index 2c22bac1d..33a34361a 100644 --- a/java/org/apache/catalina/connector/Request.java +++ b/java/org/apache/catalina/connector/Request.java @@ -2566,6 +2566,9 @@ public class Request variant = ""; } } + if (!isAlpha(language) || !isAlpha(country) || !isAlpha(variant)) { + continue; + } // Add a new Locale to the list of Locales for this quality level Locale locale = new Locale(language, country, variant); @@ -2594,4 +2597,15 @@ public class Request } + + protected static final boolean isAlpha(String value) { + for (int i = 0; i < value.length(); i++) { + char c = value.charAt(i); + if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '1' && c <= '9'))) { + return false; + } + } + return true; + } + } -- 2.11.0