그리고 이제 로그인하지 않아도 접근 그낭한 곳은 /auth를 붙인 uri라고 하고 login과 join은 auth를 붙여서 처리하자.
config 패키지 - SecurityConfig 클래스
프로젝트 폴더에 config 패키지를 만들고, SecurityConfig 클래스를 만들자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
@Configuration//빈 등록(Ioc) @EnableWebSecurity//시큐리티 필터를 등록. 필터 설정을 메소드에서 @EnableGlobalMethodSecurity(prePostEnabled = true)//특정 주소를 접근하면 권한/인증을 미리 체크하겠다는 의 publicclassSecurityConfigextendsWebSecurityConfigurerAdapter{ @Override protectedvoidconfigure(HttpSecurity http)throws Exception { http .authorizeRequests()//요청이 왔을 때 .csrf().disable() //csrf 토큰 비활성화(테스트시에만!!!) .antMatchers("/","/auth/**","/js/**","/css/**","/image/**") // /auth로 시작하거나, static한 데이터는 .permitAll() //모두 접근 가능 .anyRequest() //이 외의 다른 요청은 .authenticated() // 인증해야 접근 가능 .and() // 인증이 필요한 경우 .formLogin() // 로그인 할 수 있도록 한다. .loginPage("/auth/loginForm"); //이 로그인 페이지에서 } }
이제 인증이 필요한 주소 방문시 -> 로그인 페이지 인증 불필요한 주소 방문시 -> 접근 허용 이렇게 작동한다!!! csrf 토큰은 반드시 테스트에만 비활성화하라!! csrf가_뭔지_모른다면…