アプリケーションでSpring Boot 1.4.4.RELEASEを使用しており、アプリケーションはAWSにデプロイされています。
私はユーザーごとにサブドメインを作ろうとしています、
ユーザー「test」がログインすると、URLはtest.XXX.comになります
ここでXXX.comは私のドメイン名です。
XXX.comの場合、問題なく動作します。
最近、XXX-test.comのようなテスト用にドメインをもう1つ購入しました。
しかし、ユーザーがログインすると、次の例外が発生します。
Java.lang.IllegalArgumentException: An invalid domain [.XXX-test.com] was specified for this cookie
at org.Apache.Tomcat.util.http.Rfc6265CookieProcessor.validateDomain(Rfc6265CookieProcessor.Java:183)
at org.Apache.Tomcat.util.http.Rfc6265CookieProcessor.generateHeader(Rfc6265CookieProcessor.Java:125)
at org.Apache.catalina.connector.Response.generateCookieString(Response.Java:989)
at org.Apache.catalina.connector.Response.addSessionCookieInternal(Response.Java:959)
at org.Apache.catalina.connector.Request.doGetSession(Request.Java:3009)
at org.Apache.catalina.connector.Request.getSession(Request.Java:2367)
at org.Apache.catalina.connector.RequestFacade.getSession(RequestFacade.Java:896)
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.Java:231)
at org.springframework.security.web.context.HttpSessionSecurityContextRepository$SaveToSessionResponseWrapper.createNewSessionIfAllowed(HttpSessionSecurityContextRepository.Java:427)
at org.springframework.security.web.context.HttpSessionSecurityContextRepository$SaveToSessionResponseWrapper.saveContext(HttpSessionSecurityContextRepository.Java:364)
at org.springframework.security.web.context.SaveContextOnUpdateOrErrorResponseWrapper.onResponseCommitted(SaveContextOnUpdateOrErrorResponseWrapper.Java:85)
at org.springframework.security.web.util.OnCommittedResponseWrapper.doOnResponseCommitted(OnCommittedResponseWrapper.Java:245)
at org.springframework.security.web.util.OnCommittedResponseWrapper.sendRedirect(OnCommittedResponseWrapper.Java:127)
at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.Java:138)
at org.springframework.security.web.util.OnCommittedResponseWrapper.sendRedirect(OnCommittedResponseWrapper.Java:128)
at org.springframework.security.web.DefaultRedirectStrategy.sendRedirect(DefaultRedirectStrategy.Java:57)
私のSpring application.properties、
server.session.cookie.domain=.XXX-test.com
server.session.cookie.path=/
以下の設定で他の製品環境で正常に動作します。
server.session.cookie.domain=.XXX.com
server.session.cookie.path=/
繰り返しになりますが、prod構成は、数か月前に1.3.5のスプリングブートバージョンで展開およびテストされました。
ここに変更または不足しているものはありますか?または、XXX-test.comに問題がありますか?
おかげで、
RFC 6265( https://tools.ietf.org/html/rfc6265 )によると、.
(ドット)文字は問題を引き起こす可能性があります。
LegacyCookieProcessorにフォールバックしようとすることができます。詳細は、 Tomcat 8でCookieプロセッサをLegacyCookieProcessorに変更する方法 を参照してください。
それでも問題が解決しない場合は、TCバージョンについてお知らせください。