SpringSecurity rememberme 기능 실현 과정 분석
2758 단어 SpringSecurityrememberme
앞에서 우리 가 인증 절 차 를 분석 할 때 언급 한 것 을 기억 하 십 니까?
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
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.