diff options
-rw-r--r-- | src/main/java/org/traccar/config/Keys.java | 7 | ||||
-rw-r--r-- | src/main/java/org/traccar/web/WebServer.java | 5 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/main/java/org/traccar/config/Keys.java b/src/main/java/org/traccar/config/Keys.java index fb32857d8..fd126a5c4 100644 --- a/src/main/java/org/traccar/config/Keys.java +++ b/src/main/java/org/traccar/config/Keys.java @@ -429,6 +429,13 @@ public final class Keys { public static final ConfigKey WEB_DISABLE_HEALTH_CHECK = new ConfigKey( "web.disableHealthCheck", Boolean.class); + /** + * Fixes Chrome SameSite Cookie problem, only works on https + * More info here https://wiki.shibboleth.net/confluence/display/DEV/Tomcat+and+Jetty+SameSite+Workarounds + */ + public static final ConfigKey WEB_SAME_SITE_COOKIE_NONE = new ConfigKey( + "web.sameSiteCookie.enable", Boolean.class); + private Keys() { } diff --git a/src/main/java/org/traccar/web/WebServer.java b/src/main/java/org/traccar/web/WebServer.java index 7f0ec53b6..3f2a24815 100644 --- a/src/main/java/org/traccar/web/WebServer.java +++ b/src/main/java/org/traccar/web/WebServer.java @@ -167,6 +167,11 @@ public class WebServer { SecurityRequestFilter.class, CorsResponseFilter.class, DateParameterConverterProvider.class); resourceConfig.packages(ServerResource.class.getPackage().getName()); servletHandler.addServlet(new ServletHolder(new ServletContainer(resourceConfig)), "/api/*"); + + if (config.getBoolean(Keys.WEB_SAME_SITE_COOKIE_NONE)) { + servletHandler.getServletContext().getSessionCookieConfig().setSecure(true); + servletHandler.getServletContext().getSessionCookieConfig().setComment("__SAME_SITE_NONE__"); + } } public void start() { |