Java/Spring
-
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 -
이전 포스팅에서는 해당 과정을 설정하지 않고 기본 Spring Security 설정에 따라 로그인을 구현했었다. 아래 내용 확인 부탁드립니다. 아래 내용은 WebSecurityConfigurerAdapter가 Deprecated 되어 있는 상태에서 설정했다. https://okimaru.tistory.com/293 [Spring Boot] Spring Security를 이용한 로그인 설정 환경 구성 Spring Boot Spring Security Thymeleaf 1. Spring Security 를 사용하기 위한 라이브러리 의존성 설정 Spring Boot pom.xml 파일에 아래와 같이 dependency 추가 org.springframework.boot spring-boot-starter-sec..
Spring Security 로그인 인증절차이전 포스팅에서는 해당 과정을 설정하지 않고 기본 Spring Security 설정에 따라 로그인을 구현했었다. 아래 내용 확인 부탁드립니다. 아래 내용은 WebSecurityConfigurerAdapter가 Deprecated 되어 있는 상태에서 설정했다. https://okimaru.tistory.com/293 [Spring Boot] Spring Security를 이용한 로그인 설정 환경 구성 Spring Boot Spring Security Thymeleaf 1. Spring Security 를 사용하기 위한 라이브러리 의존성 설정 Spring Boot pom.xml 파일에 아래와 같이 dependency 추가 org.springframework.boot spring-boot-starter-sec..
2022.11.07