Я сделал проект весенней загрузки с mongo db в качестве бэкэнда. Я хочу убедиться, что пользователи аутентифицированы и авторизованы, сохраняя при этом какой-то сеанс в памяти (используя Redis или что-то еще во встроенном весеннем сеансе)
Я прошел через множество турориалов, таких как это, это, это и т. д.
Все они просят вас расширить WebSecurityConfigAdapter
, настроить HttpSecurity
и предоставить UserDetailService
. Что я и сделал следующим образом.
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public UserDetailsService userDetailsService(){
return new StockUserDetailService();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/login/**").permitAll()
.antMatchers("/logout/**").permitAll()
.antMatchers("/admin/**").hasAuthority("ADMIN")
.antMatchers("/broker/**").hasAnyAuthority("BROKER")
.anyRequest().fullyAuthenticated();
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService());
}
}
Но чего я не понимаю, так это того, где происходит управление сеансом и что такое url
, который пользователь должен использовать для входа в систему? Если я напишу контроллер с сопоставлением для /login
, каким должно быть мое действие внутри контроллера входа в систему. Я действительно не понимаю всей картины.
ОБНОВЛЕНИЕ
Я попытался отправить сообщение на /login
. я получаю эту ошибку
{
"timestamp": 1494842451672,
"status": 403,
"error": "Forbidden",
"message": "Could not verify the provided CSRF token because your session was not found.",
"path": "/login"
}