프로그래밍/Spring Framework 25

Spring Boot - nginx + tomcat 연동시 리얼아이피 설정

1.application.properties 또는 yml 에server.tomcat.protocol-header=x-forwarded-proto server.tomcat.protocol-header-https-value=https server.use-forward-headers=true server.tomcat.remote-ip-header=x-forwarded-for 를 추가하여준다. 2. nginx.conf 에 location / { proxy_pass http://argos-api; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Hos..

RestTemplate POST 요청 시 유의할 점. (RequestBody HashMap 사용)

스프링에서 제공하는 RestTemplate 을 이용하여 Post 요청을 하려면, RestTemplate template = new RestTemplate(); return template.postForObject("http://111.222.333.444/api/test/", map, Map.class);위와 같은 형태로 하면 된다. 위의 경우는 Same Policy Origin 때문에 CORS 를 해야하는 상황에서 Proxy 를 둔 상황이다. 아무튼, 위와 같이 Post 요청을 할 때 requestBody 를 인자로 전달해야하는데 이 requestBody 가 postForObject의 두번째 인자이고, Object 타입이다. 위 예에선 두번째 인자로 보낸 map이다. requestBody 를 map으로..

스프링 시큐리티를 이용한 보안 - 1부 인증

현재 맡고 있는 프로젝트의 Rest Api 가 보안이 전혀 돼 있지 않아서, 보안을 강화하는 작업을 시작했다. 보안이 전혀 돼 있지 않기 때문에, 사용자 아이디/비밀번호 정보가 없어도, Rest Api 를 호출하면 비밀정보를 쉽게 볼 수 있는 상황이였다. 보안을 위해 Spring Security 를 적용하였다. 보안 적용을 하면서 Spring Security 에 대해서 좀 더 자세히 알게 되었고, 그 내용에 대해 포스팅 하고자 한다 위 사진은 웹 기반 인증 요청을 처리하는 기본 프로세스이다. 굉장히 이해하기 쉽게 잘 도식화돼있고, 스프링 시큐리티 인증 처리의 기본 동장 방식 이기 때문에, 스프링 시큐리티를 이해하려면 반드시 위 인증 처리 과정을 이해하고 있는 것이 좋다. 설명에 앞서, 설정 파일을 JAV..

Enabling Cross Origin Requests for a RESTful Web Service

package hello; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; @Component public class SimpleCORSFilter implem..

Spring Boot - Simplifying Spring for Everyone

SpringSource 에서 Spring Boot 라는 신규 프로젝트가 릴리즈 되었다. 이게 뭔가.. 하고 살펴 보니 기존에 스프링 프레임웍 으로 프로젝트를 셋팅 하려면 프로젝트 환경설정용 xml 이나 Java 파일을 작성하고, WAS 를 설치하고 WEB.XML 을 설정하고 , 컨트롤러-서비스-DAO-DOMAIN 을 만들어서 기본 셋팅을 했다. (물론 TEMPLATE PROJECT로 해도된다) 헌데, 이 Spring Boot 프로젝트는 위 과정들을 죄다 생략 해준다.. Spring Boot SLI 라는 커맨드라인용 툴을 다운 받으면 매우 간편하게 일련의 작업들을 자동화할 수 있다. 각설하고, 간단한 예제를 보자.. 스프링 블로그에 Spring-Boot 소식이 올라왔다. 자세한 내용은 링크를 참조하여 보시..

RequestMappingHandlerMapping 관련

약 한달전에 RequestMappingHandlerMapping에 문제가 있어보인다는 포스팅을 했었고, http://javaiyagi.tistory.com/357jira에 등록하였다. https://jira.springsource.org/browse/SPR-10574 그리고 KSUG 에도 올렸다.https://groups.google.com/forum/#!topic/ksug/uSkVWfkvwkI 어제, 오늘 JIRA에 Phil과 Rossen이 답글을 달아주었다.. Phil Webb added a comment - 26/Jun/13 12:23 PMIt used to be the case that @Controller classes could be handled by the HandlerAdapter, wi..

Spring 3.2.3 DeferredResult 를 이용한 소규모 sns 개발

Spring Blog 에 올라온 DeferredResult 를 이용한 채팅 샘플 소스를 보고, sns도 순식간에 만들수 있겠다는 생각을 하여 만들어보았습니다. 우선 개발한 sns url 은 http://lrvsns.cfapps.io 입니다. cloudfoundry 에 기본적으로 사용되는 톰캣6이 Async 를 지원하지 않아서, cloudfoundry 블로그를 뒤져보니, 톰캣7을 통째로 push 하는 방법이 있더군요 .. 사용 기술은 Spring Security 3.2.0.M1 Spring Framework 3.2.3 JQuery MySql 입니다. Spring Security 관련 이슈가 좀 있었습니다. SECURITY 3.1.4.RELEASE 버전을 쓰니, DeferredResult 사용 도중 자꾸 s..