From 14201c5bc86b6ed1a97fcb5d61fabd04c9a8a68b Mon Sep 17 00:00:00 2001
From: wayne <wayne8692wayne8692@gmail.com>
Date: 星期二, 23 十一月 2021 11:55:52 +0800
Subject: [PATCH] [update] 因EService回覆content-type為空,導致轉換錯誤,現已修正,順便設定log儲存的位置

---
 pamapi/src/main/java/com/pollex/pam/security/provider/EServiceAuthenticationProvider.java |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/pamapi/src/main/java/com/pollex/pam/security/provider/EServiceAuthenticationProvider.java b/pamapi/src/main/java/com/pollex/pam/security/provider/EServiceAuthenticationProvider.java
index 28a2a19..35a6ce8 100644
--- a/pamapi/src/main/java/com/pollex/pam/security/provider/EServiceAuthenticationProvider.java
+++ b/pamapi/src/main/java/com/pollex/pam/security/provider/EServiceAuthenticationProvider.java
@@ -17,6 +17,8 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.*;
 import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
 import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.Authentication;
@@ -32,10 +34,7 @@
 import java.security.KeyStoreException;
 import java.security.NoSuchAlgorithmException;
 import java.security.cert.X509Certificate;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @Component
 public class EServiceAuthenticationProvider {
@@ -98,6 +97,7 @@
         String dtoJson = new ObjectMapper().writeValueAsString(dto);
 
         RestTemplate restTemplate = getTrustAllRestTemplate();
+        settingMessageConvertesToSpecifyType(restTemplate, MediaType.ALL);
 
         HttpHeaders headers = new HttpHeaders();
         headers.setContentType(MediaType.APPLICATION_JSON);
@@ -120,4 +120,12 @@
         requestFactory.setReadTimeout(300000);
         return new RestTemplate(requestFactory);
     }
+
+    private void settingMessageConvertesToSpecifyType(RestTemplate restTemplate, MediaType mediaType) {
+        List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
+        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
+        converter.setSupportedMediaTypes(Collections.singletonList(mediaType));
+        messageConverters.add(converter);
+        restTemplate.setMessageConverters(messageConverters);
+    }
 }

--
Gitblit v1.8.0