Недавно я развернул веб-сайт, где храню файлы cookie в браузере с именем продукта в качестве значения cookie. Но некоторые продукты имеют управляющие символы от их имени. В результате, когда эти имена продуктов сохраняются в файле cookie, исключение IllegalArgumentException, вызванное символом Control, генерируется в cookie-файле.Обработка java.lang.IllegalArgumentException: вызвано символом управления значением cookie
java.lang.IllegalArgumentException: Control character in cookie value or attribute.
at org.apache.tomcat.util.http.CookieSupport.isHttpSeparator(CookieSupport.java:169)
at org.apache.tomcat.util.http.Cookies.getTokenEndPosition(Cookies.java:493)
at org.apache.tomcat.util.http.Cookies.doProcessCookieHeaderOriginal(Cookies.java:283)
at org.apache.tomcat.util.http.Cookies.processCookieHeader(Cookies.java:233)
at org.apache.tomcat.util.http.Cookies.processCookies(Cookies.java:141)
at org.apache.tomcat.util.http.Cookies.getCookieCount(Cookies.java:107)
at org.apache.catalina.connector.CoyoteAdapter.parseSessionCookiesId(CoyoteAdapter.java:1163)
at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:914)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:532)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Некоторая идея в моем сознании, что я должен кодировать имя перед магазином в куки.
Но проблема в том, что многие пользователи, уже столкнувшиеся с проблемой, не могут просматривать сайт.
Есть ли способ обработать исключение без изменения значения cookie или есть способ удалить старые файлы cookie, которые были проблематичными или каким-либо другим.
Как запустить javascript, пока сайт находится в режиме исключения? –
Ah lol Я должен признать, что исправление на стороне клиента не имеет смысла! Ясно, что я буду копаться в свойствах Tomcat (особенно проверьте, что я выделил 2), это чистое решение. – niilzon