스프링 시큐리티란?
- 인증(Authentication)과 인가(Authorization) 기능을 가진 프레임워크이다.
- 보안을 위한 표준이며, 인터셉터, 필터 보단 스프링 시큐리티를 통해 구현하는 것을 권장하고 있다.
config.auth 패키지
- 시큐리티 관련 클래스는 이곳에 있다.
어노테이션 기반으로 개선하기
- 같은 코드가 반복되는 나쁜 코드를 개선해보자.
- 유지보수성이 떨어지는 것을 어노테이션으로 작성해서 바꿔보기! (직접 어노테이션을 만들 수 있다.)
세션 저장소로 DB 사용하기
- 세션이 내장 WAS의 메모리에 저장되므로, 애플리케이션을 재실행 하면 로그인이 풀린다. (항상 초기화된다.)
- 이는 배포될 때마다 톰캣이 재시작 되는 것이며, 2대 이상의 WAS가 구동되는 환경에선 세션 공유를 위한 추가 설정이 필요하다.
- 그러므로 DB를 세션 저장소로 여러 WAS간 공용 세션을 사용하는 방법이 사용된다.
spring.session.store-type=jdbc
application.properties에 세션 저장소를 jdbc로 선택하도록 위 코드를 추가하면 된다.
기존 테스트에 시큐리티 적용하기
- 시큐리티 옵션이 활성화되면 인증된 사용자만 API를 호출할 수 있다.
- 기존의 API 테스트 코드들이 모두 인증에 대한 권한을 받지 못하였으므로, 인증한 사용자가 호출한 것처럼 바꿔줘야 한다.
- src/main의 환경을 src/test환경에 가져오면 된다.
org.springframework.security:spring-security-test 등록
728x90
'개발 공부 기록 > 07. TIL' 카테고리의 다른 글
IntelliJ 키워드 - 꿀팁 및 단축키 정리 (0) | 2023.12.03 |
---|---|
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 TIL - 4장 머스테치 (1) | 2023.11.15 |
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 TIL - 3장 JPA (0) | 2023.11.03 |
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 TIL - 2장 테스트 코드 (1) | 2023.10.31 |
스프링 부트 3로 백엔드 입문하기 TIL - 5장 : ORM (JPA) (0) | 2023.10.24 |