스프링 시큐리티 기초 따라가기 (2) - Remember Me
출처: http://hamait.tistory.com/327 [HAMA 블로그]
출처: http://hamait.tistory.com/327 [HAMA 블로그]
Remember Me 기능
Remember Me 기능이란 사용자 세션이 종료(디폴트 30분?) 된 후에도 자동으로 로그인 할수있는
기능이다. 이것은 추가적인 쿠키를 저장 하는데 , 그 기간(디폴트 2주) 을 정하면 2주동안은 로그인 하지 않고도 인증할수있게된다. 쿠키는 username / expirationTime / password / key 와 이것들을 MD5 hash 로 인코딩한 정보를 포함한다.
Remember Me 는 2가지 방법으로 구현가능한데 , 이 게시물에서는 심플 해쉬 기반 쿠키로 만들었다.
1. security-context.xml 파일에 리멤버 미 설정 추가
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd">
<http auto-config='true' use-expressions="true">
<intercept-url pattern="/login" access="permitAll" />
<intercept-url pattern="/resources/**" access="permitAll" />
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
<form-login login-page="/login"
default-target-url="/monitering"
username-parameter="username"
password-parameter="password"
authentication-failure-url="/login?error"
always-use-default-target='true'
/>
<logout invalidate-session="true"
delete-cookies="JSESSIONID,SPRING_SECURITY_REMEMBER_ME_COOKIE"
logout-success-url="/login?logout" />
<remember-me key="wmoskey" token-validity-seconds="2419200"/> <!-- 4 주 -->
<!-- enable csrf protection -->
<csrf/>
</http>
<authentication-manager>
<authentication-provider user-service-ref="memberService"/>
</authentication-manager>
<beans:bean id="memberService" class="com.starkoff.wmos.auth.MemberService">
</beans:bean>
</beans:beans>
설명)
<remember-me key="wmoskey" token-validity-seconds="2419200"/> 를 추가하였다. (한줄이면됨)
key 와 유효기간 4주를 설정하였다.
delete-cookies="JSESSIONID,SPRING_SECURITY_REMEMBER_ME_COOKIE" 명시적으로 로그아웃
할때는 관련정보를 삭제하게했다.
출처: http://hamait.tistory.com/327 [HAMA 블로그]
출처: http://hamait.tistory.com/327 [HAMA 블로그]
'Web > 스프링' 카테고리의 다른 글
sitemesh 참조... 문서 ( 스크립트 로컬 선언 ) (0) | 2017.04.18 |
---|---|
[JSPF] Jsp Include 방식의 차이와 JSPF 설명 (0) | 2017.04.13 |
스프링 시큐리티가 적용이 안될때.. spring security 3.1 isAuthenticated() not working (0) | 2017.04.05 |
스프링 시큐리티 중복 세션 문제 (0) | 2017.04.05 |
스프링 시큐리티 csrf 태그라이브러리 (0) | 2017.04.03 |
댓글