Мне нужно предоставить логин пользователя с приложением SpringBoot.
Запросом на вход в систему пользователя будет запрос на отдых с полезной нагрузкой, состоящей из «имени пользователя» и «пароля».
Мне нужно сначала проверить эти учетные данные из БД и сгенерировать токен, действительный в течение определенного времени.
Затем после входа в систему все последующие запросы будут иметь этот токен, и этот токен будет проверяться каждый раз.
Я выполнил проверку подлинности токена, но я действительно запутался при первом входе в систему, не знаю, как это сделать.
Даже при первом входе в систему система будет проверять аутентификацию токена, которая явно не удалась.
Я хочу, чтобы система просто генерировала токен в первый раз после проверки имени и пароля из базы данных.
Это первый раз, когда я вхожу в систему с помощью Spring Boot Security для входа в систему, поэтому я совершенно не в курсе этого. Хотя я много исследовал и читал в Интернете, но все еще не могу понять эту часть.
Ниже приведен класс конфигурации безопасности, который расширяет WebSecurityConfigurerAdapter
@Bean
@Override
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService)
.passwordEncoder(getPasswordEncoder());
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().and().csrf().disable();
http.authorizeRequests()
.antMatchers("/","**/firstPage").authenticated()
.anyRequest().permitAll()
.and()
.formLogin().loginPage("/login").
permitAll()
.and().logout().permitAll();
}
Ниже приведен запрос, который будет вызван после входа в систему. Как аутентифицировать пользователя в нем с помощью уже сгенерированного токена? Токен отправляется в заголовке запроса.
@PostMapping(value = "/home")
public ResponseEntity<ConsolidateResponse> TestReques(@RequestBody TestParam testParam)
throws Exception {
//Some logic
}