我有一个关于存储" base"的问题spring security app的密码。我阅读文档和恕我直言,我应该先存储硬编码的地方。这是对的还是我应该怎么做? 例如,我发布了来自Spring security的defauld helloWorld代码。
@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);
}
}
答案 0 :(得分:1)
您有几种选择。
PasswordGenerator
生成密码,并通过SQL手动将登录/传递添加到数据库。这样你就拥有了更大的灵活性,你可以拥有任意数量的初始用户(并且你可以随时删除它们),而且这种方法可以保证登录是唯一的(你需要在代码中进行一些特殊的处理来检查,任何新用户的登录名与第一个用户的登录名不匹配。