본문 바로가기

Java, Kotlin, Spring111

Spring Security 로그인 구현 (part 2) - form login Spring Security 로그인 구현 (part 2) - form login 본 글은 Spring Security 로그인 구현 (part 1) - form login 과 이어지는 글 입니다. 이전 글에서 회원가입 후 회원정보를 DB 에 담기 로그인 기능 구현 을 했습니다. 하지만, 로그인의 경우 기본 스프링이 제공해주는 user 라는 아이디와 콘솔창에서 제공해주는 패스워드를 사용해 로그인이 가능했었습니다. 이번 글에서는 DB에 저장된 사용자 아이디, 비밀번호를 비교하여 로그인 인증을 처리하는 방법을 서술합니다. 사용자이름 검증하기 로그인 정보를 입력하고 post 요청을 하면, 이 때 전달한 username을 받아올 수 있습니다. 받아온 username은 DB에 저장된 유저이름과 비교합니다. 유저이름을.. 2021. 5. 9.
Spring Security 로그인 구현 (part 1) - form login Spring Security 로그인 구현 (part 1) - form login 많은 서비스에서는 특정 사용자별로 할 수 있는 일이 다릅니다. 예를 들어, 네이버 밴드의 멤버탭을 들어가면 Admin, Co-Admin 권한을 특정 사람에게 부여할 수 있습니다. 이 들을 밴드 안의 글을 관리하고, 멤버를 초대하는 등의 역할을 할 수 있습니다. 이 글에서는 권한을 구현하기 위한 가장 기초, 회원가입과 로그인을 구현해보겠습니다. 회원가입 페이지 구성 build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-s.. 2021. 4. 24.
Spring Web MVC - @ResponseBody, ResponseEntity Spring Web MVC - 핸들러 메소드 4 @RequestBody @RequestBody 는 핸들러의 아규먼트로 받아 올 수 있다. 요청 본문(body)에 들어있는 데이터를 HttpMessageConverter를 통해 변환한 객체로 받아올 수 있다. HttpMessageConverter : 스프링 MVC 설정 (WebMvcConfigurer) 에서 설정할 수 있다. 이 때 configureMessageConverters 를 오버라이딩하면 기본 메시지 컨버터를 대체하게 되어, 기본설정이 바뀔 수 있으므로 조심한다. 대신 extendMessageConverters 를 이용하면 원하는 메시지 컨버터를 추가할 수 있다. (객체를 XML으로 바꾼다든지) 기본 컨버터는 WebMvcConfigurationSup.. 2021. 2. 21.
Spring Web MVC - 파일업로드, 파일다운로드 Spring Web MVC - 파일업로드, 다운로드 파일 업로드 - MultipartFile MultipartFile 은 파일 업로드시 사용하는 메소드 아규먼트이다. MultipartResolver 라는 빈이 설정 되어 있어야 사용이 가능하다. 단, 스프링부트는 자동 설정이 되어있다. 이를 사용하면 POST 요청의 multipart/form-data 정보에 들어있는 파일을 참조할 수 있다. 간단한 파일업로드를 구현해보자. @Controller public class FileController { @GetMapping("/files") public String fileUploadForm(Model model) { return "files/index"; } @PostMapping("/files") publi.. 2021. 2. 21.
Spring Web MVC - Attributes, 멀티 폼 서브밋 Spring Web MVC 009 - 핸들러 메소드 3 SessionAttributes 모델 정보를 HTTP 세션에 저장해주는 어노테이션이다. 먼저 HttpSession 을 보자. 핸들러 메소드의 아규먼트로 받아와서 세션을 관리할 수 있게 도와주는 객체이다. 상대적으로 low 레벨 단위의 코딩을 할 수 있다. @GetMapping("/news/form") public String newsForm(Model model, HttpSession httpSession) { News news = new News(); news.setLimit(10); model.addAttribute("news", news); // 세션안에 news 라는 이름으로 객체를 넣어준다. httpSession.setAttribute("n.. 2021. 2. 21.
Spring Web MVC - ModelAttribute, 폼 서브밋 Spring Web MVC - 핸들러 메소드 2 @ModelAttribute @Controller public class NewsController { @PostMapping("/news") @ResponseBody public News news(@ModelAttribute News news) { return news; } } @Test public void postNews() throws Exception { mockMvc.perform(post("/news") .param("title", "blue") .param("limit", "10")) .andDo(print()) .andExpect(status().isOk()) .andExpect(jsonPath("title").value("blue")) ;.. 2021. 2. 21.
Spring Web MVC - Handler 아규먼트 다루기 Spring Web MVC - 핸들러 메소드 핸들러 메소드에서 다양한 아규먼트를 사용할 수 있다. 핸들러 메소드 아규먼트 설명 WebRequest NativeWebRequest ServletRequest/Reponse HttpServletRequest/Reponse 요청 또는 응답 객체에 접근 가능한 API InputStream Reader OutputStream Writer 요청 본문을 읽어 오거나, 응답 본문을 쓸 때 사용할 수 있는 API PushBuilder Spring 5에 추가됨. HTTP/2에서 사용할 수 있다. 리소스 푸쉬에 사용된다. 일반적으로 일어나는 HTTP 요청 : 1 클라이언트가 뷰 요청 2 서버 응답 (이 때 뷰에 다른 리소스 자원이 있어서 불러오고 싶음) 3 클라이언트가 이미지.. 2021. 2. 17.
Spring Web MVC - RequestMapping Spring Web MVC - 요청 매핑 HTTP Method HTTP 메소드에는 GET, POST, PUT, PATCH, DELETE 등이 있다. 예제를 하나 만들어보자. 컨트롤러 @Controller public class BookController { @RequestMapping(value = "/bookstore") @ResponseBody public String bookStore() { return "Welcome book store"; } } 테스트 코드 @WebMvcTest class BookControllerTest { @Autowired MockMvc mockMvc; @Test public void bookStoreTest() throws Exception { mockMvc.perfor.. 2021. 2. 15.
Spring Web MVC - HTTP Message Converter Spring Web MVC - Message Converter HTTP 메시지 컨버터 요청 본문에서 메시지를 읽어들이거나 (@RequestBody), 응답 본문에 메시지를 작성할 때(@ResponseBody) 사용한다. 기본 HTTP 메시지 컨버터 바이트 배열 컨버터, 문자열 컨버터, Resource 컨버터 Form 컨버터(폼 데이터 to/from MultiValueMap) JAXB2 컨버터 (xml) Jackson2, Jackson, Gson 컨버터 (json) Atom 컨버터 - 아톰 피드 RSS 컨버터 - RSS 채널 테스트. String 타입으로 본문을 전달한 후, String 타입으로 본문 반환. @Test public void stringMessage() throws Exception { th.. 2021. 2. 13.
Spring Web MVC - 여러가지 설정 1 Spring Web MVC - 여러가지 설정 1 JSP 제약 사항 jar 프로젝트로는 만들 수 없다. war 로 만들어야 한다. java -jar 명령어로 실행은 할 수 있지만, 실행가능한 jar 파일은 지원하지 않는다. undertow 는 jboss에서 만든 서블릿 컨테이너인데, 여기서는 jsp 를 지원하지 않는다. whitelabel 에러 파이지를 error.jsp 로 오버라이딩 할 수 없다. JSP 실행 방법 1) java -jar $ java -jar /target/*.war 위 명령어로 war 파일을 실행시킬 수 있다. 2) SpringApplication.run 사용 IDE 에서 run 을 클릭해서 실행한다. 3) 서블릿 컨테이너(톰캣)에 WAR 배포하여 실행하기 WAR : Web Applic.. 2021. 2. 13.
728x90