오늘은 JWT 강의에서 만든 순서 한번 적어보자
클래스 만드는거 중심으로..
1. SecurityConfig
- @EnableWebSecurity : 기본적인 Web 보안을 활성화 하겠다.
- authorizeRequests()는 HttpServletRequest를 사용하는 요청들에 대한 접근제한을 설정하겠다는 의미
- antMatchers(path).permitAll()는 해당 path로 들어오는 요청은 인증없이 접근을 허용하겠다는 의미
- .anyRequest().authenticated()는 나머지 요청은 모두 인증되어야 한다는 의미입니다.
2. Entity생성
- @Entity : Database Table과 1:1로 매핑되는 객체
- @Getter, @Setter, @builder, @AllArgsConstructor, @NoArgsConstructor 는 Get, Set, Builder, Constructor 관련 코드를 자동으로 생성
- @JsonIgnore는 서버에서 Json 응답을 생성할때 해당 필드는 ignore
3. Security설정 추가
- .ignoring() .antMatchers( "/h2-console/**" );
- h2-console 페이지의 접근은 Spring Security 관련 로직을 수행하지 않도록 configure(WebSecurity web)를 오버라이드한 메소드를 새롭게 추가
4. JWT 관련 클래스 생성
- TokenProvider : TokenProvider 빈은 정의한 jwt.secret, jwt.token-validity-in-seconds 값을 주입받도록 한다.
- JwtFilter : JwtFilter빈은 TokenProvider를 주입받는다.
- JwtSecurityConfig : JwtFilter를 Security 로직에 적용하는 역할을 수행.
- JwtAuthenticationEntryPoint : 유효한 자격증명을 제공하지 않고 접근하려 할때 401 UNAUTHORIZED 에러를 리턴하기 위해 AuthenticationEntryPoint를 구현한 JwtAuthenticationEntryPoint 클래스를 작성
- JwtAccessDeniedHandler : 필요한 권한이 존재하지 않은 경우 403 FORBIDDEN 에러를 리턴하기 위해 AccessDeniedHandler를 구현한 JwtAccessDeniedHandler 클래스를 작성합니다.
5. Security설정 추가
6. Dto 추가
- LoginDto
- TokenDto
- UserDto
7. UserRepository 추가
8. CustomUserDetailsService 추가
- UserDetailsService를 implements하고 위에서 만들었던 UserRepository를 주입받음
9. AuthController 추가
- TokenProvider, AuthenticationManagerBuilder 를 주입받는 AuthController 클래스
10. SecurityUtil 추가
11. UserService 추가
- UserRepository, PasswordEncoder를 주입받는 UserService 클래스를 생성
12. UserController 추가
- UserService를 주입받음
이것이 정답은 아니다. 큰 흐름 한번 보려고 적어봤는데 쉽지않네
강의 들을땐 따라갈만하다가 혼자 생각하면 바로 안 꺼내진다.
- 내일 할 일
강의를 듣기보다 주어진 과제에 올인해서 최대한 만들어봐야겠다.
일단 굴러가게하고 뒤에 이쁘게 다듬어야지
'TIL' 카테고리의 다른 글
항해99_TIL220601 (연관관계 매핑) (0) | 2022.06.02 |
---|---|
항해99_TIL220531 (Builder) (0) | 2022.05.31 |
항해99_WIL220529 (DI, IoC, Bean) (0) | 2022.05.29 |
항해99_TIL220528 (JWT) (0) | 2022.05.29 |
항해99_TIL220527 (Spring Security란) (0) | 2022.05.28 |