자동로그인

자동로그인은 대부분 쿠키(Cookie)를 이용해서 구현한다.

 

security-context.xml에 <security:remeber-me> 태그를 이용해서 기능을 구현합니다.

- key : 쿠키에 사용되는 값을 암호화하기 위한 키(key) 값

- data-source-ref : DataSource를 지정하고 테이블을 이용해서 기존 로그인 정보를 기록(옵션)

- rember-me-cookie : 브라우저에 보관되는 쿠키이름을 지정하미. 기본값 'rember-me'

- rember-me-parameter : 웹 화면에서 로그인할 때 'rember-me'는 대부분 체크 박스를 이ㅛㅇ해서 처리

 체크 박스 태그는 name 속성을 의미한다.

- tocken-validity-seconds : 쿠키의 유효시간을 지정함

 

데이터베이스를 이용하는 자동 로그인

스프링 시큐리티의 공식 문서를 확인하면 로그인 정보를 유지하는 테이블은 아래와 같은 스크립트로 구현되어 있음.

create table persistent_logins (
	username varchar(64) not null,
    series varchar(64) primary key,
    tocken varchar(64) not null,
    last_used timestamp not null);
		<security:logout logout-url="/logout" invalidate-session="true"/>
		
		<security:remember-me data-source-ref="dataSource" token-validity-seconds="604800"/>

로그아웃 부분과 rember-me 604800 7일 을 의미하는 시큐리티 태그를 넣어준다.

로그아웃시 세션을 제거할건가의 설정도 true

설정을 하고 보면 rember-me 토큰에 값이 들어온 것을 확인할 수 있다

로그아웃 시에는 자동 로그인하는 쿠키도 삭제를 해줘야 한다.

<security:logout logout-url="/logout" invalidate-session="true" delete-cookies="rember-me,JSESSION_ID" />

 

+ Recent posts