OauthTokenService.java 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package io.renren.modules.kubesphere.service;
  2. import io.renren.common.utils.GsonUtil;
  3. import io.renren.modules.app.entity.UserEntity;
  4. import io.renren.modules.kubesphere.config.KubeSphereConfig;
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. import org.springframework.http.HttpEntity;
  8. import org.springframework.http.HttpHeaders;
  9. import org.springframework.http.MediaType;
  10. import org.springframework.http.ResponseEntity;
  11. import org.springframework.stereotype.Service;
  12. import org.springframework.util.LinkedMultiValueMap;
  13. import org.springframework.web.client.RestTemplate;
  14. import java.util.Map;
  15. /**
  16. * 令牌获取
  17. *
  18. * @author chenrj
  19. * @email 1412736935@qq.com
  20. * @since 2021/8/18
  21. */
  22. @Service
  23. public class OauthTokenService {
  24. private RestTemplate restTemplate = new RestTemplate();
  25. private final Logger logger = LoggerFactory.getLogger(getClass());
  26. public String oauthToken(UserEntity user) {
  27. String username = user.getUsername();
  28. String password = user.getPassword();
  29. HttpHeaders headers = new HttpHeaders();
  30. headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
  31. LinkedMultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
  32. // 这里是为了登陆kubesphere,要向kuberphere发送token
  33. params.add("grant_type", "password");
  34. params.add("username", "admin");
  35. params.add("password", "MKcloud123");
  36. HttpEntity<LinkedMultiValueMap<String, Object>> request = new HttpEntity<>(params, headers);
  37. // 泛型为接口返回数据的类型
  38. ResponseEntity<String> response = restTemplate.postForEntity(KubeSphereConfig.URL.OAUTH_TOKEN, request, String.class);
  39. // 获取响应主体
  40. String res = response.getBody();
  41. Map<String, String> map = GsonUtil.convertJsonToMap(res);
  42. String token = map.get("access_token");
  43. logger.info(token);
  44. return token;
  45. }
  46. }