Einfache HTTP-Authentifizierung mit Jersey / Grizzly

8

Ich habe einen einfachen REST-Server mit JAX-RS, Jersey und Grizzly geschrieben. So starte ich den Server:

%Vor%

Jetzt muss ich die Ressourcen mit der einfachen HTTP-Authentifizierung schützen, und ich kann nicht herausfinden, wie das geht.

Ich kann von Grizzly zum Beispiel zu Jetty wechseln, wenn es einfacher ist, es zum Laufen zu bringen, aber ich schätze wirklich die einfache Konfiguration / den Start, die Grizzly zur Verfügung stellt.

Ich habe viele Tutorials gelesen. Sie alle erwähnen die web.xml, aber in meiner aktuellen Konfiguration habe ich keine. (Muss ich einen für die HTTP-Authentifizierung hinzufügen?) Ich habe im Anschluss an gefunden Fragen , keine davon hilft: - (

(An dieser Stelle ist kein SSL erforderlich. Die Authentifizierung dient nur dazu, die Öffentlichkeit daran zu hindern, unsere Beta zu betrachten.)

TL; DR : Wie füge ich eine einfache HTTP-Authentifizierung zu einer Jersey / Grizzly-Webanwendung hinzu?

    
aioobe 30.01.2013, 15:54
quelle

3 Antworten

7

Ich schaffte es, es nach ein paar Stunden, basierend auf dieser Blogbeitrag .

Meine Lösung beinhaltet:

  • Mavenartefakte:
    • jersey-server (v 1.17)
    • jersey-grizzly2 (v 1.17)
  • Fest codierter Benutzername / Passwort (durch Datenbanksuche ersetzen, wenn Sie möchten)
  • Keine web.xml (programmatisch konfigurierter Server)
  • Kein SSL involviert

Ich habe dieses ContainerRequestFilter erstellt:

%Vor%

Und ich habe dann den Startup-Code so geändert, dass er den Filter enthält:

%Vor%     
aioobe 31.01.2013, 08:44
quelle
4

Vielleicht möchten Sie HTTPS Client Server überprüfen Grizzly Probe mit Jersey verteilt, was genau das tut. Im Folgenden finden Sie ein Beispiel für die Konfiguration von Sicherheitsfiltern auf dem Grizzly-Server.

%Vor%

Sie registrieren einen SecurityFilter, der sich um Ihre HTTP-Basisauthentifizierung kümmert. Wenn Sie den Protokollierungsfilter auf dem Server aktivieren, sollte der Basis-Auth-Header in der Anforderung angezeigt werden. Hier ist ein Beispiel:

%Vor%     
Arul Dhesiaseelan 31.01.2013 07:16
quelle
1

Beachten Sie jedoch, Zum Beispiel:

%Vor%

Dies setzt voraus, dass der Authentifizierungsheader Basic ist, während dies möglicherweise nicht der Fall ist. Sie sollten überprüfen, dass der Autorisierungsheader mit 'Basic' beginnt und wenn nicht autorisiert wird. Das Gleiche gilt für die Sicherstellung, dass der Rest der Informationen tatsächlich base64-codiert ist.

    
jgm 31.01.2013 19:18
quelle