|
4 | 4 |
|
5 | 5 | ## 실습 - 취약점 대응(CsrfFilter)
|
6 | 6 |
|
7 |
| -> CsrfFilter를 이용한 CSRF 공격 대응 |
| 7 | +> CsrfFilter를 이용한 CSRF 공격 대응 |
8 | 8 |
|
9 | 9 | - [x] CsrfToken 구현
|
10 | 10 | - [x] CsrfTokenRepository 구현 - HttpSessionCsrfTokenRepository
|
|
25 | 25 | - [x] @EnableWebSecurity, HttpSecurityConfiguration를 이용한 HttpSecurity 빈 등록
|
26 | 26 | - [x] csrf 필터를 configurer를 이용하여 설정
|
27 | 27 |
|
28 |
| - |
29 | 28 | ## 2단계 - 인증 관련 리팩토링
|
30 | 29 |
|
31 | 30 | - [x] `.formLogin()` 메서드를 사용하여 폼 로그인 기능을 설정하고, U`sernamePasswordAuthenticationFilter`를 자동으로 추가한다.
|
32 | 31 | - [x] `.httpBasic()` 메서드를 사용해 HTTP Basic 인증을 설정하고, `BasicAuthenticationFilter`를 자동으로 추가한다.
|
33 |
| -- [x] `.securityContext()` 메서드를 사용하여 `SecurityContextHolderFilter` 자동으로 추가 |
34 |
| -- [x] oauth2 리팩토링 |
| 32 | +- [x] `.securityContext()` 메서드를 사용하여 `SecurityContextHolderFilter` 자동으로 추가 |
| 33 | +- [x] oauth2 리팩토링 |
35 | 34 | - [x] OAuth2AuthorizationRequestRedirectFilter 등록, OAuth2LoginAuthenticationFilter 등록
|
36 | 35 |
|
37 | 36 | ## 3단계 - 인가 관련 리팩토링
|
38 | 37 |
|
39 |
| -## 4단계 - Auto Configuration 적용 |
| 38 | +> 예시 코드 |
| 39 | +
|
| 40 | +```java |
| 41 | + |
| 42 | +@Bean |
| 43 | +public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { |
| 44 | + http |
| 45 | + .authorizeHttpRequests(authorize -> authorize |
| 46 | + .requestMatchers("/public").permitAll() // /public 경로는 모두 허용 |
| 47 | + .anyRequest().authenticated()) // 그 외의 경로는 인증 필요 |
| 48 | + .formLogin(Customizer.withDefaults()) // 폼 로그인 |
| 49 | + .httpBasic(Customizer.withDefaults()); // HTTP Basic 인증 |
40 | 50 |
|
41 |
| ---- |
| 51 | + return http.build(); |
| 52 | +} |
| 53 | +``` |
| 54 | + |
| 55 | +- [x] `authorizeHttpRequests()` 메서드 구현 |
| 56 | + - [x] `AuthorizeHttpRequestsConfigurer`를 이용한 설정 |
| 57 | + - [x] 특정 경로에 대해 인증 없이 접근 가능하도록 설정하고, 나머지 요청에 대해서는 인증이 필요하도록 설정한다. |
| 58 | + - [x] 특정 경로에 대해서 권한에 따라 접근 가능하게 할지/말지를 설정한다 |
| 59 | + |
| 60 | +## 4단계 - Auto Configuration 적용 |
42 | 61 |
|
43 |
| -# 플로우차트를 활용한 깊은 이해 |
| 62 | +# 플로우차트를 활용한 이해 |
44 | 63 |
|
45 | 64 | ## CSRF 공격 대응
|
46 | 65 |
|
|
0 commit comments