스프링부터 쇼핑몰 프로젝트(4)

Study with cocochichi·2023년 11월 23일
post-thumbnail

🛒 스프링 시큐리티를 이용한 회원가입 및 로그인

  • 🛒 스프링 시큐리티 소개

    ✏️ 애플리케이션의 보안에서 중요한 두 가지

    • 인증 : 해당 리소스에 대해서 작업을 수행할 수 있는 주체인지 확인 하는 것
    • 인가 : 인증 과정 이후에 발생. 인가된 유저라면 해당 URL에 대한 권한이 있기 때문에 접근 가능한 것.
  • 🛒 스프링 시큐리티 설정 추가하기

		<!-- security dependency 의존성 추가 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
		</dependency>

➡️ 스프링 시큐리티에서 기본적으로 제공하는 아이디 : user
비밀번호 : 애플리케이션을 실행할 때마다 콘솔창에 출력
➡️ user 로그인 결과
➡️ 스프링 시큐리티에서 로그아웃 기능도 제공

  • 🛒 스프링 시큐리티 설정하기

  • 인증이 필요 ❌ : 상품 상세 페이지 조회
  • 인증이 필요 ⭕ : 상품 주문
  • 관리자 권한 필요 ⭕ : 상품 등록

➡️ 1,2) WebSecurityConfigurerAdapter를 상속받는 클래스에 @EnableWebSecurity 선언하면 SpringSecurityFilterChain이 자동으로 포함됨. WebSecurityConfigurerAdapter를 상속받아서 메소드 오버라이딩을 통해 보안 설정을 커스터마이징 할 수 있음.
➡️ 3) http 요청에 대한 보안을 설정. 페이지 권한 설정, 로그인 페이지 설정, 로그아웃 메소드 등에 대한 설정을 작성함.
➡️ 4) 비밀번호를 데이터베이스에 그대로 저장했을 경우, 데이터베이스가 해킹당하면 정보 노출 위험 ➡️ BCryptPasswordEncoder의 해시 함수를 이용하여 비밀번호를 암호화하여 저장함. 빈으로 등록해서 사용함.

0개의 댓글