SpringSecurity rememberme 기능 실현 과정 분석

내 기능 원리 분석 기억 해.
앞에서 우리 가 인증 절 차 를 분석 할 때 언급 한 것 을 기억 하 십 니까?

AbstractRemember MeServices 대상 의 loginSuccess 방법 을 계속 추적 합 니 다.

위의 if 판단 중의 rememberMerequired 방법 을 눌 러 현재 클래스 에 있 습 니 다:

위의 방법 이 true 로 돌아 가면 페이지 가 내 옵션 을 기억 하 는 것 을 선택 한 것 을 나타 낸다.
계속 호출 하 는 방법 에 따라 PersistentTokenBased Remember MeServices 의 onLogin Success 방법 을 찾 습 니 다.

name 과 value 속성의 값 을 잘못 쓰 지 않도록 주의 하 세 요!

먼저 테스트 를 해 보 세 요.인증 이 통과 되면 브 라 우 저 를 끄 고 페이지 를 다시 열 면 인증 이 필요 합 니 다!왜 소 용이 없 지?
remember me 기능 에 사용 되 는 필터 Remember Me AuthenticationFilter 가 기본적으로 켜 지지 않 기 때 문 입 니 다!
remember me 필터 열기

<security:remember-me token-validity-seconds="60"></security:remember-me>
설명:Remember MeAuthenticationFilter 의 기능 은 매우 간단 합 니 다.브 라 우 저 를 열 때 인증 여 부 를 자동 으로 판단 합 니 다.없 으 면.
autoLogin 을 호출 하여 자동 인증 을 진행 합 니 다.

remember me 안전성 분석
제 기능 이 편리 하 다 는 것 을 기억 하 세 요.하지만 안전성 은 걱정 입 니 다.쿠키 는 클 라 이언 트 에 저장 되 어 있 기 때문에 훔 치기 쉽 고
쿠키 의 값 은 사용자 이름,비밀번호 등 민감 한 데이터 와 관련 이 있 습 니 다.암호 화 되 었 지만 민감 한 정 보 를 클 라 이언 트 에 저장 하 는 것 은 안전 하지 않 습 니 다.그렇게
이 기능 을 즐겨 사용 하 는 사람 에 게 사 이 트 를 다 사용 하면 즉시 수 동 으로 로그 인 을 종료 하고 인증 정 보 를 비 워 야 한 다 는 것 을 알려 야 한다.
그 밖 에 SpringSecurity 는 remember me 의 또 다른 상대 적 으로 안전 한 실현 체 제 를 제공 했다.클 라 이언 트 의 쿠키 에 하나만 저장 합 니 다.
무의미 한 암호 화 문자열(사용자 이름,비밀번호 등 민감 한 데이터 와 무관)을 db 에 저장 하고 이 암호 화 문자열-사용자 정보의 대응 관 계 를 자동 으로 로그 인 합 니 다.
쿠키 에 있 는 암호 화 문자열 을 사용 하여 db 에 검증 하고 통과 하면 자동 으로 로그 인 해 야 통과 합 니 다.
영구 화 remember me 정보
시 계 를 만 듭 니 다.이 표 의 이름과 필드 가 고정 되 어 있 으 니 수정 하지 마 십시오.

 <security:remember-me token-validity-seconds="60"
               data-source-ref="dataSource"
     remember-me-parameter="remember-me"></security:remember-me>

CREATE TABLE `persistent_logins` (
`username` varchar(64) NOT NULL,
`series` varchar(64) NOT NULL,
`token` varchar(64) NOT NULL,
`last_used` timestamp NOT NULL,
PRIMARY KEY (`series`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기