Java
-
출처 : https://12bme.tistory.com/555 출처 : https://roadofdevelopment.tistory.com/56 위 티스토리에 적어놓은 내용을 바탕으로 작성했으며, 좀 더 이해하기 위한 글을 작성합니다. 서블릿 컨테이너는 개발자가 웹서버와 통신하기 위한 복잡한 일들을 할 필요가 없게 해준다. 컨테이너는 Servlet의 생성부터 소멸까지의 일련의 과정을 관리한다. 서블릿 컨테이너는 요청이 들어올때 마다 자바 쓰레드를 생성하여 작업을 한다. 서블릿 컨테이너의 대표적인 예로는 흔히 사용하는 Tomcat 이 있다. 여기서 서블릿이란 동적인 웹페이지를 만들기 위해 사용되는 자바 기반의 웹 프로그래밍 기술이다. 클라이언트의 요청이 있고 요청에 대한 응답 결과를 반환해야 하는데 이러한..
서블릿, 서블릿 컨테이너(WAS)와 스프링 컨테이너출처 : https://12bme.tistory.com/555 출처 : https://roadofdevelopment.tistory.com/56 위 티스토리에 적어놓은 내용을 바탕으로 작성했으며, 좀 더 이해하기 위한 글을 작성합니다. 서블릿 컨테이너는 개발자가 웹서버와 통신하기 위한 복잡한 일들을 할 필요가 없게 해준다. 컨테이너는 Servlet의 생성부터 소멸까지의 일련의 과정을 관리한다. 서블릿 컨테이너는 요청이 들어올때 마다 자바 쓰레드를 생성하여 작업을 한다. 서블릿 컨테이너의 대표적인 예로는 흔히 사용하는 Tomcat 이 있다. 여기서 서블릿이란 동적인 웹페이지를 만들기 위해 사용되는 자바 기반의 웹 프로그래밍 기술이다. 클라이언트의 요청이 있고 요청에 대한 응답 결과를 반환해야 하는데 이러한..
2022.11.28 -
Spring Security 설정 시 Session 생성에 관해 궁금하여 작성하게 되었다. Spring Security는 csrf 가 기본적으로 enable() 설정되어 있다. 매번 csrf 설정을 disable() 설정 하다보니 자동으로 Session이 생성되어 있고 서버와 통신할 때 CSRF 토큰값을 확인하지 않아 특정 에러가 발생하는걸 발견하지 못했다. 하지만 csrf 설정을 하다가 에러를 발견했다. 본인은 특정 게시판을 만드는데 로그인을 하지 않았을땐 메인페이지가 떠야하나 위와 같은 에러가 발생했다. 모든 요청(ajax) 에 대해 csrf 값을 체크하는데 세션이 존재하지 않아 뜨는듯한 느낌이였다. 일단 Spring 에서의 HttpSession 은 누가 생성하는가 봤더니 서블릿 컨테이너가 생성한다고..
[Spring Security] Cannot create a session after the response has been committed (세션 에러)Spring Security 설정 시 Session 생성에 관해 궁금하여 작성하게 되었다. Spring Security는 csrf 가 기본적으로 enable() 설정되어 있다. 매번 csrf 설정을 disable() 설정 하다보니 자동으로 Session이 생성되어 있고 서버와 통신할 때 CSRF 토큰값을 확인하지 않아 특정 에러가 발생하는걸 발견하지 못했다. 하지만 csrf 설정을 하다가 에러를 발견했다. 본인은 특정 게시판을 만드는데 로그인을 하지 않았을땐 메인페이지가 떠야하나 위와 같은 에러가 발생했다. 모든 요청(ajax) 에 대해 csrf 값을 체크하는데 세션이 존재하지 않아 뜨는듯한 느낌이였다. 일단 Spring 에서의 HttpSession 은 누가 생성하는가 봤더니 서블릿 컨테이너가 생성한다고..
2022.11.28 -
환경구성 : Spring Boot, Spring Security, Thyemeleaf Spring Security 에서는 기본적으로 CSRF disable() 설정을 하지않으면 true 로 설정되어 있다. GET 방식을 제외한 POST, PUT, DELETE 등 방식에 대해 csrf 토큰이 포함되어 있는지 확인한 후 포함되어 있지 않으면 403 에러를 발생시킨다. 1. csrf().disable() 해제하기 위와 같이 csrf disable() 설정을 주석처리 해준다. 기본적으로 설정을 하지 않으면 True 이기 때문에 설정을 안하셨으면 아무것도 안하셔도 됩니다. 2. View CSRF 토큰 설정하기 Spring Security 에서 인증을 하게 되면 header 안에 meta 태그로 발급한 csrf 토..
[Spring Security] CSRF 토큰 설정환경구성 : Spring Boot, Spring Security, Thyemeleaf Spring Security 에서는 기본적으로 CSRF disable() 설정을 하지않으면 true 로 설정되어 있다. GET 방식을 제외한 POST, PUT, DELETE 등 방식에 대해 csrf 토큰이 포함되어 있는지 확인한 후 포함되어 있지 않으면 403 에러를 발생시킨다. 1. csrf().disable() 해제하기 위와 같이 csrf disable() 설정을 주석처리 해준다. 기본적으로 설정을 하지 않으면 True 이기 때문에 설정을 안하셨으면 아무것도 안하셔도 됩니다. 2. View CSRF 토큰 설정하기 Spring Security 에서 인증을 하게 되면 header 안에 meta 태그로 발급한 csrf 토..
2022.11.25 -
환경구성 : Spring Boot, Thymeleaf, Maven 일반 게시판 회원가입 기능 구현 과정에서 인증에 필요한 이메일 인증 기능을 해보려고 한다. 1. Spring Boot mail dependency 추가 Spring Boot 에서 사용할 mail 라이브러리를 pom.xml 에 추가해준다. pom.xml 에 태그 사이에 아래 내용을 추가한다. org.springframework.boot spring-boot-starter-mail 위 내용 추가 후 라이브러리 추가를 위해 Maven Update 실행한다. 해당 프로젝트 마우스 오른쪽 클릭 > Maven > Update Project... 클릭 > OK 클릭 2. 메일 발송을 위한 GMAIL 가입 및 설정 메일발송을 위한 메일서버가 필요하다. ..
이메일 인증 회원가입 기능 만들기환경구성 : Spring Boot, Thymeleaf, Maven 일반 게시판 회원가입 기능 구현 과정에서 인증에 필요한 이메일 인증 기능을 해보려고 한다. 1. Spring Boot mail dependency 추가 Spring Boot 에서 사용할 mail 라이브러리를 pom.xml 에 추가해준다. pom.xml 에 태그 사이에 아래 내용을 추가한다. org.springframework.boot spring-boot-starter-mail 위 내용 추가 후 라이브러리 추가를 위해 Maven Update 실행한다. 해당 프로젝트 마우스 오른쪽 클릭 > Maven > Update Project... 클릭 > OK 클릭 2. 메일 발송을 위한 GMAIL 가입 및 설정 메일발송을 위한 메일서버가 필요하다. ..
2022.11.17 -
Spring Boot 에서 외부 classpath 에 있는 properties 파일이나 .yml 파일에서 설정값이나 데이터를 불러와야할 떄가 있다. 이때 사용하는게 @Value 어노테이션이다. 1. properties 파일 생성하기 로그인 암호화나 공통적으로 사용해야할 데이터를 설정하기 위해 *.properties 파일을 생성한다. // baram.properties 내부 login.password.enc.type=SHA-256 2. application.properties 파일 또는 application.yml 에 config 설정하기 생성한 .properties 파일을 application.yml 에 "해당 파일을 config 파일입니다" 라고 설정해서 알려줘야 한다. spring: profiles:..
외부 .properties, .yml 파일 주입해서 사용하기(@Value)Spring Boot 에서 외부 classpath 에 있는 properties 파일이나 .yml 파일에서 설정값이나 데이터를 불러와야할 떄가 있다. 이때 사용하는게 @Value 어노테이션이다. 1. properties 파일 생성하기 로그인 암호화나 공통적으로 사용해야할 데이터를 설정하기 위해 *.properties 파일을 생성한다. // baram.properties 내부 login.password.enc.type=SHA-256 2. application.properties 파일 또는 application.yml 에 config 설정하기 생성한 .properties 파일을 application.yml 에 "해당 파일을 config 파일입니다" 라고 설정해서 알려줘야 한다. spring: profiles:..
2022.11.11 -
추상클래스추상클래스는 일반 클래스와 별 다를것이 없습니다.추상 메서드를 선언하여 상속을 통해서 자손 클래스에서 완성하도록 하는 유도 클래스입니다.(추상 메서드는 선언부가 있으나 구현부가 없는 메서드를 의미한다.) "미완성 설계도" 라고도 불리우며, 상속을 위한 클래스이기 때문에 따로 객체를 생성할 수 없습니다.class 앞에 abstract 예약어를 선언해 추상클래스라는걸 알려주거나 추상메서드가 포함되어 있으면추상 클래스라고 한다. abstract class 클래스 이름 { ... public abstract void 메서드이름();} 특징추상 클래스는 인스턴스, 객체를 만들 수 없는 클래스입니다.=> new 키워드를 사용해 인스턴스 생성이 불가하다.추상 메소드는 자손 클래스에서 메서드의 구현..
추상클래스와 인터페이스(abstract class, interface)추상클래스추상클래스는 일반 클래스와 별 다를것이 없습니다.추상 메서드를 선언하여 상속을 통해서 자손 클래스에서 완성하도록 하는 유도 클래스입니다.(추상 메서드는 선언부가 있으나 구현부가 없는 메서드를 의미한다.) "미완성 설계도" 라고도 불리우며, 상속을 위한 클래스이기 때문에 따로 객체를 생성할 수 없습니다.class 앞에 abstract 예약어를 선언해 추상클래스라는걸 알려주거나 추상메서드가 포함되어 있으면추상 클래스라고 한다. abstract class 클래스 이름 { ... public abstract void 메서드이름();} 특징추상 클래스는 인스턴스, 객체를 만들 수 없는 클래스입니다.=> new 키워드를 사용해 인스턴스 생성이 불가하다.추상 메소드는 자손 클래스에서 메서드의 구현..
2022.11.10