728x90

의존성 추가

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-security'
}

gradle 파일에 위의 스프링 시큐리티 의존성을 추가한 후에

별다른 설정 없이 서버를 실행한 후에 로컬 환경에서 사이트에 접속해보겠다.

 

 

접속해보면 로그인 페이지나 기능을 구현한 적이 없어도

스프링 시큐리티에서 기본적으로 제공해주는 인증 페이지로 접속되는걸 확인할 수 있다.

 

 

 

기본 인증은 Username에 user, Password에 위의 비밀번호를 복사해서 로그인 할 수 있다.

 

인증을 하기 전까지는 어떤 요청을 보내더라도 위의 페이지가 뜨게 되고

인증된 후에야 응답을 받을 수 있게 된다.

 

 

시큐리티의 기본적인 인증 방식은 위의 사진에서 알 수 있듯이

세션을 사용하여 인증 정보를 관리한다.

@EnableWebSecurity 
@Configuration
public class DefaultSecurityConfig {
    @Bean
    @ConditionalOnMissingBean(UserDetailsService.class)
    InMemoryUserDetailsManager inMemoryUserDetailsManager() { 
        String generatedPassword = // 랜덤 패스워드 생성;
        return new InMemoryUserDetailsManager(User.withUsername("user")
                .password(generatedPassword).roles("ROLE_USER").build());
    }

    @Bean
    @ConditionalOnMissingBean(AuthenticationEventPublisher.class)
    DefaultAuthenticationEventPublisher defaultAuthenticationEventPublisher(ApplicationEventPublisher delegate) { 
        return new DefaultAuthenticationEventPublisher(delegate);
    }
}

위의 코드는 스프링 시큐리티의 기본 설정값이다.

 

서버를 처음 실행할 때마다 랜덤으로 패스워드를 설정하여

Username은 user고 Password는 랜덤 패스워드, 역할은 ROLE_USER인 인증 정보를 생성한다.

 

이런 과정을 통해서 의존성을 추가한 것만으로도 기본 로그인 기능을 사용할 수 있었다.

 

+ Recent posts