2016-06-10 12 views
0

in meiner Web-App, ich habe eine Anmeldung/Registrierung als bootstrap modals, die erscheint, wenn das Login-Symbol in der Kopfzeile angeklickt wird. Ich versuche, diese im Frühjahr Sicherheit zu konfigurieren, aber ich sehe, dass ich eine Seite in Config-Methode zurückkehren:bootstrap modal als Login-Seite für Frühling Sicherheit

@Override 
protected void configure(HttpSecurity http) throws Exception 
{ 
    http 
     .formLogin().loginPage("/login") 
     .and() 
        ... 
} 

meine Frage ist, wie man richtig eine modale implementieren die Anmeldeseite anstelle eines voll zu sein HTML-Seite. Ich verwende Spring MVC 4 mit Federsicherheits 4 und thymeleaf

EDIT: in meinem Header in den HTML-Seiten:

<div class="col-xs-7 col-sm-4"> 
     <div class="top-social-last top-dark pull-right" 
      data-toggle="tooltip" data-placement="bottom" 
      title="Login/Register"> 
      <a class="top-icon-circle" href="#login-modal" 
             data-toggle="modal"> 
        <i class="fa fa-lock"></i> 
       </a> 
      </div> 

      <!-- social icons --> 
    </div> 

diese Header und die modale implementaion wird als Fragment geteilt, die in enthalten ist alle Seiten (langer Code für Modal, also habe ich es hier nicht kopiert).

jetzt gibt es bestimmte Anforderungen, die Anmeldung erfordert, also muss ich eine Anmeldeseite in Sicherheitskonfiguration hinzufügen, dass diese Anforderungen umgeleitet werden sollen, aber ich habe keine Seite, ich habe nur diese Modalität, die als eine freigegeben wird Fragment unter allen Seiten. Ich denke, ich mache es nicht richtig, also wenn mir jemand zeigen kann, wie man mit Modals im Frühling arbeitet.

zum Beispiel in airbnb Ort, wenn Sie eine Anzeige mögen wollen und nicht angemeldet, erscheint ein modal, anstatt auf eine Seite umgeleitet

+1

können Sie uns sagen, was Sie so haben versucht far.can Sie einen Code über das Thema schreiben Sie konfrontiert sind in Implementierung es –

Antwort

1

Sie haben Login modal in Bootstrap erstellen und zeigen Sie es nur, wenn jemand klickt auf den Login-Button. Ihr Login-Modal sollte Standard-Login-Formular in <form> Tags enthalten. Nach dem Klicken auf Absenden Button Formular sollte Benutzer umleiten zu th:action="@{/j_spring_security_check}" und das ist alles.

+0

Ja, das ist kein Problem .. aber im Frühjahr Sicherheit, möchte ich bestimmte Anfragen abzufangen, die Anmeldung erfordert und den Benutzer auf dieses modal umleiten .. aber die Sicherheitskonfiguration erfordert eine Seite nicht modal .. so wie kann Ich mache das (zum Beispiel, in Airbnb Website, wenn Sie eine Werbung mögen und nicht angemeldet, erscheint ein Modal, anstatt auf eine Seite umleiten) –

+0

So möchten Sie Modell öffnen, wenn jemand zum Beispiel gehen "http : // domain.com/need-login-to-view'? anstatt zur Anmeldeseite umzuleiten, yup? –

+0

genau .. nur ein Modal statt einer Seite –

1

1.Sie benötigen eine benutzerdefinierte Implementierung von Frühling Sicherheitsanmeldung, FilterChainProxy und Sie müssen diese modale in jede Seite setzen ich würde dies in den Fußbereich oder setzen Sie dies in Header-Abschnitt, da Sie bereits in Fragment haben .

2.Wenn immer eine sichere URL aufgerufen wird, prüfen Sie die Hauptsitzung, wenn diese Anfrage nicht in der Sitzung ist, könnten Sie einen Fehlercode zurückgeben, wenn es eine AJAX-Anfrage ist. Sie benötigen einen Filter und leiten sie zur Seite um keine Ajax-Anfrage an den Authentifizierungs-Manager, wo Sie die Modalität beim Laden der Seite anzeigen können.

, was Sie brauchen, ist ein exaclty preauth Filter zur Erzielung this.take einen Blick auf den folgenden Link preauth filter

+0

thx .. Ich werde diesen Ansatz überprüfen –