스프링 시큐리티 흐름
1.spring-security.jar를 추가했다
2.모든 페이지 접근이 불가능해졌다.
3.권한이 있어야 페이지 출력이 가능했다.
개인 포폴 만들때는 내가 주도해서 스프링 시;큐리티도 해보자...
4.내가 로그인 화면을 구성하지 않았음에도 로그인 화면으로 유도된다.
5.FilterChain이 제공되고있었다... 난 몰랐다....
스프링에서 제공되는 여러가지 종류의 필터체인이 있다.
서블릿으로 연결되기도 전에 필터들이 낚아챈다. 인터셉트
필터를 통해 인터셉트
6. 사용자 정의 화면으로 구성을 하고싶다->SecurityConfig.java추가하였다.
->더이상 스프링에서 제공하는 페이지로 가지 않아도 된다.
7.사용자 정의 시큐리티 코딩 전개하기
: 스프링 시큐리티는 스프링 시큐리티 세션을 들고있다.
서버 세션 영역 안에 시큐리티가 관리하는 세션이 따로 존재함
기존에 사용
HttpSession session = request,getSession()
->보안적인 이슈가 있었다.
스프링이 제어권을 가져왔다.
시큐리티 세션에는 Authentication객체만 들어갈 수 있다.
Authentication이 시큐리티세션 안에 들어 있다는것은 로그인된 상태라는 의미
Authentication에는 2개의 타입이 들어간다
UserDetails -> PrincipalUserDetails
OAuth2User
문제제기
1. 세션이 두개의 타입이라 컨트롤러에서 처리가 복잡해 질 수 있다.
일반 개발자 정의 로그인에서는 UserDetails타입으로 Authentication객체가 만들어지고
구글로그인처럼 소셜 로그인을 할 때에는 OAuth로그인시에는 OAuth2User 타입으로 Authentication객체가 생성되도록 해준다.
해결방법!
두개를 PrincipalDetials에 UserDetails, OAuth2User를 implements를 한다.
PrincipalDetails하나의 클래스 만으로도 구글, 일반 로그인 처리를 할 수 있다.
Principal안에다가 다중상속으로 처리 할 예정이다.
'학원수업 > 4월' 카테고리의 다른 글
4/29 수업정리 (0) | 2023.05.01 |
---|---|
04/24,25 국비학원 개발자과정-Spring Security (0) | 2023.04.25 |
04/21 국비학원 개발자수업 - 조인복습 (0) | 2023.04.21 |
4/18 국비학원 개발자과정 - 실시간 데이터베이스, fullcalendar 달력 구현하기 (2) | 2023.04.18 |
04/17 국비학원 개발자과정-실시간 데이터베이스 (0) | 2023.04.18 |
댓글