JSP - 30. 인증, 인가 적용한 게시판

갓김치·2020년 12월 30일
0

JSP+Spring

목록 보기
31/43

인증, 인가

인증
authentication
인가
authorization
신원확인자원에 대한 권한 획득 여부
two-factor 인증인증이 선행되어야함

단계

  1. 보호가 필요한 자원 식별
    1) db 보호자원테이블에 저장
  2. 사용자 접근레벨 설정 (일반사용자, 관리자 등)
    1) 접근레벨도 db에 저장
  3. 보호가 필요한 자원을 어느 레벨 사용자에게만 보여줄 것인지 (=인가정보)
    1) 보호자원과 레벨의 관계를 형성한 db 정보 필요

  1. 요청 들어옴
  2. 보호자원인지 확인
  3. 클라이언트의 인증 여부 판단 (로그인 판단) =필터-> 로그인 redirect
  4. 클라이언트의 인가여부 판단 (롤 판단) =필터


Spring Security도 필터

게시판

  1. 주제결정: 게시판 구현
  2. 요구사항 분석
  3. 사용자 분류, 유즈케이스분류 -> 유즈케이스 다이어그램
  4. 각 케이스에 맞는 프로세스 절차화 -> 시퀀스 다이어그램
  5. 데이터 설계 -> 개논물ERD
  6. 개발

1. 주제결정: 게시판 구현

2. 요구사항 분석

  • 게시글 쓰기, 수정, 삭제, 조회(목록조회, 상세조회), 추천
  • 파일 업다운로드 포함, 댓글 구조 포함(REPLY, 계층형 게시판 (답글)), 덧글 구조 포함(상세조회 시 밑의 댓글)

상세

  • 파일(업로드, 다운로드, 삭제) - 2개 이상 업로드 가능
  • 덧글(쓰기, 수정, 삭제, 목록조회) - 2개 이상

3. DB 설계

게시글 (원본/답글, BOARD)

  • 글번호 BO_NO NUMBER(6) PK
  • 내용 BO_CONTENT CLOB
  • 제목 BO_TITLE VARCHAR2(50) NN
  • 작성자 BO_WRITER VARCHAR2(20) NN
  • 날짜 BO_DATE DATE NN SYSDATE
  • 조회수 BO_HIT NUMBER(4) NN 0
  • 추천수 BO_REC NUMBER(4) NN 0
  • 비번 BO_PASS VARCHAR2(200) NN
  • 아이피(IPv6) BO_IP VARCHAR2(50) NN
  • 이메일 BO_MAIL VARCHAR2(20 CHAR)
  • 상위글번호 BO_PARENT NUMBER(6) -- 자기 참조형(OPTIONAL)
  • 첨부파일(N) -> 정규화 필요

첨부파일 (N, ATTACH)

  • latency time을 덜 발생시킬 수 있는 저장구조: 미들티어에 저장하고 메타데이터만 db에 저장
  • 파일은 글삭제되어도 CASCADE로 삭제하지않고 따로삭제해야함 -> 이진데이터 삭제도 같이 일어나야하기때문
  • 파일번호 ATT_NO NUMBER(6) PK
  • 글번호 BO_NO NUMBER(6) NN FK
  • 저장명 ATT_SAVENAME VARCHAR2(70 CHAR) NN
  • 원본파일명 ATT_FILENAME VARCHAR2(50 CHAR) NN
  • MIME ATT_MIME VARCHAR2(30 CHAR)
  • 파일크기 ATT_FILESIZE NUMBER(10) NN
  • 팬시크기 ATT_FANCY VARCHAR2(20) NN
  • 다운로드수 ATT_DOWNCOUNT NUMBER(4) NN 0

덧글 (N, REPLY)

  • 덧글번호 REP_NO NUMBER(6) PK
  • 작성자 REP_WRITER VARCHAR2(20 CHAR) NN
  • 날짜 REP_DATE DATE NN SYSDATE
  • 비밀번호 REP_PASS VARCHAR2(200) NN
  • 내용 REP_CONTENT VARCHAR2(100 CHAR)
  • 글번호 BO_NO NUMBER(6) NN FK CASCADE
  • 아이피 REP_IP VARCHAR2(50) NN

4. 단위 업무에 따른 uri

게시글&답글

  • 쓰기: /board/boardInsert.do
  • 수정: /board/boardUpdate.do
  • 삭제: /board/boardDelete.do
  • 목록조회: /board/boardList.do
  • 상세조회: /board/boardView.do
  • 추천: /board/recommend.do

첨부파일

  • 다운로드: /board/download.do

덧글

  • 쓰기: /reply/replyInsert.do
  • 수정: /reply/replyUpdate.do
  • 삭제: /reply/replyDelete.do
  • 조회: /reply/replyList.do

5. 아키텍처와 디자인패턴

profile
갈 길이 멀다

0개의 댓글