스프링
aws s3 오브젝트 스토리지 http 오류
자바 스프링 프로젝트에서 오브젝트 스토리지에 이미지와 파일을 올리는데 해당 endpoint http 접속 오류가 발생했다.이상한건 로컬에선 정상인데, 운영서버에 올리면 오류가 발생함.request processing faild; nested exception is com.amazonaws.SdkClientException; Unable to execute HTTP reqeust: endpoint 해당 오류 내용이 발생. nslookup endpoint로 해당 도메인의 아이피를 확인 sudo nano /etc/hosts192.0.2.1 endpoint등록후 저장해준다. 기존에 정상동작 했었는데, 어느날 부터 갑자기... http 오류가 발생한다면 호스트 등록을 설정해준다. 버전 변경한게 없는데 이상하네...
스프링 WebClient로 graphql 서버에 요청응답받기
org.springframework.boot spring-boot-starter-webflux 3.0.2 com.graphql-java-kickstart graphql-webclient-spring-boot-starter 1.0.0 WebClient 가 webflux에 포함되어 있습니다. WebClient webClient = WebClient .builder() .baseUrl("https://apijosu.com/graphql") .defaultHeader("Authorization", "Bearer user token") .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) .build(); WebClient로 get,..
스프링 Oauth2 Server jdbc 이용한 토큰 Access 토큰 로그인 마다 새롭게 발급 받기 (커스텀)
토큰이 만료되었는지 체크해서 발급해주는 서비스인 TokenServices DefaultTokenServices를 상속받아서 CustomTokenServices 를 만들어줍니다. createAccessToken() 이 엑세스 토큰을 만들어 발급해주는 부분입니다. 기존 코드에는 isExpired()를 체크해서 만료되면 재발급해주는 방식입니다. 이 부분을 체크하지 않고 항상 새로 발급하도록 수정해주면 로그인 마다 매번 새로 발급되게 됩니다. package com.coupang.admin.server.coupang_admin_server.common.config; import org.springframework.security.core.AuthenticationException; import org.spring..
스프링 시큐리티 Oauth2 커스텀 Exception 만들기
@EnableAuthorizationServer public class OAuthConfig extends AuthorizationServerConfigurerAdapter { @Override public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { endpoints. /* 다른 설정 부분 생략 */ .exceptionTranslator(authorizationWebResponseExceptionTranslator()); } public WebResponseExceptionTranslator authorizationWebResponseExceptionTranslator() { return new D..
@ControllerAdvice으로 @ExceptionHandler 전역 에러 핸들러 만들기
@ControllerAdvice @RestControllerAdvice 를 사용하여 @ExceptionHandler 을 전역으로 설정 컨트롤러에서 사용되는 공통 기능들을 모듈화하기 위한 어노테이션으로, @InitBinder @ModelAttribute @ExceptionHandler 세 가지 어노테이션을 지원합니다. 이 중 @ExceptionHandler 를 사용해 보았습니다. @Slf4j @RestControllerAdvice public class ExceptionHandlerAdvice { /* 400 Bad Request - 클라이언트가 유효하지 않은 요청을 보낸 경우 401 Unauthorized - 해당 서버에 클라이언트 인증이 실패한 경우 403 Forbidden - 클라이언트가 인증은 됐지..
스프링의 의존성 주입 - 기초
Member를 생성하는 MemberService 가 있고 이를 구현하는 구현체 MemberServiceImpl 이 있습니다. Member를 DB에 저장하는 MemberRepository가 있고 이를 구현하는 구현체 MemberRepositoryImpl 이 있습니다. 이 때, MemberService는 MemberRepository를 의존하고 있습니다. MemberRepositoryImpl 를 사용하기 위해서는 이렇게 new로 생성하게 됩니다. 그런데 먄약, MemberRepositoryImpl 가 아니고, 다른 MemberRepositoryImpl2 를 사용하게 된다고 합시다. 그러면 우린 MemberServiceImpl에 있는 코드를 이렇게 바꾸게 될 것입니다. 이것은 구현체에서 직접 수정하는 것으로 ..
스프링 요청방식 어노테이션 @RequestMapping / @GetMapping / @PostMapping
Request(응답)로는 get방식과 post 방식이 있다. @RequestMapping 어노테이션을 사용하는 방법이다. method 파라미터에 RequestMethod.GET, POST로 응답 받을 수 있다. @RequestMapping(value="/test", method = RequestMethod.GET) public String test() { return "test"; } @RequestMapping(value="/test", method = RequestMethod.POST) public String test() { return "test"; } 이 어노테이션을 간단하게 만들어주는 어노테이션이 있다. @GetMapping 과 @PostMapping 이 있다. 사용방법은 다음과 같다. @Ge..
spring mvc 5 pom.xml 버전관리
스프링 라이브러리 버전관리 및 세팅 방법 중에 pom.xml을 사용한 방법이다. (maven) 밑에 코드를 보면 poroperties 안에 으로 서블릿 버전이 있다. dependency 안에 version 에 ${javax.servlet-version} 로 렌더링 해서 properties 에서 버전만 변경해도 적용 할 수 있다. 1.6 3.1.1.RELEASE 1.6.10 1.6.6 4.0.1 javax.servlet javax.servlet-api ${javax.servlet-version} provided