From 10de56ca16261e6a4eec49dfd32f0a6b232f7baf Mon Sep 17 00:00:00 2001 From: 晏有为 <13214124+yan-youwei@user.noreply.gitee.com> Date: 星期四, 23 五月 2024 19:05:08 +0800 Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/center-lims-after --- user-server/src/main/java/com/yuanchu/mom/util/HeaderToken.java | 154 ++++++++++++++++++--------------------------------- 1 files changed, 55 insertions(+), 99 deletions(-) diff --git a/user-server/src/main/java/com/yuanchu/mom/util/HeaderToken.java b/user-server/src/main/java/com/yuanchu/mom/util/HeaderToken.java index 147145f..3af736a 100644 --- a/user-server/src/main/java/com/yuanchu/mom/util/HeaderToken.java +++ b/user-server/src/main/java/com/yuanchu/mom/util/HeaderToken.java @@ -2,23 +2,25 @@ import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; +import cn.hutool.log.Log; import com.alibaba.fastjson.JSON; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import com.yuanchu.mom.exception.ErrorException; +import com.yuanchu.mom.mapper.UserMapper; import com.yuanchu.mom.pojo.AuthApi; import com.yuanchu.mom.pojo.Company; -import com.yuanchu.mom.pojo.Post; +import com.yuanchu.mom.pojo.Person; import com.yuanchu.mom.pojo.User; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.time.Duration; import java.util.List; +import java.util.Objects; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; @Component public class HeaderToken { @@ -26,129 +28,83 @@ @Resource private RedisTemplate redisTemplate; - public static void main(String[] args) { - HttpRequest request = HttpRequest.post("https://ztt-sso.asuncloud.net/oauth2/token") - .header("Content-Type", "application/x-www-form-urlencoded") - .form("grant_type", "client_credentials") - .form("client_id", "8b2f2c7e-2ab9-4718-8193-c0c636dceba8") - .form("client_secret", "db59b70d28ab1865aafe4008f59d4760"); - - HttpResponse response = request.execute(); - - System.out.println(response.body()); - } + @Resource + private UserMapper userMapper; public String fetchNewAccessToken() { - HttpRequest request = HttpRequest.post("https://ztt-sso.asuncloud.net/oauth2/token") + HttpRequest request = HttpRequest.post(AuthApi.code) .header("Content-Type", "application/x-www-form-urlencoded") .form("grant_type", "client_credentials") - .form("client_id", "8b2f2c7e-2ab9-4718-8193-c0c636dceba8") - .form("client_secret", "db59b70d28ab1865aafe4008f59d4760"); + .form("client_id", AuthApi.appId) + .form("client_secret", AuthApi.appSecret); HttpResponse response = request.execute(); - - System.out.println(response.body()); ObjectMapper objectMapper = new ObjectMapper(); - JsonNode jsonNode = null; + JsonNode jsonNode; try { jsonNode = objectMapper.readTree(response.body()); String accessToken = jsonNode.get("access_token").asText(); - redisTemplate.opsForValue().set("access_token",accessToken); - redisTemplate.expire("access_token", dataTime("access_token"), TimeUnit.SECONDS); - } catch (JsonProcessingException e) { - e.printStackTrace(); + Log.get().info("鑾峰彇浜轰簨绯荤粺token锛�"+accessToken); + redisTemplate.opsForValue().set("access_token",accessToken,jsonNode.get("expires_in").asInt() - 60,TimeUnit.SECONDS); + return accessToken; + } catch (Exception e) { + throw new ErrorException(e.getMessage()); } - return null; } - private String accessToken ; - //鍒ゆ柇鏄惁杩囨湡 + //鍒ゆ柇鏄惁瀛樺湪 public String getAccessToken() { - accessToken=(String) redisTemplate.opsForValue().get("access_token"); - if (accessToken == null) { + String accessToken; + if (!redisTemplate.hasKey("access_token")) { accessToken = fetchNewAccessToken(); + }else{ + accessToken = redisTemplate.opsForValue().get("access_token")+""; } return accessToken; } - //鍒ゆ柇 token 鏄惁宸插瓨鍦� - public String getToken(String token) { - String o = redisTemplate.opsForValue().get(token).toString(); - if (o != null && !o.isEmpty()) { - return o; - }else{ - redisTemplate.expire(token,dataTime("access_token"),TimeUnit.SECONDS); - String tokens = redisTemplate.opsForValue().get(token).toString(); - return tokens; - } - // 鑾峰彇 token -// accessToken = fetchNewAccessToken(); -// return accessToken; - } - - //鑾峰彇token杩囨湡鏃堕棿 - public Long dataTime(String token){ - Long access_token = redisTemplate.getExpire(token); - if(access_token != null && access_token >60) { - redisTemplate.expire(token, access_token - 60 ,TimeUnit.SECONDS); - return access_token - 60; - }//灏辩洿鎺ヨ皟鐢� - return null; - } - - //璋冪敤 - public List<Company> companyUrl() { + public List<Company> companyUrl() { String accessToken = getAccessToken(); - String getToken= getToken(accessToken); - String apiUrl =AuthApi.companies; // 鏇挎崲涓哄疄闄呯殑API绔偣URL - HttpRequest request = HttpRequest.get(apiUrl) + HttpRequest request = HttpRequest.get(AuthApi.companies) .header("Authorization", "Bearer " + accessToken); - HttpResponse response = request.execute(); - ObjectMapper objectMapper = new ObjectMapper(); - String body = response.body(); - List<Company> companies = null; + List<Company> companies; try { - companies = objectMapper.readValue(body, new TypeReference<List<Company>>(){}); - } catch (JsonProcessingException e) { - e.printStackTrace(); + companies = JSON.parseArray(request.execute().body(), Company.class); + }catch (Exception e){ + throw new ErrorException(e.getMessage()); } - return companies; + return companies.stream().filter(ob->{ + if(ob.getStatus().equals("enabled")) return true; + return false; + }).collect(Collectors.toList()); } - public List<Post> postUrl(String companyId) { + public List<Person> userUrl(String companyId) { String accessToken = getAccessToken(); - String token = getToken(accessToken); - String apiUrl =AuthApi.post+companyId; // 鏇挎崲涓哄疄闄呯殑API绔偣URL - HttpRequest request = HttpRequest.get(apiUrl) - .header("Authorization", "Bearer " + accessToken); - HttpResponse response = request.execute(); - ObjectMapper objectMapper = new ObjectMapper(); - String body = response.body(); - List<Post> posts = null; - try { - posts=objectMapper.readValue(body, new TypeReference<List<Post>>() {}); - } catch (JsonProcessingException e) { - e.printStackTrace(); - } - return posts; - } - - public List<User> userUrl(String companyId) { - String accessToken = getAccessToken(); - String token = getToken(accessToken); - String apiUrl =AuthApi.simple+companyId; // 鏇挎崲涓哄疄闄呯殑API绔偣URL - HttpRequest request = HttpRequest.get(apiUrl) + HttpRequest request = HttpRequest.get(AuthApi.simple+companyId) .header("Authorization", "Bearer " + accessToken) .header("Content-Type", "application/form-data"); - HttpResponse response = request.execute(); - ObjectMapper objectMapper = new ObjectMapper(); - String body = response.body(); - List<User> user=null; + List<Person> person; try { - user= objectMapper.readValue(body,new TypeReference<List<User>>(){}); - } catch (JsonProcessingException e) { - e.printStackTrace(); + person = JSON.parseArray(request.execute().body(), Person.class); + }catch (Exception e){ + throw new ErrorException(e.getMessage()); } - return user; + return person.stream().filter(ob->{ + if(Objects.equals(ob.getStatus(), "enabled")) { + ob.setIsLive(userMapper.selectCount(Wrappers.<User>lambdaQuery().eq(User::getAccount, ob.getEmployeeID()))); + return true; + } + return false; + }).collect(Collectors.toList()); + } + + public String getPassword(String employeeId) { + String accessToken = getAccessToken(); + HttpRequest request = HttpRequest.get(AuthApi.password + employeeId) + .header("Authorization", "Bearer " + accessToken); + System.out.println(AuthApi.password + employeeId); + System.out.println(request.execute().body()); + return JSON.parseObject(request.execute().body()).get("originalPwd").toString(); } } \ No newline at end of file -- Gitblit v1.9.3