EU Cookie Banner in Wicket

Mittel29 Okt. 2017javawicket
Tutorial zur Erstellung einer EU-konformen Warnung ├╝ber die Verwendung von Cookies
Noch keine Stimmen abgegeben
Noch keine Kommentare

Ein detaillierter Artikel ├╝ber die EU "E-Privacy" Richtlinie von von http://www.sitepoint.com/europe-website-cookie-privacy-law(Craig Buckler auf sitepoint.com) ver├Âffentlicht. Eine klare Empfehlung des Autors war es, alle Besucher einer Webseite ├╝ber die Verwendung von Cookies (und generell ├╝ber die Tracking-Methoden) zu informieren.

Eine einfache M├Âglichkeit dem EU-Gesetz zu entsprechen ist einen Banner mit den geforderten Information einzublenden. In diesem Tutorial erstellen wir mit Apache Wicket einen Banner, der vom User geschlossen werden kann und auf die Seite mit den Nutzungsbedingungen verweist.

Am Anfang erstellen wir eine Klasse EuCookieBanner , die von Wicket's Panel -Klasse erbt. Um die Sichtbarkeit des EuCookieBanner zu kontrollieren und sicherzustellen, dass der Banner nicht eingeblendet wird nachdem die Nutzungsbedingungen vom Nutzer akzeptiert wurden, verwenden wir ein Cookie und ├╝berschreiben die Methode onConfigure :

@Override
protected void onConfigure() {
  WebRequest webRequest = (WebRequest) RequestCycle.get().getRequest();
  if (webRequest.getCookie(COOKIE_NAME) != null) {
    setVisible(false);
  } 
  super.onConfigure();
}

In der Konstante COOKIE_NAME legen wir den Namen f├╝r den Cookie fest.

Um den Banner zu schliessen und damit auch die Nutzungsbedingungen zu akzeptieren muss der Besucher auf einen Button klicken. Dazu implementieren wir einen einfachen Click-Handler:

String jsClickHandler = 
    "javascript:document.getElementById('euCookiePanel').style.display='none';" +  
     "document.cookie='%s=1;expires=%s';return false;";

Der HTML-Code f├╝r den EuCookieBanner besteht aus einem div mit einer eindeutigen id euCookiePanel. Damit wird der Banner mit JavaScript ├╝ber style.display='none' geschlossen.

Der Beispiel-Code enth├Ąlt zwei Platzhalter (markiert mit %s ), die jeweils mit dem Ablaufdatum des Cookies und dem Namen des Cookies gesetzt werden. Das Ablaufdatum wird mit SimpleDateFormat("dd MMM yyyy kk:mm:ss z") im GMT-Format erzeugt.

Anschliessend kann das JavaScript ├╝ber AttributeModifier.replace("onclick", ÔÇŽ) an den Button gesetzt werden.

Dieses Beispiel mit Quellcode:

https://github.com/matrak/wicket-eu-cookie-panel