Suche

Das neue Gesicht der Java Server Faces: JSF 2.2 zeigt, was es kann

Hartmut Schlosser

Der JSR 344 ist in der Public-Review-Phase angekommen. Wem das noch nichts sagt, wird spätestens bei der Erklärung aufhorchen, dass es sich hierbei um die Spezifikation für JSF 2.2 handelt, die mit Spannung erwartete Neuauflage der Java Server Faces, die nun in einer vorläufigen Fassung zum Download bereit steht.

Nun mag man JSF mögen oder auch nicht – unbestreitbar gehört der JSF-Standard zu den am häufigsten anzutreffenden Technologien, wenn es um die Entwicklung von Java-basierten Webanwendungen geht. Spec Lead Ed Burns hatte das Release 2.2 als „inkrementelle Verbesserung des Blockbuster-Release 2.0“ bezeichnet, das 2009 im Rahmen von Java EE 6 erschienen war. JSF 2.2 bietet also zwar keine revolutionären Neuerungen, aber dennoch interessante Feature-Ergänzungen wie HTML5 Markup Support, eine neue File-Upload-Komponente und sogenannte Faces Flows.

Bei Faces Flows handelt es sich um ein Feature, das von den ADF Task Flows und Spring WebFlow inspiriert wurde. Faces Flows ermöglichen es, mehrere Views modular zu einer logischen Einheit zusammenzufassen. Man erhält so ein besseres Level der Abstraktion, indem Seiten gruppiert werden können, die einen gemeinsame Scope teilen. Insgesamt lässt sich der Kontrollfluss über mehrere Seiten hinweg festlegen, was beispielsweise die Implementierung von Verhaltensbeschreibungen, wie man sie bei UML-Aktivitätsdiagrammen findet, erleichtert.

Ebenfalls mit von der Partie ist ein neuer Mechanismus, um eine Seite gegen Cross Site Request Forgery (CSRF/XSRF) zu schützen – eine Sicherheitslücke, die die Zustandslosigkeit des HTTP-Protokolls ausnutzt, die es erforderlich macht, Cookies bei jedem HTTP Request mitzuschicken. In ihrem JAXenter-Artikel „JSF 2.2 – Quo vadis?“ beschreiben Benjamin Schmeling und Steffen Heinzl das folgende Szenario, vor dem man sich nun schützen kann:

Ein Angreifer kann sich die beschrieben Http-Sicherheitslücke zu Nutze machen, indem er einen HTTP Request in eine fremde Webseite einschleust, z. B. über einen Foreneintrag. Wenn das Opfer nun diese Seite aufruft, wird der Request des Angreifers durch den Browser des Opfers ausgeführt. Dabei schickt der Browser das Cookie automatisch mit dem getätigten Request mit. Der Angreifer könnte also mit fremden Benutzerberechtigungen seinen gewünschten Request ausführen, um beispielsweise einen Foreneintrag im Namen des Opfers zu erstellen.

Ed Bruns selbst hat die Neuerungen in JSF 2.2 in sechs „Big Tickets“ zusammengefasst:

  1. HTML5 friendly Markup Support
  2. Faces Flows
  3. Cross Site Request Forgery Protection
  4. Loading Facelets via ResourceHandler
  5. File Upload Component
  6. Multi-Templating

Wie Ed JAXenter über erklärte, wurde der Multi-Templating allerdings in letzter Minute in „Resource Library Contracts“ umbenannt. In der JSF 2.2 Spec heißt es dazu:

JSF defines a system called „resource library contracts“ for applying facelet templates to an entire application in a reusable and interchangeable manner. A configurable set of Facelet VDL views in the application will be able to declare themselves to be template-clients of any template in a resource library contract. Facelet VDL views in the application can also make use of resources contained in a resource library contract, but the feature has ample value when only used with templates.

JSF 2.2 wird vorraussichtlich im April 2013 im Rahmen von Java EE 7 erscheinen. Das Public Review Dokument kann auf der JSR-344-Seite heruntergeladen werden. Die Public Review-Phase endet am 14. Januar 2013. Und zum Schluss kommt noch der Tipp, sich JSF 2.2 vom Meister persönlich erklären zu lassen. Beim Besuch in der JAXenter-Redaktion plaudert Ed Burns mit Redakteurin Claudia Fröhling über die Neuerungen in JSF 2.2 und die Highlights in Java EE 7.

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.