Abfangen basierend auf dem HTTP-Header in RESTEasy

8

Ich entwickle REST-Dienste mit zwei Arten.

  • vor dem Login wird kein Session-Token an den HTTP-Header übergeben.
  • nach dem Anmeldesitzungstoken wird in jeder Anfrage übergeben.

Ich möchte @HeaderParam nicht in jede REST-Methode einbeziehen. Ich möchte es zuerst abfangen und basierend darauf möchte ich die Gültigkeit der Sitzung überprüfen. Bitte lass es mich wissen

  1. wie kann ich basierend auf Headern in RESTEasy abfangen
  2. Wie vermeide ich es, wenige Methoden abzufangen

Danke.

    
jaks 18.07.2012, 19:57
quelle

2 Antworten

7

Ich habe dieses Problem mit PreProcessInterceptor

gelöst %Vor%

Die Anmerkung @Securable wird im REST-Service verwendet, der validiert werden muss.

%Vor%     
jaks 31.08.2012, 10:03
quelle
3

Es gibt zwei Ansätze

  1. Verwenden Sie JAX-RS-Interzeptoren - Sie haben Zugriff auf das Anfrageobjekt im Interceptor, so dass Sie Header

  2. lesen können
  3. Verwenden Sie gute alte JavaServlet-Filter - es ist kein Problem, dass Sie JAX-RS verwenden, Sie können auch REST-Anforderungen filtern. Ähnlich wie Interceptors haben Filter Zugriff auf das Request-Objekt, das über Header-Informationen

  4. verfügt

In beiden Fällen können Sie überprüfen, ob HttpSession existiert ( request.getSession() method) und ob das Attribut erforderlich ist.

Sie können Anforderungen, die entweder in der Konfiguration oder programmatisch in Java-Code gefiltert wurden, ein- und ausschließen, indem Sie den Anforderungsweg betrachten.

    
Piotr Kochański 26.07.2012 21:06
quelle

Tags und Links