Spring Security 로그 인 인증 프로 세 스 원본 분석
Spring Security 의 로그 인 인증 프로 세 스 핵심 은 필터 체인 입 니 다.요청 이 도 착 했 을 때 필터 체인 의 순서에 따라 순서대로 처리 하고 모든 필터 체인 의 검증 을 통 해 API 인터페이스 에 접근 할 수 있 습 니 다.
SpringSecurity 는 다양한 로그 인 인증 방식 을 제공 합 니 다.예 를 들 어 다음 과 같은 필터 로 이 루어 집 니 다.
2.소스 코드 와 결합 하여 로그 인 검증 절 차 를 설명 합 니 다.
사용자 이름,비밀번호 로그 인 방식 을 예 로 들 어 Spring Security 의 로그 인 인증 절 차 를 설명 합 니 다.
2.1 UsernamePasswordAuthenticationFilter
이 필 터 는 사용자 의 기본 정보(사용자 이름,비밀번호)를 봉인 하고 로그 인 폼 데이터 가 관련 정 보 를 받 는 것 을 정의 합 니 다.예:
2.2 Abstract AuthenticationProcessingFilter 의 doFilter 방법의 검증 과정
UsernamePassword AuthenticationFilter 는 추상 적 인 클래스 인 Abstract AuthenticationProcessingFilter 를 계승 합 니 다.이 추상 적 인 클래스 는 검증 성공 과 검증 실패 의 처리 방법 을 정의 합 니 다.
2.3 검증 에 성공 한 Handler 와 검증 에 실패 한 handler
인증 이 성공 하거나 실패 한 처리 방법 을 사용자 정의 해 야 할 때 AuthenticationSuccessHandler 나 Authenticationfailure Handler 인 터 페 이 스 를 실현 해 야 한 다 는 것 이다.
3.로그 인 검증 내부 세부 사항
3.1 다양한 인증 방식 의 관리 Provider Manager
Provider Manager 는 AuthenticationManager 에 계승 되 는 로그 인 인증 의 핵심 클래스 입 니 다.Provider Manager 는 여러 개의 AuthenticationProvider 를 보관 하여 다양한 유형의 로그 인 인증 에 사용 합 니 다.예 를 들 면:
……
private List
……
다음은 Provider Manager 의 핵심 소스 입 니 다.서로 다른 로그 인 인증 을 옮 겨 다 니 는 AuthenticationProvider 입 니 다.이러한 방식 이 지 원 될 때 만 구체 적 인 로그 인 인증 논 리 를 실행 합 니 다.
3.2 로그 인 인증 인터페이스 인증 공급 자
public interface AuthenticationProvider {
Authentication authenticate(Authentication var1) throws AuthenticationException;
boolean supports(Class<?> var1);
}
AuthenticationProvider 의 실현 클래스 는 구체 적 인 로그 인 검증 논 리 를 정의 합 니 다.3.3 데이터베이스 에 사용자 정보 불 러 오기 DaoAuthenticationProvider
public class DaoAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider {
데이터베이스 에서 사용자 정보 원본 가 져 오기따라서 사용자 정 보 를 불 러 와 로그 인 인증 을 해 야 할 때 UserDetailsService 인 터 페 이 스 를 실현 하고 loadUserByUsername 방법 을 다시 써 야 합 니 다.인 자 는 사용자 가 입력 한 사용자 이름 입 니 다.반환 값 은 User Details 입 니 다.
총결산
위 에서 말씀 드 린 것 은 편집장 님 께 서 소개 해 주신 Spring Security 로그 인 인증 절차 원본 입 니 다.여러분 께 도움 이 되 셨 으 면 합 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.