전체 글(278)
-
[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 -
[B -2-56] 스프링 시큐리티 3
게시물 조회와 로그인 처리 일반적인 경우라면 게시글의 조회 그 자체는 로그인 여부에 상관없이 처리되지만, 게시글의 조회 화면에서 현재 로그인한 사용자만이 수정/삭제 작업을 할 수 있는 기능이 활성화될 필요가 있다. 게시글의 작성자 본인만이 수정/삭제가 가능한 버튼이 보이게 구현 views/board get.jsp ...더보기 게시판 조회 게시글 조회 페이지 글 번호 작성자 제목 내용 수정 목록 댓글 목록 댓글 작성 × 댓글 등록 작성자 내용 일자 수정 삭제 등록 닫기 태그를 매번 매번 이용하기 불편하기때문에 로그인 관련 정보인 principal은 아예 JSP 내에서 pinfo 라는 이름의 변수로 설정해서 사용한다. 는 인증받은 사용자만이 영향을 받기 위해서 지정하고, 내부에서는 username과 게시글의..
2019.10.11