일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 시큐리티
- visualvm
- AWS
- CentOS
- DB
- 생성자 주입
- 웹개발
- Spring
- 쇼트유알엘
- 데이터베이스
- 개인프로젝트
- 남궁성과 끝까지 간다
- JWT
- MYSQL
- emqx
- 카프카
- 스웨거
- EC2
- 항해99
- java
- WEB SOCKET
- 프로그래머스
- 스파르타코딩클럽
- Spring Security
- JavaScript
- docker
- 스프링의 정석
- @jsonproperty
- Kafka
- 패스트캠퍼스
- Today
- Total
Nellie's Blog
[TIL-230126목] 스프링 시큐리티 공부.. 본문
배운점
1. WebSecurityConfigurerAdaptor클래스가 Deprecated된 문제를 해결해보기
시큐리티를 기본설정하는 SecurityConfig클래스는 WebSecurityConfigurerAdaptor라는 세부보안기능설정클래스를 상속받아서, configure 메소드를 오버라이딩해서 사용하는 방법으로 구현해 왔다. 그러나 이제는 사용할 수 없다.
SecurityFilterChain를 Bean으로 등록해서 사용해야 한다.
간단히 사용법 구/신버전을 비교해보자.
1. WebSecurityConfigurerAdaptor를 상속하여 cofigure메소드를 오버라이딩하는 방법
2. 직접 SecurityFilterChain , WebSecurityCostomizer를 bean으로 등록하는 방법
2. WebSecurity VS HttpSecurity 차이점
Spring Security는 기본적으로 모든 자원에 접근하는 요청에 대해서 인증 + 인가를 확인해서 자원에 접근할 수 있는 경우에만 값을 내려준다. 이렇게 인증 / 인가를 모두 검사하는 것이 좋을 것처럼 보이지만 필요하지 않는 경우가 있다. 예를 들어 정적인 자원들에 대한 값이다.
예를 들어 특정 URL에 접근했을 때, View가 렌더링 된다고 가정해보자. 이미 URL에 접근할 수 있다는 인가를 받으면 그 화면이 바로 랜더링이 되면 된다. 그렇지만 스프링 시큐리티는 기본적으로 모든 접근에 대해서 인증/인가를 검색하기 때문에 이 URL을 랜더링 하는데 필요한 정적인 파일(CSS / HTML / JS) 파일들을 모두 다시 한번 검사한다.
사실 이렇게 동작하게 되면 쓸데없는 일의 반복이 될 수 있기 때문에 정적인 파일에 한해서는 검사를 Skip할 수 있도록 하는 기원을 지원한다. Spring Security에서 지원하는 이 기능을 Web Ignore라고 한다.
Web Ignore와 PermitAll은 같아보이지만 다르다. Web Ignore와 permitAll() 모두 인증없이 접근이 가능하도록 한다는 점에서는 같은 점이 있다. 그렇지만 이 동작 과정을 들여다보면 근본적인 차이가 있다.
PermitAll은 인증이 필요없다고 하지만, 반드시 FilterSecurityInterceptor까지 온 다음에 DispatcherServlet으로 넘어간다. 이 말은, 비록 인증이 필요없다고 하지만 반드시 Spring Security가 제공하는 보안 필터를 거친다는 의미이다. 반대로 WebIgnore는 SpringSecurity가 제공하는 Filter를 거치지 않는다는 점이다.
https://yeees.tistory.com/119#recentComments
[항해99][강의정리] Spring 심화주차(W5) - 시큐리티(Security) 총정리
[목차] 1. Spring Security 란? 2. Spring Security 주요 컴포넌트 확인하기 3. Spring Security의 Default Form Login 방식 사용해보기 4. UserDetails, UserDetailsService Custom 해보기 5. 비밀번호 암호화 이해하고 적용하기 6.
yeees.tistory.com
느낀점
시큐리티에 대해 이해도가 많이 생긴 것 같다. 그래도 아직 모르는 부분이 많은 것 같다. 프로젝트도 얼른 진행해야 하는데..ㅠㅠ . 정보처리기사도 공부해야해서 더 빡세게 공부해야겠다.
'회고록' 카테고리의 다른 글
[TIL-230130월] 정보처리기사 필기 준비 시작,, 필기 1-2단원 공부 (0) | 2023.01.31 |
---|---|
[TIL-230127금] 스프링 시큐리티 공부 (0) | 2023.01.28 |
[TIL-230125수] 인텔리제이에서 MySQL연동, 시큐리티 접근 문제 트러블슈팅 (0) | 2023.01.26 |
[TIL-230124화] 개인프로젝트 어드민 페이지 회원가입/ 로그인 (jwt사용) (0) | 2023.01.24 |
[TIL-230123월] (0) | 2023.01.24 |