동일한 유저아이디가 존재할 경우
회원가입
@PostMapping("/join")
public String join(UserRequest.JoinDTO requestDTO) {
try {
userRepository.save(requestDTO.toEntity());
} catch (DataIntegrityViolationException e) {
throw new Exception400("동일한 유저네임이 존재합니다.");
}
return "redirect:/";
}

로그인
@PostMapping("/login")
public String login(UserRequest.LoginDTO requestDTO) {
try {
User sessionUser = userRepository.findByUsernameAndPassword(requestDTO);
session.setAttribute("sessionUser", sessionUser);
} catch (EmptyResultDataAccessException e) {
throw new Exception401("유저아이디 혹은 비밀번호가 잘못되었습니다.");
}
return "redirect:/";
}
게시글 가는 부분 수정
@GetMapping("/board/{id}/update-form")
public String update(@PathVariable(name = "id") Integer id, HttpServletRequest request) {
Board board = boardRepository.findById(id);
if (board == null) {
throw new Exception404("해당 게시글을 찾을 수 없습니다.");
}
request.setAttribute("board", board);
return "board/update-form";
}
없는 게시글을 찾으려고 주소창에 적을 때 발동함
게시글 수정
@PostMapping("/board/{id}/update")
public String findById(@PathVariable Integer id, BoardRequest.UpdateDTO requestDTO) {
User sessionUser = (User) session.getAttribute("sessionUser");
Board board = boardRepository.findById(id);
if (sessionUser.getId() != board.getUser().getId()) {
throw new Exception403("게시글을 수정할 권한이 없습니다.");
}
boardRepository.updateById(id, requestDTO.getTitle(), requestDTO.getContent());
return "redirect:/board/" + id;
}

본인이 로그인한게 아니면 수정할 수 없다.

ssar로 로그인하였음