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