2012-05-05 4 views
1

저는 초보자입니다 ...Vaadin 세션 데이터 보존

응용 프로그램이 다시 초기화되면 세션 데이터를 보존 할 수 있습니까?

페이지 새로 고침 후 http 세션에서 무언가를 설정하려고했기 때문에 묻습니다.

WebApplicationContext ctx = (WebApplicationContext) this.getContext(); 
HttpSession session = ctx.getHttpSession(); 
Object attribute = session.getAttribute("user"); // <- always gets flushed 

이 방법을 사용자 인증에 사용하고 싶습니다. 가장 좋은 방법은 무엇입니까?

+0

의'세션 timeout' 태그의 값이 무엇 :

는 또한 내가 쿠키를 다루는 기사와 애드온을 발견? – Zakaria

+0

다시 초기화하면 무슨 뜻입니까? Application.close()를 호출? –

답변

3

앱이 다시 초기화 될 때 속성이 플러시되는 것이 정상입니다. 앱이 다시 초기화되면 새로운 Context가 만들어지기 때문입니다. 그래서 나는 (내가 아는 한) 웹 사이트에서 "remember-me"기능을 수행하는 기본 방법이기 때문에 세션 자체에 속성을 추가하는 대신 http 쿠키를 사용하도록 제안합니다. 또한 쿠키의 만료 날짜를 설정할 수 있습니다.

보안 관련 힌트로, 세션 전체에서 사용자 인증을 위해 데이터를 사용하지 않는 것이 좋습니다. 이는 쉽게 알아낼 수 있고 남용 할 수 있습니다. 당신의`web.xml` 파일에서

Book of Vaadin - explaining how to set Cookies

Vaadin Addon which deals with Cookies

관련 문제