jnk1m
Foliage IT
jnk1m
전체 방문자
오늘
어제
  • 분류 전체보기 (209)
    • Today I Learned (34)
    • Java (47)
    • Database (15)
    • [NHN Academy] (27)
    • Spring (47)
    • HTML + CSS + JavaScript (11)
    • JSP (3)
    • Node.js (10)
    • React Native (2)
    • 기타 (8)
    • 스크랩 (5)

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
글쓰기 / 관리자
jnk1m
Spring

[스프링 시큐리티] 스프링 시큐리티의 흐름

[스프링 시큐리티] 스프링 시큐리티의 흐름
Spring

[스프링 시큐리티] 스프링 시큐리티의 흐름

2022. 12. 7. 19:17

Redis Template

 

Redis 데이터 액세스 코드를 단순화하는 도우미 클래스로, Redis 저장소에서 지정된 개체와 기본 이진 데이터 간에 자동 직렬화/역직렬화를 수행한다. 

 

>> 기본적으로 객체에 대해 Java 직렬화를 사용한다. 

>> 스레드로부터 안전하다.

 

 


 

 

Rest Template

 

(Spring Framework 5부터 Spring은 WebClient 라는 새로운 HTTP 클라이언트를 도입했습니다 .새 애플리케이션을 개발하거나 이전 애플리케이션을 마이그레이션하는 경우 WebClient 를 사용하는 것이 좋습니다 . 앞으로 RestTemplate 은 향후 버전에서 더 이상 사용되지 않습니다.)

 

정보는 왔다 갔다 하되 서버 사이드에서만 처리가 되게....

 

 

 


 

 

스프링 시큐리티의 인증 흐름. 

> AuthenticationFilter는 요청을 가로채고 인증 책임을 AuthenticationManager에 위임한다.

>> AuthenticationManager는 인증 논리를 구현하기 위해 AuthenticationProvider를 이용한다. 

>>> AuthenticationProvider는 사용자 이름과 암호를 확인하기 위해 UserDetailsService 및 PasswordEncoder를 이용한다. 

 

 

  • 인증 필터는 인증 요청을 인증 관리자에게 위임하고 응답을 바탕으로 보안 컨텍스트를 구성한다.
  • 인증 관리자는 인증 공급자를 이용해 인증을 처리한다.
  • 인증 공급자는 인증 논리를 구현한다.
  • 인증 공급자는 사용자 관리 책임을 구현하는 사용자 세부 정보 서비스를 인증 논리에 이용한다.
  • 인증 공급자는 암호 관리를 구현하는 암호 인코더를 인증 논리에 이용한다.
  • 보안 컨텍스트는 인증 프로세스 후 인증 데이터를 유지한다.

 

AuthenticationProvider

- 인증 논리를 정의하고 사용자와 암호의 관리를 위임한다. AuthenticationProviderd의 기본 구현은 UserDetailsService 및 PasswordEncoder에 제공된 기본 구현을 이용한다. 

@Bean
public AuthenticationProvider authenticationProvider(CustomUserDetailsService customUserDetailsService) {
    DaoAuthenticationProvider authenticationProvider = new DaoAuthenticationProvider();
    authenticationProvider.setUserDetailsService(customUserDetailsService);
    authenticationProvider.setPasswordEncoder(passwordEncoder());

    return authenticationProvider;
}
@Bean 어노테이션은 메서드가 반환한 인스턴스를 스프링 컨텍스트에 추가하도록 스프링에 지시한다. 

UserDetailsService

- 사용자에 관한 세부 정보는 UserDetailsService 계약을 구현하는 객체가 관리한다

 

PasswordEncoder

- 암호를 인코딩한다

- 암호가 기존 인코딩과 일치하는지 확인한다

 

>> AuthenticationProvider는 인증 논리를 구현하고 사용자 관리와 암호 관리를 각각 UserDetailsService 및 PasswordEncoder에 위임한다. 

 

• 스프링 시큐리티를 애플리케이션의 종속성으로 추가하면 스프링 부트가 약간의 기본 구성을 제공한다.

•인증과 권한 부여를 위한 기본 구성 요소인 userDetailsService. PasswordEncoder, AuthenticationProvider를 구현했다.

• user 클래스로 사용자를 정의할 수 있다. 사용자는 사용자 이름, 암호, 권한을 가져야 한다. 권한은 사용자가 애플리케이션의 컨텍스트에서 수행할 수 있는 작업을 지정한다.

• 스프링 시큐리티는 UserDetailsService의 간단한 구현인 InMemoryuserDetailsManager를 제공한다.
userDetailsService의 인스턴스와 같은 사용자를 추가해서 애플리케이션의 메모리에서 사용자를 관리할 수 있다.

• NoOpPasswordEncoder는 PasswordEncoder 계약을 구현하며 암호를 일반 텍스트로 처리한다. 이 구현은 학습 예제와 개념 증명에 적합하지만 운영 단계 애플리케이션에는 적합하지 않다.

• AuthenticationProvider 계약을 이용해 애플리케이션의 맞춤형 인증 논리를 구현할 수 있다.

 

*도서 [스프링 시큐리티 인 액션] 을 읽고 정리한 내용입니다*

http://www.yes24.com/Product/Goods/112200347

 

스프링 시큐리티 인 액션 - YES24

모든 스프링 개발자에게 권장하는 스프링 시큐리티 필수 가이드!보안은 타협할 수 없는 중요한 요소다. 스프링 시큐리티로 안전하게 데이터를 전송하고 자격 증명을 검증하며 공격을 방지하는

www.yes24.com

 

  • Redis Template
  • Rest Template
'Spring' 카테고리의 다른 글
  • [에러] Interface 기반 DTO Projection NULL 에러 원인과 해결 방법
  • [스프링 시큐리티] 사용자 관리 UserDetails, UserDetailsService, UserDetailsManager
  • NHN mart
  • Request Method 반환 값 & score 3일차 과제 메모

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.