123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- package com.sooka.service.impl;
- import com.sooka.enums.ResultEnum;
- import com.sooka.mapper.AuthCNMDMapper;
- import com.sooka.model.ResultModel;
- import com.sooka.model.db.IntDetailed;
- import com.sooka.model.db.IntDetailed_SP;
- import com.sooka.service.AuthService;
- import com.sooka.mapper.AuthMapper;
- import com.sooka.utils.SecretKeyUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import tk.mybatis.mapper.entity.Example;
- import javax.annotation.Resource;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.List;
- import java.util.Objects;
- @Service
- public class AuthServiceImpl implements AuthService {
- @Resource
- private AuthCNMDMapper authCNMDMapper;
- // @Autowired
- // private AuthMapper authMapper;
- @Override
- public ResultModel auth(String secretKey, String intCode) {
- System.out.println("进入 com.sooka.service.impl");
- // Example userExample = new Example(IntDetailed.class);
- // Example.Criteria criteria = userExample.createCriteria();
- // 小于等于
- // 原授权码到期验证
- // criteria.andLessThanOrEqualTo("strAt", DateUtils.format(new Date(), DateUtils.DATE_TIME_PATTERN));
- // 大于等于
- // 原授权码到期验证
- // criteria.andGreaterThanOrEqualTo("endAt", DateUtils.format(new Date(), DateUtils.DATE_TIME_PATTERN));
- // 等于
- // criteria.andEqualTo("secretKey", secretKey);
- // List<IntDetailed> list = authMapper.selectByExample(userExample);
- IntDetailed_SP intDetailedParam = new IntDetailed_SP();
- intDetailedParam.setSecretKey(secretKey);
- System.out.println("start querying...");
- List<IntDetailed_SP> list = authCNMDMapper.selectIntDetailedList(intDetailedParam);
- System.out.println("query finished. list.size=" + list.size());
- // 原授权码到期验证
- // if (list == null || list.size() != 1) {
- // return ResultModel.error(ResultEnum.ERROR_AUTH_EXPIRES);
- // }
- // IntDetailed intDetailed = list.get(0);
- // 新授权码到期验证
- boolean isAuthExpires;
- IntDetailed_SP intDetailed;
- if(list == null){
- System.out.println("无此密钥" + secretKey);
- }else if(list.size() == 0){
- System.out.println("存在0个密钥" + secretKey);
- }else if(list.size() > 1){
- System.out.println("存在多个异常密钥" + secretKey);
- }else if(list.size() == 1){
- System.out.println("存在1个密钥 secretKey=" + list.get(0).getSecretKey());
- }
- if (list != null && list.size() == 1) {
- intDetailed = list.get(0);
- if(intDetailed.getRecordId() != null){ // 新接口解析密钥判断授权时效
- // 解密后的明文是:123/政数局/2022-10-20 - 2022-10-29/b29c94d72ee74c6d94b573d90020ea59
- // String duration = SecretKeyUtil.AESDncode("3fc674da58", intDetailed.getSecretKey().split("/")[2]);
- String secret_key = intDetailed.getSecretKey();
- System.out.println("secret_key=" + secret_key);
- String secret_content = SecretKeyUtil.AESDncode("3fc674da58", secret_key);
- System.out.println("secret_content=" + secret_content);
- String duration = secret_content.split("/")[2];
- // String duration = intDetailed.getSecretContent().split("/")[2];
- System.out.println("duration=" + duration);
- // 2022-10-20 - 2022-10-29
- String startTime = duration.split(" - ")[0];
- String endTime = duration.split(" - ")[1];
- String nowTime = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
- if(nowTime.compareTo(startTime) != -1 && endTime.compareTo(nowTime) != -1){
- isAuthExpires = false; // 授权有效
- System.out.println("授权有效");
- }else {
- isAuthExpires = true; // 授权已到期
- System.out.println("授权已到期");
- }
- }else { // legacy
- isAuthExpires = false; // 旧接口按照原密钥接收数据,授权长期有效
- System.out.println("旧接口按照原密钥接收数据,授权长期有效");
- }
- }else { // 授权失效或无此密钥及存在多个异常密钥,提示授权码到期请重新申请
- String a ="1HjlUwOjkNCuvi+E8+r+4oYWPV1lDMF6l8E7GovGe9h4GtK4nDBXQKirD57TTku+08MHkHsS04X8xpKGQTrNOxG5LfweCxtHbmoUczwF9Y8=";
- intDetailed = null;
- isAuthExpires = true;
- System.out.println("授权失效或无此密钥及存在多个异常密钥,提示授权码到期请重新申请");
- }
- if (isAuthExpires) {
- return ResultModel.error(ResultEnum.ERROR_AUTH_EXPIRES);
- }
- if (!Objects.equals(intCode, intDetailed.getCode()) && !Objects.equals(intCode, intDetailed.getCodeSp())) {// 旧秘钥验证 && 新秘钥验证
- return ResultModel.error(ResultEnum.ERROR_INT_SECRET_KEY_MISMATCH);
- }
- // // 原申请接口状态验证
- // if (!"1".equalsIgnoreCase(intDetailed.getStatus())) {
- // return ResultModel.error(ResultEnum.ERROR_INTERFACE_DISABLED);
- // }
- return ResultModel.ok(list);
- }
- }
|