1)WriteCheckInterceptor.java
package kr.spring.interceptor;
import javax.annotation.Resource;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import kr.spring.board.domain.BoardVO;
import kr.spring.board.service.BoardService;
public class WriterCheckInterceptor extends HandlerInterceptorAdapter{
private Logger log = Logger.getLogger(this.getClass());
@Resource
private BoardService boardService;
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler) throws Exception{
if(log.isDebugEnabled()) {
log.debug("==로그인 아이디와 작성자 아이디 일치 여부 체크==");
}
int num = Integer.parseInt(request.getParameter("num"));
BoardVO board = boardService.selectBoard(num);
//로그인 아이디 구하기
HttpSession session = request.getSession();
String user_id = (String)session.getAttribute("user_id");
if(log.isDebugEnabled()) {
log.debug("<<user_id>> : " + user_id);
log.debug("<<작성자 id>> : " + board.getId());
}
//로그인 아이디와 작성자 아이디 일치 여부 체크
if(user_id == null || !user_id.equals(board.getId())) {
if(log.isDebugEnabled()) {
log.debug("<<로그인 아이디와 작성자 아이디 불일치>>");
}
//포워드 형식으로 view 호출
RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/views/common/notice.jsp");
dispatcher.forward(request, response);
return false;
}
if(log.isDebugEnabled()) {
log.debug("<<로그인 아이디와 작성자 아이디 일치>>");
}
return true;
}
}
2)servlet-context.xml
3)notice.jsp
반응형
'IT > Java Spring' 카테고리의 다른 글
ch10.SpringMVC 종합 21.글삭제 (0) | 2020.06.30 |
---|---|
ch10.SpringMVC 종합 20.글수정 (0) | 2020.06.29 |
ch10.SpringMVC 종합 18.첨부파일 추가(이미지) (0) | 2020.06.29 |
ch10.SpringMVC 종합 17.첨부파일 추가(다운로드) (0) | 2020.06.29 |
ch10.SpringMVC 종합 16.조회수 증가 (0) | 2020.06.29 |