IT 공부/프로젝트 2024. 7. 22.
[Spring] 게시판 만들기 11 - 계정 생성하기 (Spring Security 3)
권한, 게시판(카테고리)를 만들기 이전에 해당 기능들을 이용할 수 있는 계정부터 만들 수 있게 페이지를 생성한다. 1. WEB-INF/jsp/admin 아래 페이지 생성 우선 계정관리 페이지를 하나 만든다user_management.jsp%@ page contentType="text/html;charset=UTF-8" language="java" %>%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>DOCTYPE html>html lang="en">head> meta charset="UTF-8"> ..
IT 공부/프로젝트 2024. 7. 20.
[Spring] 게시판 만들기 10 - Spring Security 2
로그인까지 했으니 이제 로그아웃.계정, 권한 만들기,admin 페이지를 만들어 보겠다. 1. 로그아웃 하기 우선 로그아웃 기능을 추가한다.이전에 만든 SecurityConfig 에 내용을 추가한다. http .sessionManagement((auth) -> auth .sessionFixation().changeSessionId() //세션공격 보호 .maximumSessions(1) //세션 최대 개수 .maxSessionsPreventsLogin(false) //다중 로그인 시 처리방법 treu : 신규로그인차단, false : 기존세..
IT 공부/프로젝트 2024. 7. 19.
[Spring] 게시판 만들기 9 - Spring Security 등록하기 1
이제 로그인 절차를 위해 스프링 시큐리티를 사용해본다. 스프링 시큐리티외에 그냥 해도 되긴 하지만 (예전에 포폴은 그냥만든듯) 스프링 시큐리티를 사용해서 로그인 구현을 해보자. User 관리도 로그인/로그아웃, 회원가입, 권한관리, 회원설정 변경등 다양한 기능이 있지만..우선 로그인부터하고, 회원설정은 나중에 봐서 추가. 일단 스프링 시큐리티는 Spring Boot 들어오기전 앞단 Filter 에서 처리해준다고 한다. 이런 인증절차를 가지고 있고, 이 인증절차는 Spring MVC 앞에서 수행된다고 한다. Spring Security 로그인 절차 등록 1. 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-security..
IT 공부/프로젝트 2024. 7. 16.
[Spring] 게시판 만들기 8 - 파일 업로드/다운로드
게시판 기능에 파일업로드도 추가해보도록 한다. @Autowired FileService fileService; private static String UPLOAD_FOLDER = "D:/logs/"; private static final long MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB @PostMapping("/Modify") public ModelAndView modifyPost(HttpServletRequest request, HttpServletResponse response, @RequestParam("file") MultipartFile file) throws UnsupportedEncodingException { ..
IT 공부/프로젝트 2024. 7. 11.
[Spring] 게시판 만들기 7 - 댓글 기능 2
VS Code 에서 바로복사하면 예쁘게해주는지 이제 처음 알았음.. 코드블럭 안쓸래 이제 PostController 내용 추가 @Autowired CommentService commentService; @GetMapping("/Content") public ModelAndView viewPost(HttpServletRequest request) { String num = request.getParameter("num"); Post post = postService.getPost(num); mav.setViewName("Post"); mav.addObject("post", post); ListComment>..
IT 공부/프로젝트 2024. 7. 10.
[Spring] 게시판 만들기 6 - 댓글 기능 1
게시판에 댓글을 추가해본다. 대댓글은 나중에 해보고 우선 댓글부터.. 우선 model 객체를 하나 만든다. model 패키지에 Comment.java 로 하나만들었음.package com.example.post.model;import lombok.Data;@Datapublic class Comment { private String commentId; private String contents; private String author; private String postId; private String date;} 댓글id (번호 자동생성), contesnt : 댓글내용author : 작성자postId : 댓글이 작성된 글 번호date : 작성시각 Comment.postId 와..
IT 공부/프로젝트 2024. 7. 3.
[Spring] 게시판 만들기 4 - 조회 및 수정
이어서 게시글 조회 및 수정 기능을 추가해 본다. Post.jsp 라는 페이지에서 조회와 수정을 두개 다 할수있게 만들었기에 묶었음. 이전과 동일하게 먼저 Controller 에 Content GetMapping 시켜준다. @GetMapping("/Content") public ModelAndView viewPost(HttpServletRequest request) { String num = request.getParameter("num"); Post post = postService.getPost(num); mav.setViewName("Post"); mav.addObject("post", post); mav.addObject(..
IT 공부/프로젝트 2024. 7. 1.
[Spring] 게시판 만들기 3 - 글쓰기 Write
지난번 게시글 리스트 출력을 했으니 (Select)실제로 내용이 들어갈 게시글 CRUD 를 작성해본다. 글쓰기부터 1. controller 생성 만들어둔 PostController 에 우선 Create (Write) 를 만들어본다. @GetMapping("/Write") public ModelAndView writePost(HttpServletRequest request){ mav.setViewName("Write"); return mav; } @PostMapping("/Write") public ModelAndView writePost(@ModelAttribute Post post, HttpServletResponse response){ ..
IT 공부/프로젝트 2024. 6. 29.
[Spring] 게시판 만들기 2 - 게시글 리스트 출력 및 페이징
이번에 구현할 기능 목표 게시글 리스트 출력 및 페이징 1. 테이블 생성 게시글을 저장하기 위한 테이블생성이 필요하다.dbeaver, workbench 등 db에 접속해서 query 를 날릴 수 있는 상태를 만들어 둔다. 직접 접속해도되고 객체 테이블 생성은 GPT 도움받으니 편하네.. CREATE TABLE Posts ( num INT IDENTITY(1,1) PRIMARY KEY, title NVARCHAR(255) NOT NULL, author NVARCHAR(100) NOT NULL, contents NVARCHAR(MAX) NOT NULL, date DATETIME DEFAULT GETDATE()); IDENTITY 가 sequence 개념으로 알아서 1씩 증가시켜준..
IT 공부/Java 2024. 6. 28.
[Java] 한글로 된 파일 업로드/다운로드 시 파일명 깨짐
@RequestMapping("/Download")public class DownloadController { private static String UPLOAD_FOLDER = "D:/logs/"; @Autowired FileService fileService; @GetMapping("/{fileId}") public ResponseEntityResource> downloadFile(@PathVariable("fileId") int fileId) throws MalformedURLException, UnsupportedEncodingException { FileInfo fileInfo = fileService.selectFileInfo(fileId); ..
IT 공부/Java 2024. 6. 28.
[Java] 파일 업로드 Multipart 시 413 에러
Resolved [org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded] out 로그(terminal)에는 위와같이 찍혔다. 우선 파일 제한 용량을 올려주기 위해 다음과 같이 할 수 있다. - application.properties 또는 application.yaml 수정spring.servlet.multipart.max-file-size=10MBspring.servlet.multipart.max-request-size=10MB이건 properteisspring: servlet: multipart: max-file-size: 10MB max-request-size..
IT 공부/프로젝트 2024. 6. 27.
[Spring] 스프링으로 게시판 만들기 1
1. 환경설정 VS code 로 진행할것이기에 Extention 에서 필요한 확장팩들을 설치한다. 이외에 Gradle, Lombok 등 필요한것들을 설치. Install 만 누르면 알아서 설치됨 이외에 자바같은건 알아서 설치 2. 프로젝트 생성 Crtl+Shift+P 누르면 검색창 나오는데 이곳에 Spring Initializr gradle Project 로 생성버전은 3.3.1, Java, War, gradle, Java 17로 생성하였고 패키지 및 프로젝트 명은 임의로 지정 마지막에 dependencies 를 골라야하는데Lombok, Spring boot DevTools, Spring Web, MyBatis Framwork 를 골랐음. 3. 기본 폴더(패키지) 생성 게시판을 만들것이기에 pos..