私のコードはTomcat 8バージョン8.0.33で動作していますが、8.5.4で取得します:無効なドメイン[.mydomain]がこのCookieに指定されました。
Rfc6265CookieProcessorはTomcat 8の最新バージョンで導入されていることがわかりました。
公式ドキュメントでは、これをcontext.xmlのLegacyCookieProcessorに戻すことができると書かれていますが、方法はわかりません。
これを行う方法を教えてください。
ありがとう
Context.xmlで試すことができます
<CookieProcessor className="org.Apache.Tomcat.util.http.LegacyCookieProcessor" />
参照: https://Tomcat.Apache.org/Tomcat-8.0-doc/config/cookie-processor.html
Tomcatの以前のバージョンで使用されていたLegacyCookieProcessorを有効にすると、アプリケーションの問題が解決しました。 linzklが述べたように、これはApacheのWebサイト https://Tomcat.Apache.org/Tomcat-8.0-doc/config/cookie-processor.html で説明されています。
その理由は、Tomcatの新しいバージョンがを理解していないためです。 (ドット)使用されているCookieのドメイン名の前。
また、Internet Explorerを使用している場合は、必ず this post を確認してください。どうやら、壊れる可能性が非常に高いです。
Context.xmlは次のパスにあります。
Tomcat8/conf/context.xml
<?xml version="1.0" encoding="UTF-8”?>
<!-- The contents of this file will be loaded for each web application —>
<Context>
<!-- Default set of monitored resources. If one of these changes, the -->
<!-- web application will be reloaded. -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!-- <Manager pathname="" /> -->
<CookieProcessor className="org.Apache.Tomcat.util.http.LegacyCookieProcessor"/>
</Context>
ケース1:使用しているのはスタンドアロンTomcat&Tomcatサーバーのファイルを変更するためのアクセス権
フォローしてください answer by @linzkl
ケース2:使用しているのはStandalone Tomcatbut youTomcatサーバーのファイルを変更するためのアクセス権がありません
アプリケーションのsrc/main/webapp/META-INFフォルダーの下にcontext.xmlという名前の新しいファイルを作成し、以下のコンテンツを貼り付けます
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>WEB-INF/Tomcat-web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<CookieProcessor className="org.Apache.Tomcat.util.http.LegacyCookieProcessor" />
</Context>
スタンドアロンTomcatにアプリケーションをデプロイすると、META-INFフォルダーに配置したcontext.xmlファイルは、Tomcat/conf/context.xmlで指定されたcontext.xmlファイルを上書きします
注:このソリューションを使用している場合、META-INF/context.xmlはアプリケーション固有です
ケース3:使用している埋め込みTomcat
WebServerFactoryCustomizerの新しいBeanを作成します
@Bean
WebServerFactoryCustomizer<TomcatServletWebServerFactory> cookieProcessorCustomizer() {
return new WebServerFactoryCustomizer<TomcatServletWebServerFactory>() {
@Override
void customize(TomcatServletWebServerFactory tomcatServletWebServerFactory) {
tomcatServletWebServerFactory.addContextCustomizers(new TomcatContextCustomizer() {
@Override
public void customize(Context context) {
context.setCookieProcessor(new LegacyCookieProcessor());
}
});
}
};
}