본문 바로가기

FastCampus - 한번에 끝내는 Java|Spring 웹 개발/04-2 시큐리티

(6)
Security 02-06: DB에 계정 넣기 - 패스트캠퍼스 챌린지 50일차 마지막 날입니다. 오늘의 내용은 ... 원래는 05-2 였는데 불필요한 내용 같아서 스킵했습니다. 거의 같은 내용이 나오더라구요 오늘의 내용은 데이터베이스에 사용자를 집어넣는 방법입니다 (강의 자료). 별 건 없고 클래스 두 세 개를 상속해서 넣으면 됩니다. DB에 계정 & 암호 넣기 : DaoAuthenticationProvider & UserDetails spring 공식문서 (DaoAuthenticationProvider) 강의자료 언제나처럼 강의자료가 일부 혼동을 유발하고는 있지만, 이번에는 그래도 전체적으로 어떻게 흘러가는지에 대한 내용을 파악하는 데에는 큰 도움이 됩니다. 공식 문서에는 상세 객체까지 오가는 그림은 없더라구요. 흐름은 UsernamePasswordAuthenticationFil..
Security 02-05: Basic Auth (2) - 패스트캠퍼스 챌린지 49일차 이번 강의에서는 Basic Auth 외에도 일반적인 CSRF 가 필요한 웹사이트와 함께 운용하기 위해서 별도의 Configuration 을 추가합니다. 프로젝트가 갑자기 이전 강의 거로 돌아가는게 제일 당황스럽던; @Configuration 을 별도로 추가하자 강의에서는 사전에 준비해두신 프로젝트로 진행해서 BasicAuth configuration 을 한 번 더 추가했는데요, 저는 이전 강의에서 직접 만들었던 프로젝트에서 이어서 작업하므로 거꾸로 일반 웹페이지 형식으로 받는 Configuration 을 추가해야 합니다. 기존 Basic Auth 설정을 /api/v1 로 이동 일단 기존 핸들러들을 /api 아래로 다 옮겨보겠습니다. @RestController @RequestMapping("/api/v1..
Security 02-05: Basic Auth - 패스트캠퍼스 챌린지 48일차 이상하게 강의를 보는 게 꼬여버렸습니다. CustomLoginFilter (영상 제목이 이상한데...) 에서는 바로 전 강의에서 만들었던 커스텀 로그인 필터에서 직접 StudentAuthToken 과 TeacherAuthToken 을 만들게 바꾸고, 그걸 처리하는 StudentAuthProcessor 와 TeacherAuthProcessor 에서도 해당 토큰들을 필터링 & 처리하도록 바꿉니다. 이것도 언제 실습을 좀 해봐야 하는데 다음장인 05. Basic 토큰 인증에서는 BasicAuthFilter 를 사용한 Basic 인증을 진행합니다. Basic 인증 HTTP 인증 방식에는 여러가지가 있습니다. 그 중 BasicAuthenticationFilter 는 Basic 방법(scheme)을 사용합니다. 이..
Security 02-04: Authentication 메커니즘 - 패스트캠퍼스 챌린지 47일차 오늘은 공식 문서를 보는 걸로 시작해서 강의를 한 두 개 정도 보는 걸로 마무리했습니다. 원론적인 조망 설명이 공식 문서가 엄청 잘 되어있거든요. 강의자료에는 생략되었거나 헷갈리는 부분이 좀 있죠... Authentication 아키텍처 네가 누구인지 확인하겠다, "인증" 이 어떻게 처리되는지 구조를 조망해봅시다. 문서와 강의를 둘 다 참고해서 정리하고 있습니다. https://docs.spring.io/spring-security/reference/servlet/authentication/architecture.html Authentication 의 키 플레이어: 인증처리필터, 인증제공자, 인증값 제 생각에 인증의 키 플레이어는 둘이고, 주요 데이터는 하나입니다. [데이터] Authentication:..
Security 02: 전체 구조 - 패스트캠퍼스 챌린지 46일차 "너무 많이 퍼먹이려고 한다" 스프링 시큐리티 2장입니다. 먼저 오버뷰로 어떤 구조로 되어있는지 살펴보고, 주요 모듈들에서 주의할 점 등을 살펴봅니다. [장문의 불만글은 라쿤이 맛있어보인다고 물에 헹구러 챙겨갔어요.] 하지만 이런 볼멘소리를 늘어놓아도 결국 제가 제대로 이해 못 했다는 점은 달라지지 않으니까요 0- JSP (html 에 Java 코드를 끼워넣기) => Servlet (Java 코드가 HTML을 반환) 순으로 발전했다고 알고있습니다. (이거 학부생때 국비지원교육 들으면서 배웠던 거 같은데.. 학교에서 배웠나?) 소스를 좀 살펴보니, Servlet 에는 request 와 response 가 있습니다. 이거 최근의 웹 프레임워크들에서도 많이 보는 미들웨어 같은 거 아닌가요? 그렇다면 서블릿이 ..
Security 01: 개요 및 맛보기 - 패스트캠퍼스 챌린지 42일차 다음 챕터는 Spring Data JPA 의 트러블슈팅 부분이었지만 실습 환경이 갖추어지지 않아서 차라리 다음 챕터인 Spring Security 의 개요 챕터를 보기로 했습니다. 알아야 하는 내용들 앞에서 이런저런 내용들을 이미 배우고 왔다고 가정합니다. 그 중 몇 가지 빠진 게 있는데요... SpEL (Spring Expression Language) UI 부분: thymeleaf 강의 자료는 gitlab과 github 에 올려주셨네요. https://gitlab.com/jongwons.choi/spring-boot-security-lecture https://github.com/jongwon/sp-fastcampus-spring-sec 언어가 "모던 자바" 라는 점이 좋네요. 모던 자바는 따로 시간..