2017-05-17 1 views
-1

Ich versuche, eine defaultSuccessUrl mit Spring-Sicherheit und AngularJS einzurichten, aber nach einem erfolgreichen Login wird die HTML-Seite in das Netzwerk geladen, aber nicht angezeigt. hier ist meine Sicherheits ConfigdefaultSuccessUrl nicht korrekt Rendern der HTML-Seite

http 
     .authorizeRequests() 
      .anyRequest().authenticated().and() 
     .formLogin() 
      .loginPage("/") 
      .loginProcessingUrl("/") 
      .successHandler(this.authSuccess) 
      .failureHandler(this.authFailure).permitAll() 
      .defaultSuccessUrl("/app/components/hello.jsp", true); 


    http 
     .authorizeRequests() 
      .anyRequest().authenticated().and() 
     .logout() 
      .logoutSuccessHandler(this.logoutSuccess) 
      .deleteCookies("JSESSIONID") 
      .invalidateHttpSession(false).permitAll(); 

aber wenn ich das Netz chec kann ich die Post-Anforderung für die Anmeldung sehen wurde mit Statuscode 302 umgeleitet und hello.jsp wurde mit 200-Status enter image description here

jedoch geladen I habe immer noch die Login-Seite angezeigt und nicht die hello.jsp-Seite. Angular Service für die Anmeldung:

this_.login = function(data) { 
    return $http.post(_contextPath + '/', 
      "username=" + data.username + "&password=" + data.password, { 
       headers : { 
        'Content-Type' : 'application/x-www-form-urlencoded' 
       } 
      }).success(function(response) { 
     return response.status; 
    }).error(function(response) { 
     return response.status; 
    }) 
}; 

Jeder weiß, warum?

+0

Wie posten Sie das Login-Formular? Ajax? – chaoluo

+0

@chaoluo Ich benutze AngularJS am Frontend. Ich habe gerade meinen ersten Kommentar mit dem Service für die Postanfrage aktualisiert – Med

Antwort

0

Sie verwenden die ajax, um das Login-Formular zu posten, so dass die Seite nicht zur Erfolgs-URL weitergeleitet werden kann. Sie können die Standard-URL zurückgeben und dann zur URL am Frontend umleiten. wie this