[SpringBoot] 스프링 시큐리티 설정 :: 매운코딩
728x90
300x250

원본 코드는 아래 github 을 참고하였다.

github.com/jojoldu/freelec-springboot2-webservice

@RequiredArgsConstructor
@EnableWebSecurity
public class SeurityConfig
        extends WebSecurityConfigurerAdapter {

    private final CustomOAuth2UserService customOAuth2UserService;

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .csrf().disable()
                .headers().frameOptions().disable()
                .and()
                    .authorizeRequests()
                    .antMatchers("/", "/css/**", "/images/**", "/js/**", "/h2-console/**", "/profile").permitAll()
                    .antMatchers("/api/v1/**").hasRole(Role.USER.name())
                    .anyRequest().authenticated()
                .and()
                    .logout()
                        .logoutSuccessUrl("/")
                .and()
                    .oauth2Login()
                        .userInfoEndpoint()
                            .userService(customOAuth2UserService);
    }
}

@EnableWebSecurity - 스프링 시큐리티 설정 활성화

http.csrf().disable()
.headers().frameOptions().disable() - h2-console 화면을 사용하기 위해 옵션을 disable

- csrf().disable() : basic auth를 사용하기 위해 csrf 보호 기능 disable (출처-dongdd.tistory.com/175)

authorizeRequests() - URL별 권한 접근제어 관리 옵션 시작점

antMatchers - 권한 관리 대상 지정.

permitAll() - 모든 권한에게 공개

hasRole(user권한) - user권한인 사람한테만 공개

anyRequest().authenticated() - 나머지 요청들은 인증된 사람에게만 공개(인증된 사람 == 로그인 사용자)

.oauth2Login() - oauth2 로그인 설정의 진입점

userInfoEndpoint() - 로그인 성공 이후 사용자 정보 가져올때의 설정 담당

728x90

+ Recent posts