dev_dbdb1114

SpringSecurity 기본 로그인 Id/Pw 설정하기 ( DB구축이 없을 때 기능구현을 위한 로그인 ) 본문

프로그래밍/SpringSecurity

SpringSecurity 기본 로그인 Id/Pw 설정하기 ( DB구축이 없을 때 기능구현을 위한 로그인 )

dbdb1114 2023. 7. 19. 11:44

이번 포스팅은 기록용으로 간단하게 springSecurity를 이용할 때 아이디와 패스워드 등을 설정하는 방법을 작성해보려고 한다.  보통 SpringBoot 프로젝트를 만들고 접속을 하면 아래와 같이 나오고 IDE 로그에 패스워드가 나온다. 

필요한 이유 : 스프링 시큐리티를 사용하여 로그인을 구현하면, 내부적으로 User 객체를 이용하여 인증하는 방식을 통해 요청을 처리한다. 그렇다보니 LoadByUserName() 이나 UserDetail 인터페이스를 implement하여 사용하는 등 여러 방식이 있다. 

 

이번 포스팅은 이런저런 상황에서 DB구축 없이 기능구현을 할 때 쓰면 되지 않을까 싶다. 

내용은 간단하다. 이전 포스팅에서 작성했던 SecurityConfig에 Bean 설정을 추가했다.

 

PasswordEncoder

@Configuration
@EnableWebSecurity
public class ProjectSecurityConfig {

		@Bean
        public InMemoryUserDetailsManager userDeatilsService(){

            UserDetails admin = User.withDefaultPasswordEncoder()
                    .username("admin")
                    .password("12345")
                    .authorities("admin")
                    .build();

            UserDetails user = User.withDefaultPasswordEncoder()
                    .username("user")
                    .password("12345")
                    .authorities("read")
                    .build();
            return new InMemoryUserDetailsManager(admin,user);


        }
        
}

이렇게 설정해두면, admin / 12345로 로그인 가능하며, 그때의 권한 또한 각각 설정한대로 흘러간다. 

로그인 기능뿐 아니라 권한을 염두에 둔 기능을 구현한다면, DB가 없을 땐 이런 방식으로 사용할 수 있을 것 같다. 

 

어차피 차후에 oauth2 로그인을 하게 되면 어차피 provider나 userDetailService 등등 이런저런걸 만들어야하기 때문에 다 지우고 다시 해야하지만, DB가 없는 상황이라면 이런식으로 api에 때려박아서 개발을 진행해도 괜찮을 것 같다.

Comments