From 8a1ce8dd1766e2bae56a8c622e84befd42c4cfe6 Mon Sep 17 00:00:00 2001 From: Anna-Jin Date: Tue, 12 Jul 2022 00:46:25 +0900 Subject: [PATCH] =?UTF-8?q?#17=20[Update]=20Refresh=20token=20=EB=B0=9C?= =?UTF-8?q?=EA=B8=89=EB=B0=9B=EA=B8=B0=20=EC=84=B1=EA=B3=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/service/PublicApiService.java | 82 +++++++++---------- .../OAuth2AuthenticationSuccessHandler.java | 1 + .../user/controller/authController.java | 8 +- 3 files changed, 46 insertions(+), 45 deletions(-) diff --git a/src/main/java/com/mpnp/baechelin/api/service/PublicApiService.java b/src/main/java/com/mpnp/baechelin/api/service/PublicApiService.java index adbcd7d..4e519f9 100644 --- a/src/main/java/com/mpnp/baechelin/api/service/PublicApiService.java +++ b/src/main/java/com/mpnp/baechelin/api/service/PublicApiService.java @@ -41,47 +41,47 @@ public class PublicApiService { */ private final StoreRepository storeRepository; private final LocationService locationService; - private final HttpConfig httpConfig; - ObjectMapper objectMapper = new ObjectMapper(); - - public PublicApiResponseDto processApiToDBWithWebclientMono(PublicApiRequestDto publicApiRequestDto) throws UnsupportedEncodingException { - WebClient client = WebClient.builder() - .baseUrl("http://openapi.seoul.go.kr:8088") -// .defaultCookie("cookieKey", "cookieValue") - .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML_VALUE) - .defaultUriVariables(Collections.singletonMap("url", "http://openapi.seoul.go.kr:8088")) - .clientConnector(new ReactorClientHttpConnector(httpConfig.httpClient())) // 위의 타임아웃 적용 - .build(); - - String key = URLEncoder.encode(publicApiRequestDto.getKey(), "UTF-8"); /*인증키 (sample사용시에는 호출시 제한됩니다.)*/ - String type = URLEncoder.encode(publicApiRequestDto.getType(), "UTF-8"); /*요청파일타입 (xml,xmlf,xls,json) */ - String service = URLEncoder.encode(publicApiRequestDto.getService(), "UTF-8"); /*서비스명 (대소문자 구분 필수입니다.)*/ - String start = URLEncoder.encode(String.valueOf(publicApiRequestDto.getStartIndex()), "UTF-8"); /*요청시작위치 (sample인증키 사용시 5이내 숫자)*/ - String end = URLEncoder.encode(String.valueOf(publicApiRequestDto.getEndIndex()), "UTF-8"); /*요청종료위치(sample인증키 사용시 5이상 숫자 선택 안 됨)*/ - - PublicApiResponseDto result = client.get().uri( - uriBuilder -> uriBuilder.pathSegment(key, type, service, start, end).path("/") - .build()) - .accept(MediaType.APPLICATION_JSON) - .retrieve() - .onStatus(HttpStatus::is4xxClientError, response -> { - throw new IllegalAccessError("400"); - }) - .onStatus(HttpStatus::is5xxServerError, response -> { - throw new IllegalAccessError("500"); - }) - .bodyToMono(PublicApiResponseDto.class).flux() - .toStream() - .findFirst() - .orElse(null); - if (result == null) { - return null; - } - setInfos(result); - saveDTO(result.getTouristFoodInfo().getRow()); - return result; - - } +// private final HttpConfig httpConfig; +// ObjectMapper objectMapper = new ObjectMapper(); +// +// public PublicApiResponseDto processApiToDBWithWebclientMono(PublicApiRequestDto publicApiRequestDto) throws UnsupportedEncodingException { +// WebClient client = WebClient.builder() +// .baseUrl("http://openapi.seoul.go.kr:8088") +//// .defaultCookie("cookieKey", "cookieValue") +// .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_XML_VALUE) +// .defaultUriVariables(Collections.singletonMap("url", "http://openapi.seoul.go.kr:8088")) +// .clientConnector(new ReactorClientHttpConnector(httpConfig.httpClient())) // 위의 타임아웃 적용 +// .build(); +// +// String key = URLEncoder.encode(publicApiRequestDto.getKey(), "UTF-8"); /*인증키 (sample사용시에는 호출시 제한됩니다.)*/ +// String type = URLEncoder.encode(publicApiRequestDto.getType(), "UTF-8"); /*요청파일타입 (xml,xmlf,xls,json) */ +// String service = URLEncoder.encode(publicApiRequestDto.getService(), "UTF-8"); /*서비스명 (대소문자 구분 필수입니다.)*/ +// String start = URLEncoder.encode(String.valueOf(publicApiRequestDto.getStartIndex()), "UTF-8"); /*요청시작위치 (sample인증키 사용시 5이내 숫자)*/ +// String end = URLEncoder.encode(String.valueOf(publicApiRequestDto.getEndIndex()), "UTF-8"); /*요청종료위치(sample인증키 사용시 5이상 숫자 선택 안 됨)*/ +// +// PublicApiResponseDto result = client.get().uri( +// uriBuilder -> uriBuilder.pathSegment(key, type, service, start, end).path("/") +// .build()) +// .accept(MediaType.APPLICATION_JSON) +// .retrieve() +// .onStatus(HttpStatus::is4xxClientError, response -> { +// throw new IllegalAccessError("400"); +// }) +// .onStatus(HttpStatus::is5xxServerError, response -> { +// throw new IllegalAccessError("500"); +// }) +// .bodyToMono(PublicApiResponseDto.class).flux() +// .toStream() +// .findFirst() +// .orElse(null); +// if (result == null) { +// return null; +// } +// setInfos(result); +// saveDTO(result.getTouristFoodInfo().getRow()); +// return result; +// +// } public PublicApiResponseDto processApiToDBWithRestTemplate(PublicApiRequestDto publicApiRequestDto) throws UnsupportedEncodingException, JsonProcessingException { HttpHeaders headers = new HttpHeaders(); diff --git a/src/main/java/com/mpnp/baechelin/oauth/handler/OAuth2AuthenticationSuccessHandler.java b/src/main/java/com/mpnp/baechelin/oauth/handler/OAuth2AuthenticationSuccessHandler.java index b5ccd88..f7efcbd 100644 --- a/src/main/java/com/mpnp/baechelin/oauth/handler/OAuth2AuthenticationSuccessHandler.java +++ b/src/main/java/com/mpnp/baechelin/oauth/handler/OAuth2AuthenticationSuccessHandler.java @@ -105,6 +105,7 @@ protected String determineTargetUrl(HttpServletRequest request, HttpServletRespo // refresh token이 이미 존재한다면 토큰 업데이트 if (userRefreshToken != null) { userRefreshToken.setRefreshToken(refreshToken.getToken()); + userRefreshTokenRepository.saveAndFlush(userRefreshToken); } else { // refresh token이 없다면 DB에 저장 userRefreshToken = new UserRefreshToken(userInfo.getId(), refreshToken.getToken()); diff --git a/src/main/java/com/mpnp/baechelin/user/controller/authController.java b/src/main/java/com/mpnp/baechelin/user/controller/authController.java index 8c1fb65..5d8877d 100644 --- a/src/main/java/com/mpnp/baechelin/user/controller/authController.java +++ b/src/main/java/com/mpnp/baechelin/user/controller/authController.java @@ -44,9 +44,9 @@ public AuthResponse refreshToken (HttpServletRequest request, HttpServletRespons // access token 확인 String accessToken = HeaderUtil.getAccessToken(request); AuthToken authToken = tokenProvider.convertAuthToken(accessToken); - if (!authToken.validate()) { - return AuthResponse.invalidAccessToken(); - } +// if (!authToken.validate()) { +// return AuthResponse.invalidAccessToken(); +// } // expired access token 인지 확인 Claims claims = authToken.getExpiredTokenClaims(); @@ -63,7 +63,7 @@ public AuthResponse refreshToken (HttpServletRequest request, HttpServletRespons .orElse((null)); AuthToken authRefreshToken = tokenProvider.convertAuthToken(refreshToken); - if (authRefreshToken.validate()) { + if (!authRefreshToken.validate()) { return AuthResponse.invalidRefreshToken(); }