You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
3.0 KiB
72 lines
3.0 KiB
package com.lh.until;
|
|
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.lh.bean.dto.TokenDTO;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
|
import org.apache.http.client.methods.HttpPost;
|
|
import org.apache.http.entity.ContentType;
|
|
import org.apache.http.entity.StringEntity;
|
|
import org.apache.http.impl.client.CloseableHttpClient;
|
|
import org.apache.http.impl.client.HttpClients;
|
|
import org.apache.http.util.EntityUtils;
|
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import javax.annotation.Resource;
|
|
import java.io.IOException;
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
@Slf4j
|
|
@Component
|
|
public class Utils {
|
|
@Resource
|
|
private StringRedisTemplate stringRedisTemplate;
|
|
// 获取token中的信息
|
|
public TokenDTO analysisToken(String token) throws IOException {
|
|
// 编码Token
|
|
String url = "http://39.101.133.168:8828/hljw/api/v2/member/info";
|
|
// 创建HttpClient实例
|
|
try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
|
|
// 创建POST请求
|
|
HttpPost postRequest = new HttpPost(url);
|
|
postRequest.setHeader("Content-Type", "application/x-www-form-urlencoded");
|
|
System.out.println(token);
|
|
// 设置请求体参数
|
|
StringEntity entity = new StringEntity(token, ContentType.APPLICATION_FORM_URLENCODED);
|
|
postRequest.setEntity(entity);
|
|
// 发送请求并获取响应
|
|
try (CloseableHttpResponse response = httpClient.execute(postRequest)) {
|
|
int responseCode = response.getStatusLine().getStatusCode(); // 获取状态码
|
|
// 检查响应状态
|
|
if (responseCode == 200) {
|
|
// 读取响应体
|
|
String responseBody = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
|
|
// 使用Jackson解析JSON响应体
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
JsonNode jsonResponse = objectMapper.readTree(responseBody);
|
|
JsonNode dataNode = jsonResponse.get("data");
|
|
TokenDTO tokenDTO = new TokenDTO();
|
|
tokenDTO.setJwcode(dataNode.get("jwcode").asInt());
|
|
tokenDTO.setUsername(dataNode.get("username").asText());
|
|
return tokenDTO;
|
|
}
|
|
else {
|
|
throw new RuntimeException("Failed : HTTP error code : " + responseCode);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// 获取token中的jwcode
|
|
public Integer getJwcode(String token) throws IOException {
|
|
TokenDTO dto = analysisToken(token);
|
|
return dto.getJwcode();
|
|
}
|
|
public String getUsername(String token) throws IOException {
|
|
TokenDTO dto = analysisToken(token);
|
|
return dto.getUsername();
|
|
}
|
|
|
|
}
|