public WebSecurityCustomizer webSecurityCustomizer() {
// h2-console 사용 및 resources 접근 허용 설정
return (web) -> web.ignoring()
.requestMatchers(PathRequest.toH2Console())
.requestMatchers(PathRequest.toStaticResources().atCommonLocations());
}
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
// CSRF 설정
http.csrf().disable(); //이번에 csrf 인증 방식은 적용하지 않음
http.authorizeRequests()//스프링부트3.0이상에서는 authorizeHttpRequest()를 사용해야 한다.
//아래와 같이 인증이 없이 허용시킬 수도 있음 // 사이 값은 예시
//.antMatchers("/h2-console/**").permitAll()
//.antMatchers("/css/**").permitAll()
//.antMatchers("/js/**").permitAll()
//.antMatchers("/images/**").permitAll()
//.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
.anyRequest().authenticated();
http.formLogin();
formlogin() 호출 시 기본 형태의 로그인 창을 보여주며 기본 아이디는 user로 고정되어 있고 아래와 같은 password를 콘솔창을 통해 확인할 수 있다.
Using generated security password: e0823dd2-5c67-4c35-83a6-169efc58feb3
? 궁금증: 여기서 항상 index.html 경로를 입력해주지 않았는데도 왜 index.html로 연결되는지 이유를 모르겠다. 디폴트 값인 것 같긴 하지만 이유가 궁금하다.
http.formLogin().loginPage("/api/user/login-page").permitAll();
병두님이 내 코드를 보고 LGTM이라고 하셨는데 무슨 뜻인지 몰라 찾아보게 되었다.
구글에서는 코드베이스에 커밋하기 전에 코드를 함께 리뷰한다. 이 단계를 프리커밋 리뷰(커밋 직전 리뷰)라고 한다. 코드 리뷰의 최종 목표는 다른 엔지니어로부터 해당 변경을 적용해도 된다는 합의를 이끌어내는 것이다. 합의한 엔지니어는 ‘좋아 보임(looks good to me)’이라는 뜻의 LGTM이라는 태그를 달아 의사를 표현한다. 구글에서는 이 LGTM이 변경을 커밋하는 데 요구되는 필수 항목이라고 한다.
어쨌든 좋은 의미여서 감사하고 이번을 통해서 구글의 코드리뷰 관련 자료도 찾아보게 되었다. 코드로 협업하는 것이 아직 많이 어색하지만 이러한 체계가 필요하다는 것을 알게 되어서 좋은 경험이 된 것 같다.