RestTemplateConfig.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package com.sky.ioc.config;
  2. import com.sky.ioc.job.LoginTokenJob;
  3. import com.sky.ioc.mapper.job.TokenMapper;
  4. import com.sky.ioc.service.system.UserService;
  5. import org.apache.commons.lang3.StringUtils;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.beans.factory.annotation.Value;
  8. import org.springframework.boot.web.client.RestTemplateBuilder;
  9. import org.springframework.context.annotation.Bean;
  10. import org.springframework.context.annotation.Configuration;
  11. import org.springframework.http.client.SimpleClientHttpRequestFactory;
  12. import org.springframework.web.client.RestTemplate;
  13. import javax.annotation.Resource;
  14. import javax.net.ssl.HttpsURLConnection;
  15. import java.io.IOException;
  16. import java.net.HttpURLConnection;
  17. import java.time.Duration;
  18. import java.time.temporal.ChronoUnit;
  19. import java.util.Map;
  20. @Configuration
  21. public class RestTemplateConfig {
  22. @Resource
  23. TokenMapper tokenMapper;
  24. @Value("${sky.dataIp}")
  25. private String dataIp;
  26. private static RestTemplateBuilder builder = null;
  27. static {
  28. builder = new RestTemplateBuilder(restTemplate -> restTemplate.setRequestFactory(new SimpleClientHttpRequestFactory() {
  29. @Override
  30. protected void prepareConnection(HttpURLConnection connection, String httpMethod) throws IOException {
  31. if (connection instanceof HttpsURLConnection) {
  32. ((HttpsURLConnection) connection).setHostnameVerifier((s, sslSession) -> true);
  33. }
  34. super.prepareConnection(connection, httpMethod);
  35. }
  36. }))
  37. // 超时时间
  38. .setConnectTimeout(Duration.of(5*60, ChronoUnit.SECONDS))
  39. .setReadTimeout(Duration.of(5*60, ChronoUnit.SECONDS));
  40. }
  41. @Bean
  42. public RestTemplate restTemplate(){
  43. return build();
  44. }
  45. public RestTemplate build() {
  46. Map<String,String> tokenMap = tokenMapper.getNewToken();
  47. String token ="Bearer eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6IjUwZTU1NTRkLWJjYzYtNGRhMS1iZDUxLWFhNTc3YzU4YTFiNCIsInVzZXJuYW1lIjoiYWRtaW4ifQ.X10VPYJfeeRTka7OtqNPOGMpL4QkW3fR_TfCKXCmO-yXbIIrr_40fcwiVnpXfYVENo_BvXWEACRd-Y6nXsbkog";
  48. if(tokenMap!=null){
  49. token = "Bearer "+tokenMap.get("token");
  50. }
  51. // 默认请求头
  52. builder = builder.defaultHeader("authorization", token);
  53. return builder.build();
  54. }
  55. public String addBaseUrl(String url) {
  56. if (url.startsWith("http")) {
  57. return url;
  58. }
  59. url = StringUtils.removeStart(url, "/");
  60. String baseUrl = StringUtils.appendIfMissing("http://"+dataIp, "/");
  61. return baseUrl + url;
  62. }
  63. }