[Start Spring Boot] Spring Security InMemoryUserDetailsManager

·2024년 4월 8일
0

Start Spring Boot!

목록 보기
36/53
post-thumbnail

InMemoryUserDetailsManager

What is?

  • 애플리케이션 구동 시에 메모리에 사용자 정보를 로드하여 관리
  • 사용자 정보의 CRUD 작업을 지원
  • 테스트나 간단한 애플리케이션에서 사용하기에 적합
  • 코드에 사용자 정보를 저장하는 것은 매우 위험함!

방식

  • InMemoryUserDetailsManager를 반환한다.
  • UserDetails을 User을 통해서 생성한다.
  • UserDetails을 생성 시 passwordEncoder가 필요하다.

config1 - 기본 passwordEncoder 사용

  • SpringSecurityConfiguration.java
    @Bean
    public InMemoryUserDetailsManager userDetailsService() {
        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);
    }

config2 - passwordEncoder @Bean으로 등록해서 사용

    @Bean
    public InMemoryUserDetailsManager userDetailsService() {
        UserDetails admin = User.withUsername("admin")
                .username("admin")
                .password("12345")
                .authorities("admin")
                .build();
        UserDetails user = User.withUsername("user")
                .password("12345")
                .authorities("read")
                .build();

        return new InMemoryUserDetailsManager(admin, user);
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
        return NoOpPasswordEncoder.getInstance();
    }
  • 다음으로 만든 UserDetails을 이용해서 로그인을 해보자!
profile
백엔드 개발자가 꿈인 컴공과

0개의 댓글

관련 채용 정보