반응형

스프링

    Spring boot에서 Spring security를 사용하여 로그인 하기

    스프링 부트를 공부하면서 스프링에서 제공하는 spring security를 통해 로그인 기능을 편리하게 구현할 수 있다는 것을 알았다. 기존에 회사에서는 interceptor 기능을 통해서 로그인 기능을 만들어서 사용했다. 둘다 좋은 방식이지만 spring security를 사용하면 csrf 공격도 막을 수 있어서 한번 사용해봐도 좋을 것 같다. 1. 라이브러리 pom.xml 1234 org.springframework.boot spring-boot-starter-securityColored by Color Scriptercs 2. SpringSecurityAdaptor -> 스프링 시큐리티에 필요한 내용을 정의하는 configuration을 생성해야한다. -> WebSecurityConfigurerAd..

    spring boot에 https 접속 적용하기

    구글에서 http에 대한 모든 접속을 보안 경고를 표시하게 되면서, 모든 접속에 https 접속이 필수가 되었다. 스프링 부트를 접해보면서 스프링에서는 조금 과정이 귀찮았던 https 접속을 적용하는게 얼마나 편해졌는지 알아보았다. 1. application.properties 설정 #ssl 설정 server.port=13443 server.ssl.key-store=classpath:keystore.jks server.ssl.key-store-password=test server.ssl.key-password=test 2. keystore 만들기 -> ssl을 적용하려면 자가 서명 키스토어가 필요하다. 만약 인증기관에서 인증서를 발급받은 경우 그냥 그 파일을 사용하면 된다. 위의 명령어를 사용하여 src..

    Spring에서 url 요청하는 RestTemplate 설명

    Spring 기반 프로젝트 진행 시 URL을 요청할 때가 있다. 이를 Apache의 HttpClient 라이브로리를 사용하여 할 수 있지만, 스프링 프로젝트에서는 SpringTemplate를 사용하여 쉽게 요청할 수 있다. (httpClient와 RestTemplate의 차이는 하단의 링크참조) 사용법은 아주 간단하다. 각 요청 Method 마다 하단의 메소드를 이용하여 호출하기만 하면된다. 1. Get 12345RestTemplate restTemplate = new RestTemplate();String fooResourceUrl = "http://localhost:8080/spring-rest/foos";ResponseEntity response = restTemplate.getForEntity(f..

    spring boot에서 jsp사용하기

    spring framework만 사용하다가 요근래 대다수에 회사에서 spring-boot를 사용하는 것을 확인하고 spring-boot에 대해 공부를 해보았다. 확실히 spring-boot를 사용하면 설정이 엄청 간단해서 개발자가 설정에 집중하는게 아니라 비즈니스 로직에만 딱 고민할 수 있도록 되어있어서 진짜 편한것 같다. 그래서 기존에 내가 하고 있는 wedulpos 프로젝트를 spring-boot로 마이그레이션 하는 작업을 거쳤는데 그 사이에 어려운 부분이 있었다. 스프링에서는 jsp를 사용하는 것이 어렵지 않았으나, 기본적으로 spring-boot에서는 jsp 사용이 기본이 아니다. 그래서 설정을 위해서는 몇가지 변경을 해주어야한다. 1. pom설정 - jstl 사용을 위한 라이브러리 추가 1234..

    spring boot 재시작 없이 frontend(html, js..) 변경내용 사용하기

    spring boot를 공부하면서 html요소가 자동으로 변경되지 않아서.. 계속 껏다켜야해서 너무 불편했다. 그래서 구글링 하던중 방법을 알게되어 적어본다. 1. pom.xml 추가 12345 org.springframework.boot spring-boot-devtools trueColored by Color Scriptercs 2. debug 모드로 실행 3. eclipse 설정 중 Build Automatically 설정 여부 확인 (기본으로 사용으로 설정되어 있음)

    Spring Interceptor와 Filter에서 POST 방식으로 전달된 JSON 데이터 처리하기

    이번 회사 프로젝트에서 진행할 때 parameter값이 아니라 Josn 데이터가 필요할 때가 있었다. 이를 위해서는 HttpServletRequest에서 InputStream으로 데이터를 추출해야한다. 하지만 HttpServletRequest에서 InputStream을 한번 추출하게되면, Controller에서 parameter를 매핑하려고 데이터를 바인딩할 때 다음과 같은 오류가 발생한다. 이는 톰캣에서 막아놓았기 때문이다. [에러내용] 12java.lang.IllegalStateException: getReader() has already been called for this requestorg.springframework.http.converter.HttpMessageNotReadableExcept..

    Java Json Library Jacson Annotation 소개

    restFul API를 만들다 보면, 어떤 항목을 serialize 제외하거나 null인 항목은 제외하거나 하는 작업이 필요로 할 때가 있다. 이를 Jackson 라이브러리의 Annotation을 사용하여 하는 방법을 확인해보자. [Maven 셋팅] 1234567891011 2.9.2 com.fasterxml.jackson.core jackson-databind ${jackson.version} Colored by Color Scriptercs 예제로 사용될 Student Dto 클래스이다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647package com.wedul.common.dto; /** *..

    스프링 DispatcherServlet 설정 방법

    DispatcherServlet Spring MVC는 dispatcherServlet을 사용하기 위해서는 web.xml에 정의를 해주었어야 했다. 하지만 web.xml에 설정하지 않고도 다른 Java 파일로 설정할 수 있는 방법이 있다. 기존의 web.xml에 설정방식은 다음과 같다. 12345678910111213141516 dispatcher org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/dispatcher-config.xml 1 dispatcher /Colored by Color Scriptercs XML에 정의한 서블릿 설명은 다음과 같다. 1. 이름은 dispatcher 이다. 2. o..

    Spring Context 종류 및 특성

    Spring Context 종류 및 특성 Spring 프로젝트를 처음 생성할 시 root-context.xml과 servlet-contex.xml 두 개가 생성됩니다. 이 두개가 각각 하는일이 지정되어 있는데 무심코 사용하는 경우가 많습니다. 이 둘의 차이점에 대해서 설명하겠습니다. spring은 multi context 환경을 제공해주는데 기본적으로는 root context와 servlet context로 구분됩니다. 1. servlet-context web application의 client의 요청을 받기 위한 entry point 입니다. 따라서 해당 context의 설정에는 요청에 대한 처리를 해줄 controller의 매핑설정(handler mapping)과 요청처리 후 view처리를 어떻게 할..

    Spring Rest Client Feign 소개

    Feign는 넷플릭스에서 개발된 HTTP 클라이언트다. Feign은 HTTP API 클라이언트를 간단하게 제공한다. Feign을 사용하기 위해서는 인터페이스를 선언하고, 어노테이션화 하면 이를 런타임에서 실제 구현을 제공된다. Feign 라이브러리 추가 - feign-okhttp는 request를 만들기 위해서 내부적으로 Square OkHttp 클라이언트를 사용하기 위해 사용 - feign-gson은 JSON 처리기로서 Google Gson을 사용하기 위해 로드 - feign-slf4j는 request들을 로깅하기 위해서 라이브러리 사용 123456789101112131415 io.github.openfeign feign-okhttp 9.3.1 io.github.openfeign feign-gson 9..

반응형