где я должен правильно хранить первый пароль - PullRequest
0 голосов
/ 06 мая 2018

У меня есть вопрос о хранении «базового» пароля для приложения Spring Security. Я читаю документацию и ИМХО, я должен был сначала передать хранящийся где-то в жестком коде. Это правильно или как мне это сделать? В качестве примера я опубликовал код 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);
    }
}

1 Ответ

0 голосов
/ 06 мая 2018

У вас есть несколько вариантов.

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