[내일배움캠프_Spring] 자바 Spring 입문_Spring Security 주요 컴포넌트_230131

2023. 2. 1. 00:55·스파르타 부트캠프(spring)

Spring Security 와 Filter

spring security

  • 요청이 들어오면 Servlet FilterChain을 자동으로 구성한 후 거치게 함
  • 필터는 클라이언트 요청이 전달되기 전후의 URL패턴에 맞는 모든 요청에 필터링을 해줌
  • 보안 검사를 통해 올바른 요청이 아닐 경우 차단

->따라서 Spring Security는 이런한 기능을 활용하기위해 Filter를 사용하여 인증/인가를 구현하고 있다.

 

SecurityFilterChain

: Spring 의 보안 Filter를 결정하는데 사용되는 Filter

->session, jwt 등의 인증 방식 들을 사용하는데 필요한 설정을 완전 분리할 수 있는 환경 제공

 

AbstractAuthenticationProcessingFilter

  • 사용자의 credential을 인증하기 위한 베이스 Filter

 

UsernamePasswordAuthenticationFilter

  • AbstractAuthenticationProcessingFilter를 상속한 Filter
  • 기본적으로 아래와 같은 Form Login 기반을 사용할 때 username 과 password 확인하여 인증한다.
  • Form Login 기반은 인증이 필요한 URL 요청이 들어왔을 때 인증이 되지 않았다면 로그인페이지를 반환

SecurityContextHolder

  • 스프링 시큐리티로 인증을 한 사용자의 상세 정보를 저장

Authentication

  • 현재 인증된 사용자(SecurityContext에서 가져올 수 있다.)
  • principal : 사용자를 식별한다. Username/Password 방식으로 인증할 때 보통 UserDetails 인스턴스
  • credentials : 주로 비밀번호, 대부분 사용자 인증에 사용하고 비움
  • authorities : 사용자에게 부여한 권한을 GrantedAuthority 로 추상화하여 사용

 

UserDetailsService

  • UserDetailsService는 username/password 인증방식을 사용할 때 사용자를 조회하고 검증한 후 UserDetails를 반환
  • Custom하여 Bean으로 등록 후 사용 가능하다.

 

UserDetails

  • 검증된 UserDetails는 UsernamePasswordAuthenticationToken 타입의 Authentication를 만들 때 사용되며 해당 인증객체는 SecurityContextHolder에 세팅된다.
  • Custom하여 사용가능하다.

'스파르타 부트캠프(spring)' 카테고리의 다른 글

[내일배움캠프_Spring] 자바 Spring 입문_localhost:8080 에러_230203  (0) 2023.02.03
[내일배움캠프_Spring] 자바 Spring 입문_스프링 시큐리티 어노테이션_230201  (0) 2023.02.01
[내일배움캠프_Spring] 자바 Spring 입문_CI / CD_230130  (0) 2023.01.30
[내일배움캠프_spring] 주간회고 WIL - 12주차  (0) 2023.01.30
[내일배움캠프_Spring] 자바 Spring 입문_OAuth_230127  (0) 2023.01.30
'스파르타 부트캠프(spring)' 카테고리의 다른 글
  • [내일배움캠프_Spring] 자바 Spring 입문_localhost:8080 에러_230203
  • [내일배움캠프_Spring] 자바 Spring 입문_스프링 시큐리티 어노테이션_230201
  • [내일배움캠프_Spring] 자바 Spring 입문_CI / CD_230130
  • [내일배움캠프_spring] 주간회고 WIL - 12주차
yeah구리
yeah구리
백엔드를 공부하는 초심자입니다.
  • yeah구리
    개발일지_헤맨만큼 내땅이다
    yeah구리
  • 전체
    오늘
    어제
    • 분류 전체보기 (114)
      • 스파르타 부트캠프(spring) (75)
      • 스파르타 기술면접 (10)
      • 코딩연습 (0)
      • 항해 (10)
      • 개발일지 (4)
        • 개인 회고 (1)
        • 개발로그 (실무) (2)
      • 공부노트 (0)
      • 코딩테스트 (0)
        • 프로그래머스 (0)
        • 백준 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    비전공개발자 #개발로그 #커리어
    X(Twitter) API #캐싱 #트러블슈팅 #개발
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
yeah구리
[내일배움캠프_Spring] 자바 Spring 입문_Spring Security 주요 컴포넌트_230131
상단으로

티스토리툴바