Java/Spring 22

Spring Security CSRF 적용

CSRF 란? 사이트 간 요청 위조(또는 크로스 사이트 요청 위조, 영어: Cross-site request forgery, CSRF, XSRF)는 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격 Spring Security CSRF Session 단위로 무작위 토큰(CSRF Token)을 발급 요청 파라미터에 token을 포함시켜 전송하여 정상 요청인지, 공격자로부터 의도된 요청인지 판단하는 기능 있음 타 사이트에서 본인의 사이트로 form 데이터를 사용하여 공격하려고 할 때, 그걸 방지하기 위해 csrf 토큰 값을 사용하는 것 CSRF 보호 기능 활성화 Spring Security에서는 @Enable..

Java/Spring 2021.04.22

[스프링 웹 개발 기초]API

@ResponseBody 문자 반환 @Controller public class HelloController { @GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name) { return "hello " + name; } } @ResponseBody 를 사용하면 뷰 리졸버( viewResolver )를 사용하지 않음 대신에 HTTP의 BODY에 문자 내용을 직접 반환(HTML BODY TAG를 말하는 것이 아님) 실행 http://localhost:8080/hello-string?name=spring 결과 hello hello 개발자 모드에서도 문자열 hello hello 만 나옴..

Java/Spring 2021.03.24

@RequestParam, 커맨드객체

private ModelAndView request_TEST(@RequestParam("test") int num, @RequestParam("test2") String str)){ //.. } 위처럼 하나이상의 타입을 적용가능. 스프링에서 지원하는 변환기에서 지원되는 모든 타입을 변환가능 RequestParam은 하나 이상의 파라미터 사용가능 ReqeustParam에 넘어오는 데이터가 존재하지 않는다면 BadRequest 400번대 error가 발생함. private ModelAndView request_TEST(@RequestParam(value="test", required=false, defaultValue= "0") int num, @RequestParam("test2") String str))..

Java/Spring 2021.03.24

[스프링 웹 개발 기초]MVC와 템플릿 엔진

MVC: Model, View, Controller Controller @Controller public class HelloController { @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); return "hello-template"; } } View resources/template/hello-template.html hello! empty 실행 http://localhost:8080/hello-mvc?name=spring thymeleaf를 기능 서버 연결없이 html을 실행(절대경로로)하면 hello! emp..

Java/Spring 2021.03.24

[View 환경설정] view 기본 동작환경

HelloController.java @Controller public class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hello!!"); return "hello"; } } resources/templates/hello.html 안녕하세요. 손님 ​ 컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버( viewResolver )가 화면을 찾아서 처리한다. 스프링 부트 템플릿엔진 기본 viewName 매핑 resources:templates/ +{ViewName}+ .html

Java/Spring 2021.03.24

JAR WAR 차이

JAR ( Java Archive ) .jar 확장자 파일에는 Class와 같은 Java 리소스와 속성 파일, 라이브러리 및 액세서리 파일이 포함 JAR 파일은원하는 구조로 구성이 가능하며 JDK(Java Development Kit)에 포함하고 있는JRE(Java Runtime Environment)만 가지고도 실행이 가능 WAR ( Web Application Archive ) .war 확장자 파일은 servlet / jsp 컨테이너에 배치 할 수 있는웹 어플리케이션(Web Application) 압축 파일 포맷 JSP, SERVLET, JAR, CLASS, XML, HTML, JAVASCRIPT 등 Servlet Context 관련 파일들로 패키징 원하는 구성을 할 수 있는 JAR 포맷과 달리 WA..

Java/Spring 2021.03.24