Browse Source

获取token接口,将结果封装成对象返回

dev
wxz 4 years ago
parent
commit
eec8246499
  1. 19
      epmet-commons/epmet-commons-security/src/main/java/com/epmet/commons/security/jwt/JwtUtils.java
  2. 4
      epmet-commons/epmet-commons-security/src/main/java/com/epmet/commons/security/sign/openapi/OpenApiSignUtils.java
  3. 12
      epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/result/openapi/GetAccessTokenResultDTO.java
  4. 7
      epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/controller/OpenApiAccessTokenController.java
  5. 4
      epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/service/OpenApiAccessTokenService.java
  6. 15
      epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/service/impl/OpenApiAccessTokenServiceImpl.java

19
epmet-commons/epmet-commons-security/src/main/java/com/epmet/commons/security/jwt/JwtUtils.java

@ -78,6 +78,25 @@ public class JwtUtils {
.compact();
}
/**
* @Description 创建Token
* @return Token
* @param claims 载荷信息
* @param expireTime 过期时间
* @param secret 秘钥
* @author wxz
* @date 2021.03.26 13:33
*/
public String createToken(Map<String, Object> claims, Date expireTime, String secret) {
return Jwts.builder()
.setHeaderParam("typ", "JWT")
.setClaims(claims)
.setIssuedAt(new Date())
.setExpiration(expireTime)
.signWith(SignatureAlgorithm.HS512, secret)
.compact();
}
/**
* token是否过期
*

4
epmet-commons/epmet-commons-security/src/main/java/com/epmet/commons/security/sign/openapi/OpenApiSignUtils.java

@ -60,8 +60,8 @@ public class OpenApiSignUtils {
}
public static void main(String[] args) {
//generateGetAccessTokenSign();
generateGetOrgDetailSign();
generateGetAccessTokenSign();
//generateGetOrgDetailSign();
}
private static void generateGetAccessTokenSign() {

12
epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/result/openapi/GetAccessTokenResultDTO.java

@ -0,0 +1,12 @@
package com.epmet.dto.result.openapi;
import lombok.Data;
@Data
public class GetAccessTokenResultDTO {
private String accessToken;
private Long expireTime;
}

7
epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/controller/OpenApiAccessTokenController.java

@ -7,6 +7,7 @@ import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.openapi.OpenApiBaseFormDTO;
import com.epmet.dto.result.openapi.GetAccessTokenResultDTO;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.service.OpenApiAccessTokenService;
import org.apache.commons.lang3.StringUtils;
@ -38,7 +39,7 @@ public class OpenApiAccessTokenController {
*/
@OpenApiCheckSign
@PostMapping("get-access-token")
public Result<String> getAccessToken(@RequestParam("app_id") String appId) {
public Result<GetAccessTokenResultDTO> getAccessToken(@RequestParam("app_id") String appId) {
// 1.取secret
String secret = (String)redisUtils.get(RedisKeys.getExternalAppSecretKey(appId));
if (StringUtils.isBlank(secret)) {
@ -54,8 +55,8 @@ public class OpenApiAccessTokenController {
}
//2.生成token
String accessToken = openApiAccessTokenService.getAccessToken(appId, secret);
return new Result<String>().ok(accessToken);
GetAccessTokenResultDTO content = openApiAccessTokenService.getAccessToken(appId, secret);
return new Result<GetAccessTokenResultDTO>().ok(content);
}
}

4
epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/service/OpenApiAccessTokenService.java

@ -1,5 +1,7 @@
package com.epmet.service;
import com.epmet.dto.result.openapi.GetAccessTokenResultDTO;
/**
* access token的service
*/
@ -11,5 +13,5 @@ public interface OpenApiAccessTokenService {
* @author wxz
* @date 2021.03.22 22:57
*/
String getAccessToken(String appId, String secret);
GetAccessTokenResultDTO getAccessToken(String appId, String secret);
}

15
epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/service/impl/OpenApiAccessTokenServiceImpl.java

@ -4,11 +4,14 @@ import com.epmet.commons.security.jwt.JwtUtils;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.config.OpenApiConfig;
import com.epmet.dto.result.openapi.GetAccessTokenResultDTO;
import com.epmet.openapi.constant.RequestParamKeys;
import com.epmet.service.OpenApiAccessTokenService;
import org.joda.time.DateTime;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashMap;
@Service
@ -24,15 +27,19 @@ public class OpenApiAccessTokenServiceImpl implements OpenApiAccessTokenService
private RedisUtils redisUtils;
@Override
public String getAccessToken(String appId, String secret) {
public GetAccessTokenResultDTO getAccessToken(String appId, String secret) {
HashMap<String, Object> claim = new HashMap<>();
claim.put(RequestParamKeys.APP_ID, appId);
String token = jwtTokenUtils.createToken(claim, openApiConfig.getAccessTokenExpire(), secret);
Date expireTime = DateTime.now().plusSeconds(openApiConfig.getAccessTokenExpire()).toDate();
String token = jwtTokenUtils.createToken(claim, expireTime, secret);
// 缓存token
redisUtils.set(RedisKeys.getOpenApiAccessTokenKey(appId), token, openApiConfig.getAccessTokenExpire());
return token;
GetAccessTokenResultDTO content = new GetAccessTokenResultDTO();
content.setAccessToken(token);
content.setExpireTime(expireTime.getTime());
return content;
}
}

Loading…
Cancel
Save