2012-07-30 3 views
7

Ich habe die FORM-Authentifizierung in web.xml (java-webcontainer) erfolgreich eingerichtet.web.xml, simultanes Formular- und Standardauthentifizierung verwenden

Ich habe keinen Weg gefunden, den Benutzernamen/das Passwort innerhalb der get-Anfrage des Restful-URI von meinem Client zu senden, wenn ich die FORM-Authentifizierung benutze. Also muss ich die BASIC-Authentifizierung nur für die restful-uri verwenden. So

Ich habe diese Frage:

Wie kann ich einrichten sowohl eine formularbasierte Authentifizierung und Standardauthentifizierung? Die Standardauthentifizierung sollte nur für die restful-uri aktiviert werden.

+0

Sie noch interessiert auf diese Frage in der Antwort sind? – Olaf

+0

ja! Ich war in den Ferien :) – nimo23

Antwort

6

Es gab eine Zeitlang keine Antworten, also machte ich selbst eine kurze Servlet-Auffrischung. Servlet-Spezifikationen erlauben in der Tat nur ein Element pro Webanwendung, daher gibt es keine Möglichkeit, einen Einstiegspunkt mit BASIC-Authentifizierung für die REST-API und ein anderes mit FORM-basierter Authentifizierung für die Benutzeroberfläche zu haben. Die einzige Option besteht darin, sie als zwei unabhängig bereitstellbare Anwendungen zu erstellen. Um Code-Duplikation zu vermeiden, empfiehlt es sich, die UI-Anwendung auf die gleiche Weise wie die Clients von Drittanbietern mit der REST-API kommunizieren zu lassen.

+0

Ich hoffe, es wird in Zukunft Servlet-Spezifikationen möglich sein. Vielleicht sollten wir eine Feature-Anfrage stellen? – nimo23

7

Ich war auch ein ähnliches Problem konfrontiert, und ich erkannte, dass, wenn Sie Wildfly verwenden dann ihre möglich, mehrere Mechanismus web.xml zu konfigurieren: -

<auth-method>BASIC?silent=true,FORM</auth-method> 

diese stille Basis-Authentifizierung verwenden wird zunächst versucht werden, Dies ist eine Basisauthentifizierung, die nur dann wirksam wird, wenn ein Autorisierungsheader vorhanden ist. Wenn kein solcher Header vorhanden ist, wird stattdessen die Formularauthentifizierung verwendet.

Vielleicht ist es zu spät für eine Antwort, aber ich dies nur für den Fall jemand aktualisiert findet dies nützlich: P

+1

Vielen Dank. Das hilft sehr. Sparen Sie viel Zeit. –

Verwandte Themen