У меня вопрос о хранении «базового» пароля для приложения Spring Security. Я читал документацию, и, IMHO, я должен был сначала сохранить где-то жестко запрограммированный проход. Это правильно или как мне поступить? В качестве примера я опубликовал дефолтный код helloWorld из Spring Security.
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/home").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
@Bean
@Override
public UserDetailsService userDetailsService() {
PasswordEncoder encoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();
String s = encoder.encode("password");
UserDetails user = User.withUsername("userName")
.password(s)
.roles("USER")
.build();
return new InMemoryUserDetailsManager(user);
}
}





У вас есть несколько вариантов.
PasswordGenerator и добавьте логин / пароль вручную в БД через SQL. Таким образом, у вас будет еще больше гибкости, у вас может быть столько начальных пользователей, сколько вы хотите (и вы всегда можете их удалить), а также этот подход может гарантировать, что логины будут уникальными (вам понадобится специальная обработка в вашем коде для проверки, что логин любого нового пользователя не совпадает с логином первого пользователя).