동일한 유저아이디가 존재할 경우

회원가입

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

Untitled

로그인

@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;
}

Untitled

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

Untitled

ssar로 로그인하였음