Re: 로그아웃 후 뒤로 버튼

1,763 views
Skip to first unread message
Message has been deleted

김성국

unread,
Apr 28, 2010, 1:24:05 AM4/28/10
to ks...@googlegroups.com
 
정말로 서버에서 모든 페이지에서 권한을 체크한다면 화면이 표시될 수 없지요..
 
뒤로가기 버튼의 경우 해당 페이지 내용을 캐쉬에 보관하고 있는 상태이므로 서버에 요청이 넘어가지도 않고 브라우져수준에서 다시 보여주기만 하는 경우입니다.
 
   response.setHeader("cache-control","no-cache");
   response.setHeader("expires","0");
   response.setHeader("pragma","no-cache");
해더에 위와 같은 정보를 추가한 페이지는 항상 서버에서 값을 가져옵니다.
권한체크영역의 모든 response에 포함되어 있어야 합니다. (로그아웃 페이지가 아니죠...)
 
공통 상위컨트롤러가 있다면 그쪽에서 추가하시면 될 듯 하고..
아니면 필터를 사용해서 전 페이지에 캐쉬를 꺼버릴 수도 있겠군요... (대신 서버 성능은 더 나빠질지도..)
 
도움이 되셨길 바랍니다.
 
2010년 4월 28일 오전 11:34, Bacsu337 <bacs...@gmail.com>님의 말:
안녕하십니까?
양수창이라고 합니다....

 항상 여러분들 메일을 보면서 여러가지로 도움을 받고 있습니다.

늘 감사히 생각하고 있습니다.

꾸벅!

각설 하고 , 현재 스프링 아이바티스 벨로시티 를 이용해 플잭을 진행 중입니다.

그런데 로그아웃후 뒤로가기 버튼을 누르면 이전 화면이 보이게 됩니다 .

서버쪽에서 모든 화면의 권한을 체크 합니다만 뒤로버튼의 강력함에 경이로워 할뿐 해결 방안을 찾지못하고 있습니다.

염치불구 조언을 부탁 드립니다.....

꾸벅 꾸벅 굽슨굽슨

나의 iPhone에서 보냄

--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.




--
-----------------------------------
sungko...@gmail.com
010-3339-1286
김 성국
-----------------------------------

--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.

sungchul park

unread,
Apr 28, 2010, 3:08:13 AM4/28/10
to ks...@googlegroups.com
뒤로가서 보는 것 자체가 문제인가요? 아니면 보는 건 문제가 안 되는데 그 상태에서 어떤 액션이 가능하기 때문에 문제인 건가요?
전자라면 브라우저 캐시를 조절하시면 되고요.
후자라면 모든 request에 대해 인증을 확실하게 하는 방법으로 푸는 수 밖에 없겠습니다. 스프링 시큐리티를 쓰시면 아주 쉽게 해결되겠죠.

브라우저 캐시 조절은 스프링의 WebContentInterceptor를 등록하시고 cacheSeconds 값을 0으로 지정하면 자동으로 cache control 관련 http 헤더가 설정됩니다.

http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/support/WebContentGenerator.html#setCacheSeconds%28int%29

3.0에 새로 도입된 mvc name space를 사용해서 인터셉터를 등록하면 편합니다.

http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/servlet/support/WebContentGenerator.html#setCacheSeconds%28int%29

그리고 만약 스프링 2.5 이후의 @MVC가 아니라 1.x 스타일의 구형 MVC를 사용하고 계시다면 개별 controller에 직접 cacheSeconds 지정을 할 수 있습니다.
Reply all
Reply to author
Forward
Message has been deleted
0 new messages