쇼핑몰 만들기 프로젝트 - spring security와 로그인

yeom yaloo·2023년 3월 29일
0

쇼핑몰

목록 보기
6/19


1. spring security

  • 인증, 권한 부여 및 기타 보안 기능을 제공하는 Java/Java EE 프레임워크

인증(Authentication), 인가(Authorization)?

  • 인증: 해당 사용자를 확인하는 작업
  • 인가: 해당 사용자의 권한을 확인하는 작업

2. spring security을 이용한 로그인?

2-1. 스프링 시큐리티와 필터

  • 스프링 시큐리티의 경우엔 필터를 사용해서 해당 작업들을 진행시킨다.

    📌출처: https://spring.io/guides/topicals/spring-security-architecture/
  • 즉, 인증 인가 작업을 진행할 땐(스프링 사용자에 한해서는) 스프링 시큐리티를 사용할 것이고 이를 위해선 필터 작업이 필요하다.(직접 안 해도 되지만 이럴 경우 세션이며 리다이렉트며 관리해야 할 일이 많아지게 된다)

2-2. 로그인 폼을 사용할 경우?

  • 로그인 폼을 사용해서 로그인을 진행한다면 인증 처리는 아래와 같이 진행될 것이다.
  • 일단 인증처리를 위한 필터로는 UsernamePasswordAuthenticationFilter를 사용해서 진행하게 될 것이다.
    (다른 authenticationFilter는 로그인 폼을 사용할 경우가 아닌 다른 경우에 사용하게 된다. 로그인 폼을 사용할 경우엔 이 필터를 사용해서 인증을 진행)

1. UsernamePasswordAuthenticationFilter

  • 해당 필터를 상속받거나 해당 필터를 사용해서 로그인 폼을 사용해서 사용자 인증을 받으려 할 때를 작업해주어야 한다.
  • 쉽게 말해서 로그인 폼 인증 작업에 사용하는 필터라는 뜻

2. UsernamePasswordAuthenticationToken

  • user name, user password를 사용해서 해당 토큰을 발급 받는다.

3. AuthenticationManager

  • 발급받은 토큰을 authenticationManager에게 인가를 위임한다.

4. 후처리(성공, 실패)

성공한 경우

  • successfulAuthentication() 메소드를 상속받아 개발자 입맛에 맞게 구현해서 사용하면 됨
  • 인증 성공 후처리 작업을 진행

실패한 경우

  • 실패 핸들러를 작성해서 진행
  • 다시 로그인 페이지로 redirect 하는 등의 작업을 여기서 진행

profile
즐겁고 괴로운 개발😎

0개의 댓글