Browse Source

fix #2651 add sameSiteCookies

Shinsuke Sugaya 3 years ago
parent
commit
fbf36fd63e
1 changed files with 12 additions and 1 deletions
  1. 12 1
      src/main/java/org/codelibs/fess/FessBoot.java

+ 12 - 1
src/main/java/org/codelibs/fess/FessBoot.java

@@ -21,11 +21,14 @@ import java.io.File;
 import java.util.List;
 import java.util.Properties;
 
+import org.apache.catalina.Container;
 import org.apache.catalina.Context;
 import org.apache.catalina.Host;
 import org.apache.catalina.connector.Connector;
 import org.apache.catalina.core.StandardHost;
 import org.apache.catalina.startup.Tomcat;
+import org.apache.tomcat.util.http.CookieProcessorBase;
+import org.apache.tomcat.util.http.Rfc6265CookieProcessor;
 import org.apache.tomcat.util.net.SSLHostConfig;
 import org.codelibs.core.lang.StringUtil;
 import org.codelibs.fess.tomcat.valve.SuppressErrorReportValve;
@@ -146,6 +149,7 @@ public class FessBoot extends TomcatBoot {
         final Context context = (Context) server.getHost().findChild(contextPath);
         if (context != null) {
             context.setResources(new FessWebResourceRoot(context));
+            context.setCookieProcessor(new Rfc6265CookieProcessor());
         }
     }
 
@@ -175,7 +179,14 @@ public class FessBoot extends TomcatBoot {
                     connector.addSslHostConfig(sslHostConfig);
                 }
             });
-
+            doSetupServerConfig(logger, props, "sameSiteCookies", value -> {
+                for (final Container container : server.getHost().findChildren()) {
+                    if ((container instanceof final Context context)
+                            && (context.getCookieProcessor() instanceof final CookieProcessorBase cookieProcessor)) {
+                        cookieProcessor.setSameSiteCookies(value);
+                    }
+                }
+            });
         }
     }
 }