mdoTomofumi Chiba
1/11/2024, 12:31:18 PM

Spring: CookieLocaleResolver の IllegalStateException を回避する

Spring を使っていて攻撃的なリクエストにより以下のような Exception が発生

java.lang.IllegalStateException: Encountered invalid locale cookie 'org.springframework.web.servlet.i18n.CookieLocaleResolver.LOCALE': [en==] due to: Locale part "en==" contains invalid characters

CookieLocaleResolver を拡張する事でエラーを回避できる。無効な値はデフォルト値に置き換えられる。

public class MyCookieLocaleResolver extends CookieLocaleResolver {
    public MyCookieLocaleResolver(HttpServletRequest request) {
        super();
        super.setRejectInvalidCookies(false);
    }
}
TweetLike