개발 공부 기록/07. TIL

스프링 부트와 AWS로 혼자 구현하는 웹 서비스 TIL - 5장 스프링 시큐리티

박세류 2023. 11. 25. 15:23

스프링 시큐리티란? 

  • 인증(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