강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

허경석님의 프로필 이미지
허경석

작성한 질문수

스프링 시큐리티

여러 개의 로그인 페이지에 대한 예제를 부탁드립니다.

작성

·

1.5K

0

안녕하세요. 

좋은 강의 감사드립니다.내용이 어려워서(강의가 어렵다는 얘긴 아닙니다.^^)  아직은 이해를 못했지만, 몇 번 듣다보면 이해되겠죠.^^

다름이 아니라, 2개 이상의 로그인 페이지를 사용하는 (어드민용 로그인 페이지, 일반사용자용 로그인 페이지) 플젝을 해야 하는데, 

자료를 찾아보니 WebSecurityConfigurerAdapter를 상속받은 configuration 클래스를 2개 만들어서 사용하라고 하네요.

그대로 따라해보긴 했는데, 그중 한개만 DaoAuthenticationManager인가를 타고 다른 한개는 바로 컨트롤러로 빠져버리더라구요.

2개의 로그인 화면을 사용할 수 있는 예제를 좀 부탁드립니다.

감사합니다.

답변 1

1

정수원님의 프로필 이미지
정수원
지식공유자

네 

아키텍처 강의에서 두번째인 "필터 초기화와 다중 보안 설정" 보시면 자세한 내용을 설명하고 있으니 참고해 주시기 바랍니다.

아래 예제를 보시면

첫번째는 "/admin/** 으로 들어오는 모든 요청에 대해서 보안 처리를 하는 설정 클래스입니다.

@Configuration

@Order(1)

public class SecurityConfig1 extends WebSecurityConfigurerAdapter {

    @Override

    protected void configure(HttpSecurity http) throws Exception {

        http.antMatcher("/admin/**")

            .authorizeRequests().anyRequest().hasRole("ADMIN")

            .and().formLogin()

    }

}

두번째는 "/api/** 으로 들어오는 모든 요청에 대해서 보안 처리를 하는 설정 클래스입니다.

@Configuration

@Order(2)

public class SecurityConfig2 extends WebSecurityConfigurerAdapter {

    protected void configure(HttpSecurity http) throws Exception {

        http.antMatcher("/api/**")

            .authorizeRequests().anyRequest().hasRole("USER")

            .and().httpBasic()

    }

}

필터 및 인증처리를 담당하는 클래스들(AuthenticationProvider, UserDetailsService ..)은 설정클래스별로 생성이 되고 동작을 하기 때문에 독립적으로 운용이 가능합니다.

/admin 으로 요청을 해보시고 /api 로 요청을 해보시면 form 인증 혹은 httpBasic 인증이 각각 동작하는 것을 확인하실 수 있습니다. 

강의를 좀 더 참고해 주시면 감사하겠습니다.

허경석님의 프로필 이미지
허경석

작성한 질문수

질문하기