Project B (SPMS)/Project B 파트7(9)
-
[B -2-62] 스프링 시큐리티 9
프로젝트에 적용된 템플릿에 로그인 페이지 링크는 includes 폴더 내에 header.jsp 에 정의되어있다. header.jsp를 수정해서 스프링 시큐리티를 이용하도록 수정하고, 로그인한 상태에서는 로그아웃 페이지로 이동한다. 로그아웃 페이지 : /customLogout views/includes header.jsp 더보기 Toggle navigation SPMS PROJECT B John Smith Yesterday Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eleifend... John Smith Yesterday Lorem ipsum dolor sit amet, consectetur adipiscing elit. ..
2019.10.12 -
[B -2-61] 스프링 시큐리티 8
자동 로그인 (remember-me) 최근의 웹페이지들은 자동 로그인 이나 로그인 기억하기 라는 이름으로 한 번 로그인하면 일정 시간동안 다시 로그인을 안해도 되는 기능을 갖고 있다. 이 기능은 거의 대부분 쿠키(Cookie)를 이용해서 구현된다. 스프링 시큐리티의 경우 remember-me 기능을 메모리상에서 처리하거나, 데이터베이스를 이용하는 형태로 약간의 설정만으로 구현이 가능하다. 시큐리티 자동 로그인 속성은 다음과 같다 key : 쿠키에 사용되는 값을 암호화하기 위한 키 값 data-source-ref : 데이터소스를 지정하고 테이블을 이용해서 기존 로그인 정보를 기록 remember-me-cookie : 브라우저에 보관되는 쿠키의 이름을 지정한다. 기본값은 remember-me 이다. reme..
2019.10.12 -
[B -2-60] 스프링 시큐리티 7
댓글 수정 댓글 수정은 기존에는 댓글 내용만 전달했지만, 댓글의 작성자가 같이 전송되도록 수정한다. views/board get.jsp modalModBtn 자바스크립트 클릭 함수 ...더보기 게시판 조회 게시글 조회 페이지 글 번호 작성자 제목 내용 수정 목록 댓글 목록 댓글 작성 × 댓글 등록 작성자 내용 일자 수정 삭제 등록 닫기 기존엔 댓글 내용만 전송했지만, 댓글 작성자가 같이 전송되도록 수정한다. src/main/java com.spms.controller ReplyController.java modify() ...더보기 package com.spms.controller; import org.springframework.http.HttpStatus; import org.springframewo..
2019.10.12 -
[B -2-59] 스프링 시큐리티 6
댓글 삭제 댓글 삭제는 자신이 작성한 댓글만 삭제 가능하게 해야한다. 화면에서는 자바스크립트를 이용해서 모달창의 댓글 작성자 정보와 현재 로그인한 사용자가 같은지 비교해서 같은 경우에만 Ajax로 댓글을 삭제할 수 있게 한다. 만약 자신이 작성한 댓글이 아닌 경우나 로그인하지 않은 경우에는 삭제할 수 없게 제한해야 한다. views/board get.jsp modalRemoveBtn 자바스크립트 함수 처리 ...더보기 게시판 조회 게시글 조회 페이지 글 번호 작성자 제목 내용 수정 목록 댓글 목록 댓글 작성 × 댓글 등록 작성자 내용 일자 수정 삭제 등록 닫기 기존과 달리 댓글 작성자 항목을 같이 전송해야하므로 코드 수정이 불가피하다. 댓글 삭제 시 기존에는 rno와 같이 댓글 번호만 전송했지만, 원래 ..
2019.10.12 -
[B -2-58] 스프링 시큐리티 5
댓글기능에서의 Ajax 댓글의 경우 모든 동작이 Ajax를 통해 이뤄지기때문에 화면에서도 수정되어야 하는 부분이 있고, 서버 쪽에서도 변경될 부분이 꽤 많이 있다. 우선 서버쪽에서는 ReplyController 가 댓글에 대한 보안 원칙을 다음과 같이 설계할 수 있다. 댓글의 등록 : 로그인한 사용자만이 댓글을 추가할 수 있게 한다. 댓글의 수정과 삭제 : 로그인한 사용자와 댓글 작성자의 아이디를 비교해서 같은 경우에만 댓글을 수정 / 삭제할 수 있다. 브라우저쪽에서의 달라지는 부분 댓글의 등록 : CSRF 토큰을 같이 전송하도록 수정해야 한다. 댓글의 수정 / 삭제 : 기존의 댓글 삭제에는 댓글 번호만으로 처리했는데, 서버 쪽에서 사용할 것이므로 댓글 사용자를 같이 전송하도록 수정해야 한다. 댓글 등록..
2019.10.12 -
[B -2-57] 스프링 시큐리티 4
게시글의 수정 및 삭제 게시글의 수정 및 삭제는 브라우저에서는 로그인한 사용자만 접근할 수 있지만, 사용자가 URL을 조작해서도 접근이 가능하기 때문에 화면과 POST 방식으로 처리되는 부분에서 CSRF 토큰과 스프링 시큐리티를 적용한다. 게시글의 수정과 삭제에서 신경쓰이는 부분은 게시글의 수정과 삭제는 현재 로그인한 사용자와 게시글의 작성자가 동일한 경우에만 할 수 있다는 것이다. 이 처리를 과거에는 인터셉터로 처리했지만, @PreAuthorize의 경우에는 표현식으로 처리 가능하다. views/board modify.jsp ...더보기 게시판 수정 게시글 수정 페이지 글 번호 등록일자 수정일자 작성자 제목 내용 수정 삭제 목록 우선 상단에 스프링 시큐리티 태그 라이브러리를 쓸 수 있게 설정하고, PO..
2019.10.11