Spring Security

Feb 13, 2024
Spring Security

 
스프링에서 새 프로젝트를 만들 때 의존성을 선택하는 구간이 있다.
거기서 spring security를 선택하면 된다.
 
선택 못했다면 https://mvnrepository.com/ 여기 사이트에 들어가서 ‘security’ 검색.
notion image
Spring Boot Starter Security 들어가서 현재 자신의 버전과 맞는 버전 선택.
 
Gradle 클릭 후 복사해서 스프링에 Build Gradle에 dependencies에 붙여넣는다.
notion image
여기서 버전이 맞지 않으면 오류가 날 수 있다.
어차피 버전을 적지 않으면 자동으로 맞춰주기 때문에 버전을 안 적는 것이 좋다.
notion image
 
이제 localhost:8080에 들어가보자.
notion image
암호가 걸려있는 것을 볼 수 있다.
 
notion image
아이디는 user, 비밀번호는 콘솔창에 있다.
이렇게 쓸 수는 없으니 커스터마이징을 해야한다.
 
본격적으로 Security를 배워보자.
Security의 핵심은 Security Filter를 공부하는 것이다.
기본적으로 네거티브전략이라서 Filter가 다 막는다.
그래서 우리는 필요한 것들만 풀어버릴 것이다.
 
notion image
톰캣필터 - 톰캣 - 시큐리티 필터(보안문지기 역할을 함) - 디스패처 서블릿 - 컨트롤러 - 리포지토리 - 데이터베이스
(톰캣 - 스프링)
 
Tomcat의 Filter는 D.I가 안 된다. (DB에 접근이 안 됨)
나중에는 D.I해서 DB에 접근하기 위해 Tomcat의 Filter를 스프링 내부로 끌어당긴다.
하지만 지금은 끌어쓰지 않을 것.
 
지금은 Security Filter에서 다 막으니까(네거티브전략) 커스터마이징을 하면 된다.
 
notion image
 
notion image
팁으로, 인증이 필요한 페이지는 /api를 앞에 붙이면 된다.
하지만 지금은 때가 아니니 나중에 써보자.
 
notion image
 
notion image
 
notion image
 
컨트롤러에서 인증 체크를 하지 않아도 된다.
 
파라미터에 @AuthenticationPrincipal MyLoginUser myLoginUser 넣어서 myLoginUser를 사용
Share article

stwin755