DanziAuthUtils.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package com.icontrols.oauth.utils;
  2. import java.io.UnsupportedEncodingException;
  3. import java.security.GeneralSecurityException;
  4. import java.security.NoSuchAlgorithmException;
  5. import java.util.HashMap;
  6. import java.util.Map;
  7. import org.apache.tomcat.util.json.JSONParser;
  8. import org.json.JSONObject;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.http.HttpEntity;
  13. import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
  14. import org.springframework.web.client.RestTemplate;
  15. import com.icontrols.oauth.model.ClientInfo;
  16. import com.icontrols.oauth.model.Token;
  17. import com.icontrols.oauth.repo.ClientInfoRepository;
  18. public class DanziAuthUtils {
  19. private static final Logger logger = LoggerFactory.getLogger(DanziAuthUtils.class);
  20. @Autowired
  21. ClientInfoRepository clientInfoRepo;
  22. public static String create(Token newToken, String url)
  23. throws UnsupportedEncodingException, NoSuchAlgorithmException, GeneralSecurityException {
  24. Map<String, Object> body = new HashMap<>();
  25. Map<String, Object> token = new HashMap<>();
  26. token.put("accessToken", newToken.getAccess_token());
  27. token.put("refreshToken", newToken.getRefresh_token());
  28. body.put("id", System.currentTimeMillis() + "");
  29. body.put("type", "CREATE");
  30. body.put("body", token);
  31. logger.info(body.toString());
  32. String complex = JWTUtils.getCmpIpFromToken(newToken.getAccess_token());
  33. String endpoint = "http://" + complex + url + "/accessToken";
  34. HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
  35. factory.setReadTimeout(3000);
  36. factory.setConnectTimeout(3000);
  37. RestTemplate template = new RestTemplate(factory);
  38. HttpEntity<Object> entity = new HttpEntity<Object>(body);
  39. String answer = null;
  40. try {
  41. answer = template.postForObject(endpoint, entity, String.class);
  42. } catch (Exception e) {
  43. return null;
  44. }
  45. // logger.info(answer);
  46. // JSONObject obj = new JSONObject(answer);
  47. // if (!obj.get("result").toString().equalsIgnoreCase("success")) {
  48. // return false;
  49. // }
  50. return answer;
  51. }
  52. public static String refresh(String url, Token newToken, String prevToken) {
  53. Map<String, Object> body = new HashMap<>();
  54. Map<String, Object> token = new HashMap<>();
  55. token.put("prevRefreshToken", prevToken);
  56. token.put("newAccessToken", newToken.getAccess_token());
  57. token.put("newRefreshToken", newToken.getRefresh_token());
  58. body.put("id", System.currentTimeMillis() + "");
  59. body.put("type", "REFRESH");
  60. body.put("body", token);
  61. String complex = JWTUtils.getCmpIpFromToken(prevToken);
  62. String endpoint = "http://" + complex + url + "/accessToken";
  63. HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
  64. factory.setReadTimeout(3000);
  65. factory.setConnectTimeout(3000);
  66. RestTemplate template = new RestTemplate(factory);
  67. HttpEntity<Object> entity = new HttpEntity<Object>(body);
  68. String answer = null;
  69. try {
  70. answer = template.postForObject(endpoint, entity, String.class);
  71. } catch (Exception e) {
  72. return null;
  73. }
  74. return answer;
  75. }
  76. public static String get(String url, String refreshToken) {
  77. Map<String, Object> body = new HashMap<>();
  78. Map<String, Object> token = new HashMap<>();
  79. token.put("refreshToken", refreshToken);
  80. body.put("id", System.currentTimeMillis() + "");
  81. body.put("type", "GET");
  82. body.put("body", token);
  83. String complex = JWTUtils.getCmpIpFromToken(refreshToken);
  84. String endpoint = "http://" + complex + url + "/accessToken";
  85. HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
  86. factory.setReadTimeout(3000);
  87. factory.setConnectTimeout(3000);
  88. RestTemplate template = new RestTemplate(factory);
  89. HttpEntity<Object> entity = new HttpEntity<Object>(body);
  90. String answer = null;
  91. try {
  92. answer = template.postForObject(endpoint, entity, String.class);
  93. } catch (Exception e) {
  94. return null;
  95. }
  96. logger.info(answer);
  97. return answer;
  98. }
  99. }