Schutz vor stillen Seiten-Reloads: 12h-Session, eigener Session-Cookie, Meldung statt Sofort-Reload
Session-Timeout auf 12 h erhöht, Cookie-Name PDFTOOL_SESSION gegen JSESSIONID-Kollisionen anderer lokaler Java-Anwendungen, Tomcat-POST-Limit auf 30 MB für Canvas-Daten mit eingebetteten Bildern, Vaadin-Systemmeldungen mit Bestätigung statt sofortigem Neuladen. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
package de.assecutor.pdftool.ui;
|
||||
|
||||
import com.vaadin.flow.server.CustomizedSystemMessages;
|
||||
import com.vaadin.flow.server.ServiceInitEvent;
|
||||
import com.vaadin.flow.server.VaadinServiceInitListener;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* Verhindert das stille Neuladen der Seite durch Vaadin: Standardmäßig lädt
|
||||
* Vaadin bei abgelaufener Session (z. B. nach einem Neustart der Anwendung)
|
||||
* oder internen Fehlern die Seite sofort und ohne Hinweis neu — mitten in der
|
||||
* Arbeit im Rechnungsgenerator. Stattdessen wird jetzt eine Meldung angezeigt;
|
||||
* die Seite lädt erst neu, wenn der Benutzer die Meldung bestätigt.
|
||||
*/
|
||||
@Component
|
||||
public class SystemMessagesConfiguration implements VaadinServiceInitListener {
|
||||
|
||||
@Override
|
||||
public void serviceInit(ServiceInitEvent event) {
|
||||
event.getSource().setSystemMessagesProvider(info -> {
|
||||
CustomizedSystemMessages messages = new CustomizedSystemMessages();
|
||||
|
||||
messages.setSessionExpiredNotificationEnabled(true);
|
||||
messages.setSessionExpiredCaption("Sitzung abgelaufen");
|
||||
messages.setSessionExpiredMessage("Die Sitzung ist abgelaufen, z. B. durch einen Neustart der "
|
||||
+ "Anwendung. Zum Fortfahren klicken — nicht gespeicherte Änderungen im "
|
||||
+ "Rechnungsgenerator werden wiederhergestellt.");
|
||||
|
||||
messages.setInternalErrorNotificationEnabled(true);
|
||||
messages.setInternalErrorCaption("Interner Fehler");
|
||||
messages.setInternalErrorMessage("Es ist ein interner Fehler aufgetreten. "
|
||||
+ "Zum Fortfahren klicken; die Seite wird danach neu geladen.");
|
||||
|
||||
return messages;
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user