0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JBoss(WildFly)LegacyCookieSupport問題の解決方法

Posted at

今までTomcatを利用してプロジェクトを開発するのはよくありますが、WildFlyは今回初めて利用しています。

WildFlyを導入して、最初URLかHTMLをアクセスするとき、LegacyCookieSupportのisHtpSeparatorの問題が発生しました。
ネット上にいろいろな方法を調べましたが、役に立つ情報が少なくて、結局エラーログを分析して解決できました。

ネット上のよくある解決方法と自分の解決方法を説明したいと思います。
何か役に立てれば幸いです。

問題点

エラーログ

An invalid control character [20809] was present in the cookie value or attribute 
    at io.undertow.util.LegacyCookieSupport.isHttpSeparator(LegacyCookieSupport.java:142) 
    at io.undertow.util.LegacyCookieSupport.isHttpToken(LegacyCookieSupport.java:163) 
    at io.undertow.util.LegacyCookieSupport.adjustedCookieVersion(LegacyCookieSupport.java:248) 
    at io.undertow.server.Connectors.getCookieString(Connectors.java:154) 
    at io.undertow.server.Connectors.flattenCookies(Connectors.java:99) 
    at io.undertow.server.protocol.http.HttpResponseConduit.processWrite(HttpResponseConduit.java:161) 
    at io.undertow.server.protocol.http.HttpResponseConduit.write(HttpResponseConduit.java:596) 
    at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.write(AbstractFixedLengthStreamSinkConduit.java:106) 
    at org.xnio.conduits.Conduits.writeFinalBasic(Conduits.java:132) 
    at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.writeFinal(AbstractFixedLengthStreamSinkConduit.java:175) 
    at org.xnio.conduits.ConduitStreamSinkChannel.writeFinal(ConduitStreamSinkChannel.java:104) 
    at io.undertow.channels.DetachableStreamSinkChannel.writeFinal(DetachableStreamSinkChannel.java:195) 
    at io.undertow.server.HttpServerExchange$WriteDispatchChannel.writeFinal(HttpServerExchange.java:2042) 
    at io.undertow.servlet.spec.ServletOutputStreamImpl.writeBufferBlocking(ServletOutputStreamImpl.java:568) 
    at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputStreamImpl.java:603) 
    at io.undertow.servlet.spec.ServletPrintWriter.close(ServletPrintWriter.java:117) 
    at io.undertow.servlet.spec.ServletPrintWriterDelegate.close(ServletPrintWriterDelegate.java:81) 
    at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter(HttpServletResponseImpl.java:473) 
    at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpServletResponseImpl.java:568) 
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:339) 
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81) 
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138) 
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) 
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) 
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) 
    at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105) 
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508) 
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508) 
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508) 
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508) 
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1508) 
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272) 
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) 
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104) 
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:326) 
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:812) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

問題発生タイミング

・初期導入
・WildFlyアップデート後

ネット上の解決方法の纏め

・WindowOSの再インストール OR WildFlyの再インストール
・ブラウザ側のCOOKIEのクリア

こちらの解決方法

①エラーログを分析
An invalid control character [20809] was present in the cookie value or attribute
エラーログからみると、character 20809 が問題となることが分かった。

②UNICODEに対応する内容を調査
 UNICODE 一覧 10進
 を検索すると、20809→「光」の漢字になることも分かった。

③「光」に関する設定場所の特定
 「光」分かったら、連想してWildFlyサーバIDにはちょうど「光」が入っている。

④解決
 漢字を無くして、もう一度WildFlyサーバ起動したら直りました。

※サーバIDのみならず、PC名とか関連しそうな箇所を調べることをお勧めです。

参照

・About Undertow
 JBoss Undertowの紹介

・Undertow API
 Undertow 2.1.0.Final API

・UNICODE一覧
 UNICODE 一覧 10進

PS

この方法で解決できたら、「いいね!」を評価していただければ嬉しいです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?