Sessionverwaltung und Authentifizierung

In unser Blog soll nicht jeder schreiben dürfen, sondern nur ein authentifizierter Benutzer, der über ein Passwort identifiziert wird. Dazu machen wir uns die Symfony-eigene Sessionverwaltung zu Nutze. Zuerst legen wir in der Konfigurationsdatei security.yml fest, welche Anwendungsteile geschützt werden sollen:

apps/frontend/blog/config/security.yml

show:
 is_secure: on
create:
 is_secure: on
edit:
 is_secure: on
update:
 is_secure: on
delete:
 is_secure: on

Listing 9

Jede einzelne Action des Moduls kann mit Sicherheitsmerkmalen versehen werden, in unserem einfachen Beispiel mit „is_secure“. Eine dermaßen geschützte Action wird nur ausgeführt, wenn ein User-Objekt vorhanden ist und der Benutzer den Status „isAuthenticated“ aufweist. Auf die User-Credentials kann in einem Template einfach zugegriffen werden:

Auschnitt: listSuccess.

<?php if($sf_user->isAuthenticated()) echo link_to ('new entry', 'blog/create'); ?>

Listing 10

Die Benutzerauthentifizierung selbst passiert üblicherweise in einer Action, die Login und Passwort etwa mit einer Datenbank abgleicht.

Ausschnitt: action.class.php

$this->getUser()->setAuthenticated(true);

Listing 11

Fazit

Das Symfony-Projekt gehört trotz seines vergleichsweise jungen Alters zu den bestdokumentierten Open-Source-Projekten überhaupt. Die Website des Projekts bietet neben einem kompletten Handbuch auch komplexere zum Download an. So oder so erfordert jedoch die Software-Entwicklung mit Symfony, dass man sich mit grundlegenden Prinzipien der objektorientierten Programmierung und der MVC-Architektur auseinandersetzt. Letztendlich sorgt Symfony durch seine klaren Strukturen dafür, dass der erzeugte Programmcode sauber und einfach wartbar ist.

Seite:  1 2 3 4 5 6 7

Weitere Artikel zu Frameworks, Tutorials und PHP

Softlink 1531

Links und Literatur