로그인을 종료할 때session의 데이터를 비웁니다

로그인 종료를 마쳤을 때, 나는 이전에는 점프하는login일 뿐이었다.jsp 페이지만 있으면 됩니다. 그러나 이렇게 하면 매우 큰 안전 위험이 존재할 수 있습니다. 그래서 종료할 때 우리는session에 존재하는 대상 등 데이터를 모두 비운 다음에 로그인 페이지로 돌아갑니다. 다음은session에 있는 데이터를 비우는 몇 가지 절차입니다.


1. 먼저 로그인에 성공할 때 우리는 보통session에 현재 로그인한 대상의 정보를 저장합니다. 뒤에 있는 일부 기능을 편리하게 사용할 수 있습니다. 여기에는 많은 소개를 하지 않고 코드를 붙여서 보실 수 있습니다.

// 
	@RequestMapping("login")
	@ResponseBody
	public Users login(String uname,String upwd,HttpSession httpsession){
		Users user = userservice.selectOne(uname, upwd);
		if(user!=null){
			httpsession.setAttribute("user", user);
		}
		return user;
	}

2. 기능을 종료하는 방법에서 우리는session의 데이터를 비우는 작업을 수행해야 한다. 우선Enumeration의 대상으로 모든session의 정보를 얻고 순환을 사용하며removeAttribute()의session 삭제 작업을 실행하고 마지막으로 로그인 페이지로 이동한다.

<script type="text/javascript">
		function out(){
			var result = confirm(" ?");
			if(result){
				location.href="/tologout";
			}
		}
	script>
// 
	@RequestMapping("tologout")
	public String tologout(HttpServletRequest request){
		Enumeration em = request.getSession().getAttributeNames();
		while(em.hasMoreElements()){
			request.getSession().removeAttribute(em.nextElement().toString());
		}
		return "login";
	}

좋은 웹페이지 즐겨찾기