lucid: Welcher HTTP Status Code bei fehlender Berechtigung?

Beitrag lesen

Hallo wahsaga.

Vielleicht noch ein 409, "Conflict":

Der scheint zwar auch relativ gut zu passen, ist aber leider schon zu speziell.

In wie fern?

Gemäß Spezifikation scheint der 409er vor allem für PUT Anfragen gedacht zu sein. Ist hierbei z. B. die Ressource, die geändert werden soll, bereits durch eine andere Anfrage gesperrt, erzeugt dies einen Konflikt.

Außerdem hat der Status der Benutzeranmeldung doch eigentlich nur entfernt (wenn überhaupt) mit dem Status der Ressource zu tun, oder?

Ich sehe es so: Der aktuelle Status der Ressource ist "du kumms hier net rein" - eben _weil_ die Anmeldung noch nicht stattgefunden hat.

Hmm, der Status der Ressource ist eigentlich immer der selbe. Der Status der Benutzeranmeldung (d. h. des Berechtigungsobjekts innerhalb der Session) hat hingegen jeweis unterschiedliche Werte. Und ansich greift die Berechtigungsprüfung ja auch schon weit bevor überhaupt auf die eigentliche Ressource zugegriffen bzw. diese erzeugt wird.

[...] nur schicke ich an der Stelle dann für ein und die selbe URI unterschiedliche Inhalte und das möchte ich vermeiden. Deshalb hätte ich gerne einen anderen Status als 200, um zu kennzeichnen, dass das Formular zur Anmeldung nicht der eigentliche Inhalt ist, sondern dass der ausgelieferte Inhalt auf die fehlende Berrechtigungen zurückzuführen ist.

Na ja, dann würde ich doch zum 403 tendieren.

Mittlerweile habe ich auch schon angedacht, das Anmeldungsformular unter einer eigenen URI zu hinterlegen und dann, im Falle fehlender Berechtigungen, mittels 302 auf das Formular umzuleiten. Das würde das Problem des doppelten Inhalts unter einer URI umgehen...

Gruß
lucid