Todo 애플리케이션에 새로운 사용자 설정하기

Soo·2024년 3월 16일

새로운 사용자를 등록하기 위해서는 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;
    }

SpringSecurityConfiguration.class

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 데이터 베이스에 대해 정리하겠습니다.

감사합니다!!

0개의 댓글