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