Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java.lang.IllegalArgumentException: Locale part contains invalid characters #646

Open
masseyLsui opened this issue Oct 21, 2021 · 0 comments · May be fixed by #647 or #649
Open

java.lang.IllegalArgumentException: Locale part contains invalid characters #646

masseyLsui opened this issue Oct 21, 2021 · 0 comments · May be fixed by #647 or #649

Comments

@masseyLsui
Copy link

This exception also leads to a 500 error.

Envrioment:
-Version 2.17.0
-Jdk: 1.8.0_202
-tomcat: 8.5.71

stacktrace:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: Locale part "372.92268390754566" contains invalid characters
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
	org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)
	org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)
	org.springframework.boot.web.servlet.support.ErrorPageFilter.forwardToErrorPage(ErrorPageFilter.java:191)
	org.springframework.boot.web.servlet.support.ErrorPageFilter.handleException(ErrorPageFilter.java:176)
	org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:143)
	org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:64)
	org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:101)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
	org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:119)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
Root Cause, java.lang.IllegalArgumentException: Locale part "372.92268390754566" contains invalid characters
	org.springframework.util.StringUtils.validateLocalePart(StringUtils.java:878)
	org.springframework.util.StringUtils.parseLocale(StringUtils.java:815)
	org.springframework.web.servlet.i18n.LocaleChangeInterceptor.parseLocaleValue(LocaleChangeInterceptor.java:195)
	org.springframework.web.servlet.i18n.LocaleChangeInterceptor.preHandle(LocaleChangeInterceptor.java:154)
	org.springframework.web.servlet.HandlerExecutionChain.applyPreHandle(HandlerExecutionChain.java:148)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1059)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
	org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)
	org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103)
	org.springframework.boot.web.servlet.support.ErrorPageFilter.forwardToErrorPage(ErrorPageFilter.java:191)
	org.springframework.boot.web.servlet.support.ErrorPageFilter.handleException(ErrorPageFilter.java:176)
	org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:143)
	org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:64)
	org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:101)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
	org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:119)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)

reproducible script
curl:

curl -c cookies.txt -d "[email protected]&password=password" -H "Content-Type: application/x-www-form-urlencoded" -X POST http://localhost:8080/admin/performUserLogin
curl -b cookies.txt -F "locale=372.92268390754566" -X POST http://localhost:8080/static/products/OpenBSD/someday/.biLevel

intelliJ http client:

POST http://localhost:8080/admin/performUserLogin
Content-Type: application/x-www-form-urlencoded

[email protected]&password=password

###
POST http://localhost:8080/static/products/OpenBSD/someday/.biLevel
Content-Type: multipart/form-data; boundary=WebAppBoundary

--WebAppBoundary
Content-Disposition: form-data; name="locale"

372.92268390754566
--WebAppBoundary--
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant