Spring Security 사용해보기

개발자·2022년 4월 15일
0
post-thumbnail

요즘 한창 이커머스에 관심이 많아져서

회원가입과 주문이 가능한 간단한 쇼핑몰 사이트를 만들고 있다.

너무 핫한 분야이기도 하고

예전부터 뭔가 만들어서 팔고 싶은 욕심이 있었는데

이참에 잘 구현해 놓으면 나중에 요긴하게 쓸 일이 있을 것 같기도...?(기대)

암튼 잡설은 각설하고 본론으로 들어가보자.


Spring 생태계에는 사실 Spring Framework만 있는게 아니라

Boot, Cloud, Webflux 등등 엄청나게 많은 서비스들이 있다.

Security도 그 중에 하나이다.

뭐 거창하게 설명할 필요가 있을까?

기본적으로 쇼핑몰 웹사이트를 생각해보자.

가장 흔한 예가 아마 무신사 쯤...?

로그인 하지 않은 유저가 접근할 수 있는 페이지들이 뭐뭐 있을까?

아마 메인 페이지부터 상품 리스트 페이지, 상품 상세 페이지, 고객센터 등등?

로그인을 하던 안하던 백번 천번 왔다갔다 할 수 있는 페이지들이다.

반면에 로그인을 해야만 접근 할 수 있는 시크릿한 페이지들도 있다.

마이페이지나 주문내역과 같은 특정 회원에게만 공개되는 페이지들 말이다.

이것만 있을까? 상품 페이지를 관리하는 페이지에 접근 할 수 있는 관리자가 있을 것이고,

그 관리자들을 관리하는 웹사이트 총괄 관리자만 접근할 수 있는 페이지가 있을 것이다.(무한 참조...?)

이런 특정 페이지들에 접근하려면 ‘접근권한'을 필요로 하는데...!

웹사이트에서는 이런 페이지에 접근할 수 있는 사용자인지 아닌지

판단하기 위해 ‘Token’이라는 걸 발급해준다!

이쯤 설명했으면 대충 감 잡았으리라 생각한다.

Spring Security가 바로 이걸 발급해주고 관리하는 역할을 해주는 문지기 같은 놈이다.

사용법이야 파고들면 끝도 없고 무지하게 어렵겠지만...

특이하게도 이놈은 pom.xml에 Dependency 추가만으로도 사용이 가능하다.

아주 매력적인 친구임!

<!--Spring Security-->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-security</artifactId>
</dependency>

위의 코드를 복붙해서 입력만 해주면 바로 스프링 시큐리티 ON!!

프로젝트를 실행하고 메인 페이지에 접근을 시도하면 다음과 같은 페이지가 출력된다.

Spring Security에서 기본적으로 제공하는 옵션인데

접근권한이 없으니 바로 로그인창을 던져버린다. ㅠㅠ

회원가입 기능도 없는데 로그인은...?

할 수 있다!

Username은 user이고

Password는 console 창에 아주 친절하게 표기해준다.

이걸로 로그인을 하여 접근권한을 얻게 되면!

본인의 웹사이트에 다시 접근을 할 수 있게 된다!

이렇게 보면 스프링 시큐리티 별거 없는 것 같아 보이는데

별거 없다! 공부하면 다 쉽다!!

날러지 이즈 파워!! 하하하핳f

profile
I DEVELOP THEREFORE, I AM 😄

0개의 댓글