새로운 사용자를 등록하기 위해서는 SpringSecurityConfiguration 설정을 변경해야합니다.
먼저 userDetails 코드를 메소드로 만들겠습니다.
private UserDetails createNewUser(String username, String password) {
Function<String, String> passwordEncoder
= input -> passwordEncoder().encode(input);
UserDetails userDetails = User.builder()
.passwordEncoder(passwordEncoder)
.username(username)
.password(password)
.roles("USER", "ADMIN")
.build();
return userDetails;
}
createNewUser()를 사용해서 새로운 유저를 추가합니다.
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import java.util.function.Function;
@Configuration
public class SpringSecurityConfiguration {
@Bean
public InMemoryUserDetailsManager createUserDetailsManager() {
//새로운 유저를 추가합니다.
UserDetails userDetails1 = createNewUser("tester1", "testpassword1");
UserDetails userDetails2 = createNewUser("tester2", "testpassword2");
return new InMemoryUserDetailsManager(userDetails1, userDetails2);
}
private UserDetails createNewUser(String username, String password) {
Function<String, String> passwordEncoder
= input -> passwordEncoder().encode(input);
UserDetails userDetails = User.builder()
.passwordEncoder(passwordEncoder)
.username(username)
.password(password)
.roles("USER", "ADMIN")
.build();
return userDetails;
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
tester2로 로그인을 하면 투두 리스트가 비어있을 것을 확인할 수 있습니다.


이번에는 새로운 사용자 유저를 추가해 보았습니다.
다음 시간에는 Spring Date JPA와 H2 데이터 베이스에 대해 정리하겠습니다.
감사합니다!!