У меня есть приложение весной загрузки с WebSecurityConfigurerAdapter сконфигурированной как это -Spring загрузки - объект возвращения пользователя после входа в систему
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);
Могу ли я добавить что-то вроде собственного контроллера, который, после успешной аутентификации, вернуться назад обычай объект с некоторыми сведениями об аутентифицированном пользователе?
Обновление: Для ясности я использую угловое приложение в качестве клиента. В настоящее время мне нужно сделать 2 запроса от моего клиента к серверу: 1. POST-запрос на URL-адрес для аутентификации. 2. Запрос GET для получения аутентифицированных пользовательских данных.
Моя цель - получить 1-й запрос, чтобы вернуть мне информацию пользователя, поэтому мне не нужно делать запрос 2dn. В настоящее время 1-й запрос только аутентифицирует пользователя, создает сеанс на сервере и отправляет ответ «200 OK» с данных. Я хочу, чтобы он возвращал ответ успеха с данными о пользователе.
Ответил:
Правильный ответ в комментариях, так что я буду писать здесь: мне нужно перенаправить с моей successHandler на мой контроллер, который в свою очередь, возвращает вошедшего в информации о пользователе (в моем случае контроллер находится в URL «/ пользователь/я»:
@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
Authentication authentication) throws ServletException, IOException {
clearAuthenticationAttributes(request);
getRedirectStrategy().sendRedirect(request, response, "/user/me");
}
Вам необходим пользователь при работе с каким-то будущим запросом, или же вам нужно «событие» прямо на входе в системе? (обе поддерживаются весной (безопасность), но она работает совершенно по-разному) - для первого взгляните на этот вопрос: http://stackoverflow.com/q/8764545/280244, для второго взгляните на этот вопрос http://stackoverflow.com/questions/15493237/how-to-correctly-update-the-login-date-time-after-successful-login-with-spring-s – Ralph
У меня есть угловой интерфейс и после успешного запроса POST аутентификации я хотел бы иметь некоторые данные пользователя в ответе, чтобы показать их на моей веб-странице. – Tomas
Скажите, пожалуйста, как вы управляли логином по запросу POST? –