diff --git a/flow-server/src/main/java/com/vaadin/flow/server/VaadinService.java b/flow-server/src/main/java/com/vaadin/flow/server/VaadinService.java index 90d6a9a2846..b8012b690b4 100644 --- a/flow-server/src/main/java/com/vaadin/flow/server/VaadinService.java +++ b/flow-server/src/main/java/com/vaadin/flow/server/VaadinService.java @@ -29,6 +29,8 @@ import java.io.Serializable; import java.lang.reflect.Constructor; import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -1941,7 +1943,9 @@ public static boolean isCsrfTokenValid(UI ui, String requestToken) { .isXsrfProtectionEnabled()) { String uiToken = ui.getCsrfToken(); - if (uiToken == null || !uiToken.equals(requestToken)) { + if (uiToken == null || !MessageDigest.isEqual( + uiToken.getBytes(StandardCharsets.UTF_8), + requestToken.getBytes(StandardCharsets.UTF_8))) { return false; } }