Spring
-
RestTemplate 란?Spring 에서 간편하게 Rest 방식 API 를 호출할 수 있는 내장 클래스이다.Spring 3.0 부터 지원되며 응답은 Json, xml 모두 받을 수 있다.Rest API 요청 시 응답 받을 수 있도록 설계되어 있으며, HTTP 메소드(GET, POST, PUT, DELETE)들에적합한 여러 메소드들을 제공한다. RestTemplate 특징Rest API 를 간편하게 호출 후 응답 받을 수 있는 Spring 내장 클래스Spring 3.0 부터 지원하는 HTTP 통신 템플릿HTTP 요청 후 Json, XML, String 등 여러 형태로 응답 받을 수 있는 템플릿HTTP HEADER, Content-Type 등을 설정하여 외부 API 호출Server to Server 통신..
Spring RestTemplate 사용하기RestTemplate 란?Spring 에서 간편하게 Rest 방식 API 를 호출할 수 있는 내장 클래스이다.Spring 3.0 부터 지원되며 응답은 Json, xml 모두 받을 수 있다.Rest API 요청 시 응답 받을 수 있도록 설계되어 있으며, HTTP 메소드(GET, POST, PUT, DELETE)들에적합한 여러 메소드들을 제공한다. RestTemplate 특징Rest API 를 간편하게 호출 후 응답 받을 수 있는 Spring 내장 클래스Spring 3.0 부터 지원하는 HTTP 통신 템플릿HTTP 요청 후 Json, XML, String 등 여러 형태로 응답 받을 수 있는 템플릿HTTP HEADER, Content-Type 등을 설정하여 외부 API 호출Server to Server 통신..
2023.08.10 -
HttpMessageConverter 란? 클라이언트(웹브라우저) 측에서 데이터를 HTTP Request Body 로 넘길때 서버측에서 DTO 같은 객체에 변환하기 위해 사용한다. 또한 반대로 서버측에서 HTTP Response Body 로 응답 데이터를 클라이언트로 전달할 때 사용한다. 보통 서버측에서 받을때 주로 사용하는 건 @RequestBody 어노테이션과 클라이언트로 응답 데이터를 넘길때 @ResponstBody 를 사용한다. Spring MVC 요청/응답 과정 1. 클라이언트로부터 HTTP 요청이 들어오면 Front Controller 라고 불리우는 Dispatcher Servlet 이 받는다. * 클라이언트의 요청은 Front Controller 라고 하는 Dispatcher Servlet ..
HttpMessageConverter, DispatcherServlet 동작원리HttpMessageConverter 란? 클라이언트(웹브라우저) 측에서 데이터를 HTTP Request Body 로 넘길때 서버측에서 DTO 같은 객체에 변환하기 위해 사용한다. 또한 반대로 서버측에서 HTTP Response Body 로 응답 데이터를 클라이언트로 전달할 때 사용한다. 보통 서버측에서 받을때 주로 사용하는 건 @RequestBody 어노테이션과 클라이언트로 응답 데이터를 넘길때 @ResponstBody 를 사용한다. Spring MVC 요청/응답 과정 1. 클라이언트로부터 HTTP 요청이 들어오면 Front Controller 라고 불리우는 Dispatcher Servlet 이 받는다. * 클라이언트의 요청은 Front Controller 라고 하는 Dispatcher Servlet ..
2023.06.07 -
Interceptor 란 사전적 의미로 "낚아채다" 라는 뜻처럼 사용자 요청이 Filter, DispatchServlet에 의해 요청에 알맞는 컨트롤러를 찾아 컨트롤러에게 전달되기 전 요청(HttpRequest, HttpResponse)을 낚아채어 개발자가 원하는 추가적인 작업을 진행하기 위해 사용한다. 위 이미지를 보면 사용자의 모든 요청을 Front Controller 라고 하는 DispatcherServlet이 받는다. 요청받은 DispatcherServlet은 HandlerMapping 을 통해 요청에 맞는 적절한 Controller를 찾아 요청을 넘기게 되는데 Controller로 요청을 넘기기전에 Interceptor가 요청을 가로챈다. 요청을 가로채어 필요한 작업을 진행한 후 다시 Contr..
HandlerInterceptor 사용하기Interceptor 란 사전적 의미로 "낚아채다" 라는 뜻처럼 사용자 요청이 Filter, DispatchServlet에 의해 요청에 알맞는 컨트롤러를 찾아 컨트롤러에게 전달되기 전 요청(HttpRequest, HttpResponse)을 낚아채어 개발자가 원하는 추가적인 작업을 진행하기 위해 사용한다. 위 이미지를 보면 사용자의 모든 요청을 Front Controller 라고 하는 DispatcherServlet이 받는다. 요청받은 DispatcherServlet은 HandlerMapping 을 통해 요청에 맞는 적절한 Controller를 찾아 요청을 넘기게 되는데 Controller로 요청을 넘기기전에 Interceptor가 요청을 가로챈다. 요청을 가로채어 필요한 작업을 진행한 후 다시 Contr..
2023.03.14 -
Spring Security 에서 권한에 따른 접근 불가한 url 에 대한 handler 설정이다. 본인은 권한 없는 사람의 접근에 따라 특정 화면으로 고정시킬 목적으로 handler 설정을 한다. 1. AccessDeniedHandler 발생 시 보여줄 View 화면 설정 본인은 아래와 같은 경로에 accessDenied.html 파일을 생성했다. 2. AccessDeniedHandler 설정 아래와 같이 security/handler/ 경로에 AuthenticationAccessDeniedHandler 클래스를 생성한다. import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServ..
[Spring Security] AccessDeniedHandler 설정Spring Security 에서 권한에 따른 접근 불가한 url 에 대한 handler 설정이다. 본인은 권한 없는 사람의 접근에 따라 특정 화면으로 고정시킬 목적으로 handler 설정을 한다. 1. AccessDeniedHandler 발생 시 보여줄 View 화면 설정 본인은 아래와 같은 경로에 accessDenied.html 파일을 생성했다. 2. AccessDeniedHandler 설정 아래와 같이 security/handler/ 경로에 AuthenticationAccessDeniedHandler 클래스를 생성한다. import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServ..
2022.12.02 -
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 에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller 와 @RestController 가 있습니다.일반적인 Spring MVC의 컨트롤러인 @Controller 와 Restful 방식의 컨트롤러인 @RestController 의주요한 차이점은 HTTP Response Body가 생성되는 방식이다. @Controller 와 @RestController 는 용도의 차이라고 생각하면 된다.옛날에는 jsp 나 html 과 같이 view에 데이터를 담아 전달했기 때문에 @Controller를 사용했다.하지만 최근에는 백엔드와 프론트엔드를 분리하면서 백엔드쪽에선 Rest API를 통해 Json 데이터만 전달하고프론트엔드는 백엔드에서 넘어온 Json 데이터를 화면에 보여주는 방식이기 때문에 ..
@Controller, @RestControllerSpring 에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller 와 @RestController 가 있습니다.일반적인 Spring MVC의 컨트롤러인 @Controller 와 Restful 방식의 컨트롤러인 @RestController 의주요한 차이점은 HTTP Response Body가 생성되는 방식이다. @Controller 와 @RestController 는 용도의 차이라고 생각하면 된다.옛날에는 jsp 나 html 과 같이 view에 데이터를 담아 전달했기 때문에 @Controller를 사용했다.하지만 최근에는 백엔드와 프론트엔드를 분리하면서 백엔드쪽에선 Rest API를 통해 Json 데이터만 전달하고프론트엔드는 백엔드에서 넘어온 Json 데이터를 화면에 보여주는 방식이기 때문에 ..
2022.08.09