ich eine Feder Boot-Anwendung mit WebSecurityConfigurerAdapter wie diese konfiguriert habe -Frühling boot - Rückkehr Benutzerobjekt nach dem Einloggen in
http.csrf().disable()
.exceptionHandling()
.authenticationEntryPoint(restAuthenticationEntryPoint)
.and()
.authorizeRequests()
.antMatchers("/user/*", "/habbit/*").authenticated()
.and()
.formLogin()
.loginProcessingUrl("/login")
.permitAll()
.usernameParameter("email")
.passwordParameter("pass")
.successHandler(authenticationSuccessHandler)
.failureHandler(new SimpleUrlAuthenticationFailureHandler())
.and()
.logout()
.logoutUrl("/logout")
.invalidateHttpSession(true);
Kann ich etwas hinzufügen, wie meine eigenen Controller, würde, nach erfolgreicher Authentifizierung, einen benutzerdefinierten wieder zurück Objekt mit einigen Details über den authentifizierten Benutzer?
Update: Zur Klarheit verwende ich eine eckige Anwendung als Client. Zur Zeit muss ich zwei Anfragen von meinem Client zum Server machen: 1. POST Anfrage an/Login URL für die Authentifizierung. 2. GET-Anforderung, um authentifizierte Benutzerdaten abzurufen.
Mein Ziel ist es, die erste Anfrage an mich Benutzerinformationen zurückzugeben, so muss ich nicht die 2dn Anfrage machen. Momentan authentifiziert die erste Anfrage nur den Benutzer, erstellt eine Sitzung auf dem Server und sendet eine '200 OK' Statusantwort mit keine Daten zurück. Ich möchte, dass es eine Erfolgsantwort mit Daten über den angemeldeten Benutzer zurückgibt.
Beantwortet:
Die richtige Antwort ist in den Kommentaren so werde ich es hier schreiben: ich von meinem successHandler meines Controller umleiten benötigt, was wiederum gibt die aktuell in den Benutzerinformationen angemeldet (in meinem Fall Controller ist in url '/ user/me':
@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
Authentication authentication) throws ServletException, IOException {
clearAuthenticationAttributes(request);
getRedirectStrategy().sendRedirect(request, response, "/user/me");
}
Sie benötigen den Benutzer während einige zukünftige Anforderung bearbeitet wird, oder haben Sie ein „Ereignis“ müssen direkt beim Login? (beide werden von Feder (Sicherheit) unterstützt, aber es funktioniert auf völlig unterschiedliche Weise) - für die erste, werfen Sie einen Blick auf diese Frage: http://StackOverflow.com/q/8764545/280244, für die Sekunde schauen bei dieser Frage http://stackoverflow.com/questions/15493237/how-to-correctly-update-the-login-date-time-after-successful-login-with-spring-s – Ralph
Ich habe eine eckige Front-End und nach erfolgreicher Authentifizierung POST-Anfrage möchte ich einige Benutzerdetails in der Antwort haben, um sie auf meiner Webseite zu zeigen. – Tomas
Bitte sagen Sie mir: Wie haben Sie die Anmeldung bei der POST-Anfrage verwaltet? –