Commit f34403cc authored by zhangyingbin's avatar zhangyingbin

添加到块

parent 0f42809b
package com.yeejoin.amos.api.aop;
import com.yeejoin.amos.component.feign.config.TokenOperation;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.typroject.tyboot.component.cache.Redis;
import org.typroject.tyboot.core.auth.exception.AuthException;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import javax.servlet.http.HttpServletRequest;
import
@Aspect
@Component
@Order(value = 0)
public class ControllerAop {
@Autowired
private RedisTemplate redisTemplate;
@Pointcut("(execution(public * com.yeejoin.amos.api.controller..*(..))) ")
public void userCache() {
}
@Before("userCache()")
public void doBefore(JoinPoint joinPoint) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
// 不需要添加请求头的接口
String[] url = new String[]{"/api/user/selectInfo", "/api/user/save/curCompany","/openapi/bizToken/applyToken","/openapi/bizToken/getAppId","/lift/upload","/lift/status","/lift/run","/lift/fault","/lift/video/preview","/cylinderPage/serviceProvider","/cylinderPage/getTableInfo","/cylinderPage/initCylinderNum"};
// 获取请求路径
for(String uri : url) {
if(request.getRequestURI().indexOf(uri) != -1) {
return;
}
}
//TODO tyboot 框架拦截器已缓存数据
String token = RequestContext.getToken();
if (ValidationUtil.isEmpty(token)) {
token = request.getParameterMap().get("access_token")[0];
}
if (token != null) {
fillRequestContext(token);
}
boolean validToken = TokenOperation.refresh(token);
if(!validToken) {
throw new AuthException("请求未包含认证信息.");
}
}
private void fillRequestContext(String token) {
String tokenKey = Redis.genKey(Constant.TOKEN_PREFIX,token);
BizTokenModel bizTokenModel = (BizTokenModel) redisTemplate.opsForValue().get(tokenKey);
if(null == bizTokenModel) {
throw new AuthException("请求未包含认证信息.");
}
String product = bizTokenModel.getProduct();
String appKey = bizTokenModel.getAppKey();
RequestContext.setToken(token);
RequestContext.setProduct(product);
RequestContext.setAppKey(appKey);
}
}
package com.yeejoin.amos.api.constant;
public class Constant {
public static final String TOKEN_PREFIX = "OPENAPI_";
public static final String SECRETKEY = "tzs";
}
package com.yeejoin.amos.api.openapi.controller;
package com.yeejoin.amos.api.controller;
import com.yeejoin.amos.api.common.restful.utils.ResponseHelper;
import com.yeejoin.amos.api.common.restful.utils.ResponseModel;
......
package com.yeejoin.amos.api.controller.event;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yeejoin.amos.api.openapi.constant.Constant;
import com.yeejoin.amos.api.openapi.face.model.BizTokenModel;
import com.yeejoin.amos.api.openapi.face.model.OpenapiLogModel;
import com.yeejoin.amos.api.openapi.face.service.OpenapiLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.component.cache.Redis;
import org.typroject.tyboot.component.event.RestEvent;
import org.typroject.tyboot.component.event.RestEventHandler;
/**
*
* <pre>
* 第三方API对接日志处理
* </pre>
*
* @author gwb
* @version $Id: OpenapiLogEventHandler.java, v 0.1 2021年11月10日 下午5:38:32 gwb Exp $
*/
@Component("openapiLogEventHandler")
public class OpenapiLogEventHandler extends RestEventHandler {
static ObjectMapper objectMapper = new ObjectMapper();
@Autowired
private RedisTemplate redisTemplate;
@Autowired
private OpenapiLogService openapiLogService;
@Override
protected void handleEvent(RestEvent restEvent) throws Exception {
OpenapiLogModel openapiLogModel = new OpenapiLogModel();
openapiLogModel.setMethodLabel(restEvent.getMethodLabel());
openapiLogModel.setMethodName(restEvent.getMethodName());
openapiLogModel.setParams(objectMapper.writeValueAsString(restEvent.getParams()));
openapiLogModel.setResult(objectMapper.writeValueAsString(restEvent.getSource()));
openapiLogModel.setRemoteIp(restEvent.getRequestContextModel().getRequestIP());
String token = restEvent.getRequestContextModel().getToken();
openapiLogModel.setToken(token);
openapiLogModel.setTraceId(restEvent.getRequestContextModel().getTraceId());
openapiLogModel.setAgencyCode(restEvent.getRequestContextModel().getAgencyCode());
openapiLogModel.setAppCode(restEvent.getRequestContextModel().getAppKey());
String tokenKey = Redis.genKey(Constant.TOKEN_PREFIX,token);
BizTokenModel bizTokenModel = (BizTokenModel) redisTemplate.opsForValue().get(tokenKey);
openapiLogModel.setAppId(bizTokenModel.getAppId());
openapiLogService.createWithModel(openapiLogModel);
}
}
package com.yeejoin.amos.api.openapi.face.model;
package com.yeejoin.amos.api.face.model;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
......
package com.yeejoin.amos.api.openapi.face.orm.dao;
package com.yeejoin.amos.api.face.orm.dao;
import com.yeejoin.amos.api.openapi.face.orm.entity.TaAccessConfig;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
......
package com.yeejoin.amos.api.openapi.face.orm.dao;
package com.yeejoin.amos.api.face.orm.dao;
import com.yeejoin.amos.api.openapi.face.orm.entity.TaLicenseBaseInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
......
package com.yeejoin.amos.api.openapi.face.orm.dao;
package com.yeejoin.amos.api.face.orm.dao;
import com.yeejoin.amos.api.openapi.face.orm.entity.TaLicenseDetailInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
......
package com.yeejoin.amos.api.openapi.face.orm.entity;
package com.yeejoin.amos.api.face.orm.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
......
package com.yeejoin.amos.api.openapi.face.service;
package com.yeejoin.amos.api.face.service;
import com.yeejoin.amos.api.openapi.face.model.TaAccessConfigModel;
import com.yeejoin.amos.api.openapi.face.orm.dao.TaAccessConfigMapper;
......
package com.yeejoin.amos.api.openapi.face.service;
package com.yeejoin.amos.api.face.service;
import com.yeejoin.amos.api.openapi.face.model.TaLicenseBaseInfoModel;
import com.yeejoin.amos.api.openapi.face.orm.dao.TaLicenseBaseInfoMapper;
......
package com.yeejoin.amos.api.openapi.face.service;
package com.yeejoin.amos.api.face.service;
import com.yeejoin.amos.api.openapi.face.model.TaLicenseDetailInfoModel;
import com.yeejoin.amos.api.openapi.face.orm.dao.TaLicenseDetailInfoMapper;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment