Java/Spring
-
Java8 이하의 버전에서 Interface 는 추상메서드만 멤버로 가질 수 있었다. Java8 이후 부터는 Interface 에 default 키워드를 통해 추상메서드가 아닌 구현된 메서드인 Default Method를 가질 수 있다. 즉, 메서드에 내용을 추가할 수 있다. 아래는 일반적인 Interface 및 추상메서드이다. Animal Interface public interface Animal { void tiger(int a); } 위처럼 기본적인 Interface 형식은 추상메서드만 존재했지만 Java8 에서 default 키워드를 통해 메서드안에 내용을 추가할 수 있다. public interface Animal { void tiger(int a); default Integer cat(int..
Interface 의 default 키워드(Default Methods)Java8 이하의 버전에서 Interface 는 추상메서드만 멤버로 가질 수 있었다. Java8 이후 부터는 Interface 에 default 키워드를 통해 추상메서드가 아닌 구현된 메서드인 Default Method를 가질 수 있다. 즉, 메서드에 내용을 추가할 수 있다. 아래는 일반적인 Interface 및 추상메서드이다. Animal Interface public interface Animal { void tiger(int a); } 위처럼 기본적인 Interface 형식은 추상메서드만 존재했지만 Java8 에서 default 키워드를 통해 메서드안에 내용을 추가할 수 있다. public interface Animal { void tiger(int a); default Integer cat(int..
2023.03.21 -
Interceptor 란사전적 의미로 "낚아채다" 라는 뜻처럼 사용자 요청이 Filter, DispatchServlet에 의해요청에 알맞는 컨트롤러를 찾아 컨트롤러에게 전달되기 전 요청(HttpRequest, HttpResponse)을낚아채어 개발자가 원하는 추가적인 작업을 진행하기 위해 사용한다. 위 이미지를 보면 사용자의 모든 요청을 Front Controller 라고 하는 DispatcherServlet이 받는다.요청받은 DispatcherServlet은 HandlerMapping 을 통해 요청에 맞는 적절한 Controller를 찾아요청을 넘기게 되는데 Controller로 요청을 넘기기전에 Interceptor가 요청을 가로챈다. 요청을 가로채어 필요한 작업을 진행한 후 다시 Controller..
HandlerInterceptor 사용하기Interceptor 란사전적 의미로 "낚아채다" 라는 뜻처럼 사용자 요청이 Filter, DispatchServlet에 의해요청에 알맞는 컨트롤러를 찾아 컨트롤러에게 전달되기 전 요청(HttpRequest, HttpResponse)을낚아채어 개발자가 원하는 추가적인 작업을 진행하기 위해 사용한다. 위 이미지를 보면 사용자의 모든 요청을 Front Controller 라고 하는 DispatcherServlet이 받는다.요청받은 DispatcherServlet은 HandlerMapping 을 통해 요청에 맞는 적절한 Controller를 찾아요청을 넘기게 되는데 Controller로 요청을 넘기기전에 Interceptor가 요청을 가로챈다. 요청을 가로채어 필요한 작업을 진행한 후 다시 Controller..
2023.03.14 -
LogoutFilter 란? LogoutFilter는 Spring Security 에서 로그아웃에 대한 처리를 담당하는 필터로 사용자가 특정 로그아웃 URL로 로그아웃을 요청 했을 경우에만 적용되는 필터이다. LogoutFilter는 세션 무효화, 인증토큰 삭제 등 Security Context에서 해당 인증 객체를 삭제한다. 아래는 LogoutFilter 클래스와 doFilter 메서드이다. requiresLogout() 메서드를 통해 요청된 URL이 로그아웃 URL인지 확인한다. 아래는 requiresLogout 메서드이다. RequestMatcher 의 matches 를 통해 URL 정보를 확인하고 맞으면 true 를 리턴한다. 로그아웃 URL 이 맞을 경우SecurityContextHolder 에..
[Spring Security] LogoutFilterLogoutFilter 란? LogoutFilter는 Spring Security 에서 로그아웃에 대한 처리를 담당하는 필터로 사용자가 특정 로그아웃 URL로 로그아웃을 요청 했을 경우에만 적용되는 필터이다. LogoutFilter는 세션 무효화, 인증토큰 삭제 등 Security Context에서 해당 인증 객체를 삭제한다. 아래는 LogoutFilter 클래스와 doFilter 메서드이다. requiresLogout() 메서드를 통해 요청된 URL이 로그아웃 URL인지 확인한다. 아래는 requiresLogout 메서드이다. RequestMatcher 의 matches 를 통해 URL 정보를 확인하고 맞으면 true 를 리턴한다. 로그아웃 URL 이 맞을 경우SecurityContextHolder 에..
2023.02.17 -
ContentType 은 HTTP 요청 시 자원을 명시하기 위해 사용한다. HTTP 의 간단한 구조는 아래와 같다.Request LineHTTP HeaderEmpty LineMessage Body Post Method 를 이용해 ajax 요청 시 Message Body 부분에 데이터가 들어가고해당 자원에 대해 명시하기 위해 HTTP Header 의 Content-Type 을 사용하는데Content-Type에는 Body에 들어간 자원이 어떤 자원인지 표시해준다. Content-Type 종류TEXTtext/css, text/javascript, text/html, text/plain FILEmultipart/form-data Applicationapplication/json, application/x-www..
ajax 요청 시 contentType(application/json, application/x-www-form-urlencoded)ContentType 은 HTTP 요청 시 자원을 명시하기 위해 사용한다. HTTP 의 간단한 구조는 아래와 같다.Request LineHTTP HeaderEmpty LineMessage Body Post Method 를 이용해 ajax 요청 시 Message Body 부분에 데이터가 들어가고해당 자원에 대해 명시하기 위해 HTTP Header 의 Content-Type 을 사용하는데Content-Type에는 Body에 들어간 자원이 어떤 자원인지 표시해준다. Content-Type 종류TEXTtext/css, text/javascript, text/html, text/plain FILEmultipart/form-data Applicationapplication/json, application/x-www..
2023.02.07 -
Jasypt 란?Jasypt 홈페이지에서 아래와 같이 설명한다.Jasypt is a java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort, and without the need of having deep knowledge on how cryptography works.Jasypt는 개발자가 암호화 작동 방식에 대한 깊은 지식이 없어도 최소한의 노력으로 프로젝트에 기본 암호화 기능을 추가할 수 있는 자바 라이브러리입니다.쉽게 말해 Java 프로젝트 내에 작성된 .properties 파일(설정 파일) 등을 암호화 하기 위한 Java 라이브러리이다. 구성 ..
.properties 데이터 암호화 - jasypt 암호화Jasypt 란?Jasypt 홈페이지에서 아래와 같이 설명한다.Jasypt is a java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort, and without the need of having deep knowledge on how cryptography works.Jasypt는 개발자가 암호화 작동 방식에 대한 깊은 지식이 없어도 최소한의 노력으로 프로젝트에 기본 암호화 기능을 추가할 수 있는 자바 라이브러리입니다.쉽게 말해 Java 프로젝트 내에 작성된 .properties 파일(설정 파일) 등을 암호화 하기 위한 Java 라이브러리이다. 구성 ..
2023.01.30 -
웹브라우저 쿠키(Cookie)란?웹브라우저 쿠키란 인터넷 사용자가 웹사이트를 접속했을 때 사용자의 개인장치에 방문 기록 등브라우저의 정보들이 저장된 텍스트 파일이다.쿠키의 데이터 형태는 Key, Value 형태로 String 형이며, 4KB 이상 저장이 불가능하다. 이러한 웹브라우저 쿠키를 이용해 인터넷 사용자의 아이디를 쿠키에 저장해놓고저장된 아이디를 불러와 재사용할 수 있다. 특정 웹사이트에서 로그인할 때 자주 볼 수 있는 아이디 저장하기 기능을 구현해보자. 환경구성 : Spring Boot, Spring Security(로그인 기능), Thymeleaf(템플릿 엔진) 1. CookieUtils 클래스 생성아래 내용과 같이 CookieUtils 라는 클래스를 생성한다.public class Cooki..
[Spring Security] 로그인 시 아이디 저장하기 기능 구현(Cookie)웹브라우저 쿠키(Cookie)란?웹브라우저 쿠키란 인터넷 사용자가 웹사이트를 접속했을 때 사용자의 개인장치에 방문 기록 등브라우저의 정보들이 저장된 텍스트 파일이다.쿠키의 데이터 형태는 Key, Value 형태로 String 형이며, 4KB 이상 저장이 불가능하다. 이러한 웹브라우저 쿠키를 이용해 인터넷 사용자의 아이디를 쿠키에 저장해놓고저장된 아이디를 불러와 재사용할 수 있다. 특정 웹사이트에서 로그인할 때 자주 볼 수 있는 아이디 저장하기 기능을 구현해보자. 환경구성 : Spring Boot, Spring Security(로그인 기능), Thymeleaf(템플릿 엔진) 1. CookieUtils 클래스 생성아래 내용과 같이 CookieUtils 라는 클래스를 생성한다.public class Cooki..
2023.01.16