스프링

 

 

 


	<bean id="sampleInterceptor" class="com.macaronics.www.util.interceptor.SampleInterceptor" />	
	<bean id="loginInterceptor"	 class="com.macaronics.www.util.interceptor.LoginInterceptor" />
	<bean id="authInterceptor" class="com.macaronics.www.util.interceptor.AuthInterceptor"/>	
	<bean id="logOutIntercepor" class="com.macaronics.www.util.interceptor.LogOutIntercepor" />

 

	<!-- 인터셉터 -->
	<beans:import resource="interceptor-context.xml"/>
	
	
	<interceptors>
		<interceptor>
			<mapping path="/**"/>
			<beans:ref  bean="sampleInterceptor"/>
		</interceptor>		
		<interceptor>
			<mapping path="/member/login.do"/>
			<beans:ref bean="loginInterceptor"/>
		</interceptor>
		
		<interceptor>
			<mapping path="/board/write.do"/>
			<beans:ref bean="authInterceptor"/>
		</interceptor>
		
		<interceptor>
			<mapping path="/member/logout"/>
			<beans:ref bean="logOutIntercepor" />
		</interceptor>
	</interceptors>


 

 

public class SampleInterceptor extends HandlerInterceptorAdapter{

	private static final Logger logger=LoggerFactory.getLogger(SampleInterceptor.class);

	
	
	//요청 전 실행
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		request.setAttribute("ServerEnvironment", SqlServerEnvironment.SQL );
		
		saveDest(request);
		return true;
	}

	private void saveDest(HttpServletRequest request){
		
		String uri =request.getRequestURI();
		String query =request.getQueryString();
		
		if(query==null || query.equals("null")){
			query="";
		}else{
			query ="?"+query;
		}
		
		if(request.getMethod().equals("GET")){
			logger.info("logoutDest : " +(uri +query));
				
			//로그아웃 페이지면 저장 하지 않는다.
			String saveDest =uri+query;
			
			//displayFile 이미지를 뜻하는 uri 가 있으면 저장 하지 않는다.
			if(saveDest.equals("/member/logout") || saveDest.equals("/member/loginform.do")
				|| saveDest.equals("/member/login.do") || !saveDest.contains(".do")){	
				//저장 하지 않는다.
			}else{
				request.getSession().setAttribute("dest", saveDest);
				logger.info("saveLogoutDest : " +(uri +query));
			}
		}
	}
	
	
	//요청 후에 실행
	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
	
	}

	
	
	
	
		
}

 

 

 

		Object dest=session.getAttribute("dest");
				return "redirect:"+(dest !=null ? (String)dest : "/");
			

 


	@SuppressWarnings("unused")
	@RequestMapping(value="/login.do", method=RequestMethod.POST)
	public String memberLogin(@ModelAttribute MemberDTO  dto , HttpSession session , RedirectAttributes rttr){
		
		logger.info("login" + dto.toString());
		
		//이메일 체크 후 정보를 가져 온다.
		MemberDTO  member =memberService.checkLogin(dto);
		logger.info("DB 암호 해독   패스워드 " +  member.getUserpw());
		logger.info("유저 아이디   " +  member.getUserid());
		if(member !=null){
			// 널이 아니면  이메일이 존재 하면 등록된 가입자 이다.
			
			//패스워드 매치를 통해 다시 확인 한다
			if(passwordEncoding.matches(dto.getUserpw(), member.getUserpw())){
				// 로그인이 가능한 유저 확인
				
				MemberDTO loginUser = memberService.viewMember(member.getUserid());
				//가져온 member 를 세션에 저장한다.
				session.setAttribute("loginUser",  loginUser);
			
	
				Object dest=session.getAttribute("dest");
				return "redirect:"+(dest !=null ? (String)dest : "/");
			
			}else{			
				//비밀 번호 오류	
				rttr.addFlashAttribute("messageEmail", dto.getEmail());
				rttr.addFlashAttribute("errorMessage", "비밀 번호가 틀립니다.");
				return "redirect:loginform.do";
			}						
		}
		
		   //등록 되지 않은 이메일
			rttr.addFlashAttribute("errorMessage", "등록되지 않은 이메일 입니다.");
			return "redirect:loginform.do";			
	}
	
	
	
	@RequestMapping(value="/logout", method=RequestMethod.GET)
	public String memberLogOut(HttpSession session, HttpServletRequest request){
		
		Object dest=session.getAttribute("dest");
		session.invalidate();	
		return "redirect:"+(dest !=null ? (String)dest : "/");
	}
	

 

 

about author

PHRASE

Level 60  머나먼나라

무엇이 옳은 것인지 스스로 결정을 내려야 한다. 죄책감 없이 거절을 할 수 있게 된다면, 우리는 인생을 확실히 자신의 것으로 만들 수 있다. -앤드류 매튜스

댓글 ( 4)

댓글 남기기

작성