mirror of
https://gitee.com/durcframework/SOP.git
synced 2025-08-11 21:57:56 +08:00
1.5.0
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
<dependency>
|
||||
<groupId>com.gitee.sop</groupId>
|
||||
<artifactId>sop-gateway-common</artifactId>
|
||||
<version>1.4.0-SNAPSHOT</version>
|
||||
<version>1.5.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<!-- ↓↓↓ 使用spring cloud zuul ↓↓↓ -->
|
||||
|
@@ -1,18 +1,7 @@
|
||||
package com.gitee.sop.gateway.config;
|
||||
|
||||
import com.gitee.sop.gateway.entity.IsvInfo;
|
||||
import com.gitee.sop.gateway.manager.ManagerInitializer;
|
||||
import com.gitee.sop.gatewaycommon.bean.ApiConfig;
|
||||
import com.gitee.sop.gatewaycommon.bean.ApiContext;
|
||||
import com.gitee.sop.gatewaycommon.gateway.configuration.AlipayGatewayConfiguration;
|
||||
import com.gitee.sop.gatewaycommon.manager.IsvRoutePermissionManager;
|
||||
import com.gitee.sop.gatewaycommon.secret.IsvManager;
|
||||
import com.gitee.sop.gatewaycommon.zuul.configuration.AlipayZuulConfiguration;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
@@ -31,18 +20,8 @@ import java.util.Map;
|
||||
//@Configuration
|
||||
public class GatewayConfig extends AlipayGatewayConfiguration {
|
||||
|
||||
{
|
||||
Map<String, String> appSecretStore = new HashMap();
|
||||
appSecretStore.put("2019032617262200001", "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlyb9aUBaljQP/vjmBFe1mF8HsWSvyfC2NTlpT/V9E+sBxTr8TSkbzJCeeeOEm4LCaVXL0Qz63MZoT24v7AIXTuMdj4jyiM/WJ4tjrWAgnmohNOegfntTto16C3l234vXz4ryWZMR/7W+MXy5B92wPGQEJ0LKFwNEoLspDEWZ7RdE53VH7w6y6sIZUfK+YkXWSwehfKPKlx+lDw3zRJ3/yvMF+U+BAdW/MfECe1GuBnCFKnlMRh3UKczWyXWkL6ItOpYHHJi/jx85op5BWDje2pY9QowzfN94+0DB3T7UvZeweu3zlP6diwAJDzLaFQX8ULfWhY+wfKxIRgs9NoiSAQIDAQAB");
|
||||
ApiContext.getApiConfig().addAppSecret(appSecretStore);
|
||||
}
|
||||
|
||||
@Autowired
|
||||
ManagerInitializer managerInitializer;
|
||||
|
||||
@Override
|
||||
protected void doAfter() {
|
||||
managerInitializer.init();
|
||||
static {
|
||||
new ManagerInitializer();
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -7,14 +7,9 @@ package com.gitee.sop.gateway.config;
|
||||
*/
|
||||
|
||||
import com.gitee.sop.gateway.manager.ManagerInitializer;
|
||||
import com.gitee.sop.gatewaycommon.bean.ApiContext;
|
||||
import com.gitee.sop.gatewaycommon.zuul.configuration.AlipayZuulConfiguration;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 开通支付宝开放平台能力
|
||||
* @author tanghc
|
||||
@@ -22,21 +17,8 @@ import java.util.Map;
|
||||
@Configuration
|
||||
public class ZuulConfig extends AlipayZuulConfiguration {
|
||||
|
||||
{
|
||||
Map<String, String> appSecretStore = new HashMap();
|
||||
// 这里存放商户给的公钥,同时商户那边会存对应的私钥
|
||||
// key:应用ID(app_id):建议个格式为`yyyyMMddHHmmss+自增ID`,如2019032617262200001
|
||||
// value:公钥
|
||||
appSecretStore.put("2019032617262200001", "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlyb9aUBaljQP/vjmBFe1mF8HsWSvyfC2NTlpT/V9E+sBxTr8TSkbzJCeeeOEm4LCaVXL0Qz63MZoT24v7AIXTuMdj4jyiM/WJ4tjrWAgnmohNOegfntTto16C3l234vXz4ryWZMR/7W+MXy5B92wPGQEJ0LKFwNEoLspDEWZ7RdE53VH7w6y6sIZUfK+YkXWSwehfKPKlx+lDw3zRJ3/yvMF+U+BAdW/MfECe1GuBnCFKnlMRh3UKczWyXWkL6ItOpYHHJi/jx85op5BWDje2pY9QowzfN94+0DB3T7UvZeweu3zlP6diwAJDzLaFQX8ULfWhY+wfKxIRgs9NoiSAQIDAQAB");
|
||||
ApiContext.getApiConfig().addAppSecret(appSecretStore);
|
||||
}
|
||||
|
||||
@Autowired
|
||||
ManagerInitializer managerInitializer;
|
||||
|
||||
@Override
|
||||
protected void doAfter() {
|
||||
managerInitializer.init();
|
||||
static {
|
||||
new ManagerInitializer();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -47,12 +29,9 @@ public class ZuulConfig extends AlipayZuulConfiguration {
|
||||
*/
|
||||
//@Configuration
|
||||
//public class ZuulConfig extends TaobaoZuulConfiguration {
|
||||
//
|
||||
// {
|
||||
// Map<String, String> appSecretStore = new HashMap();
|
||||
// appSecretStore.put("taobao_test", "G9w0BAQEFAAOCAQ8AMIIBCgKCA");
|
||||
// ApiContext.getApiConfig().addAppSecret(appSecretStore);
|
||||
// }
|
||||
// static {
|
||||
// new ManagerInitializer();
|
||||
// }
|
||||
//}
|
||||
|
||||
/**
|
||||
@@ -60,9 +39,8 @@ public class ZuulConfig extends AlipayZuulConfiguration {
|
||||
*/
|
||||
//@Configuration
|
||||
//public class ZuulConfig extends EasyopenZuulConfiguration {
|
||||
// {
|
||||
// Map<String, String> appSecretStore = new HashMap();
|
||||
// appSecretStore.put("easyopen_test", "G9w0BAQEFAAOCAQ8AMIIBCgKCA");
|
||||
// ApiContext.getApiConfig().addAppSecret(appSecretStore);
|
||||
// static {
|
||||
// new ManagerInitializer();
|
||||
// }
|
||||
//
|
||||
//}
|
||||
|
@@ -37,9 +37,12 @@ public class IsvInfo {
|
||||
/** 私钥, 数据库字段:pri_key */
|
||||
private String priKey;
|
||||
|
||||
/** 0启用,1禁用, 数据库字段:status */
|
||||
/** 1启用,2禁用, 数据库字段:status */
|
||||
private Byte status;
|
||||
|
||||
/** 1:RSA2,2:MD5, 数据库字段:sign_type */
|
||||
private Byte signType;
|
||||
|
||||
/** 数据库字段:gmt_create */
|
||||
private Date gmtCreate;
|
||||
|
||||
|
@@ -8,11 +8,11 @@ import com.gitee.sop.gatewaycommon.bean.ChannelMsg;
|
||||
import com.gitee.sop.gatewaycommon.bean.IsvDefinition;
|
||||
import com.gitee.sop.gatewaycommon.manager.ZookeeperContext;
|
||||
import com.gitee.sop.gatewaycommon.secret.CacheIsvManager;
|
||||
import com.gitee.sop.gatewaycommon.secret.SecretContext;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.List;
|
||||
@@ -21,7 +21,6 @@ import java.util.function.Function;
|
||||
/**
|
||||
* @author tanghc
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class DbIsvManager extends CacheIsvManager {
|
||||
|
||||
@@ -31,14 +30,16 @@ public class DbIsvManager extends CacheIsvManager {
|
||||
@Autowired
|
||||
Environment environment;
|
||||
|
||||
|
||||
@Override
|
||||
public void load(Function<Object, String> secretGetter) {
|
||||
public void load() {
|
||||
List<IsvInfo> isvInfoList = isvInfoMapper.list(new Query());
|
||||
Function<IsvDefinition, String> secretGetter = SecretContext.getSecretGetter();
|
||||
isvInfoList.stream()
|
||||
.forEach(isvInfo -> {
|
||||
IsvDefinition isvDefinition = new IsvDefinition();
|
||||
BeanUtils.copyProperties(isvInfo, isvDefinition);
|
||||
String secret = secretGetter.apply(isvInfo);
|
||||
String secret = secretGetter.apply(isvDefinition);
|
||||
isvDefinition.setSecret(secret);
|
||||
this.getIsvCache().put(isvDefinition.getAppKey(), isvDefinition);
|
||||
});
|
||||
|
@@ -35,7 +35,6 @@ import static java.util.stream.Collectors.toList;
|
||||
*
|
||||
* @author tanghc
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class DbIsvRoutePermissionManager extends DefaultIsvRoutePermissionManager {
|
||||
|
||||
|
@@ -15,7 +15,6 @@ import com.gitee.sop.gatewaycommon.manager.ZookeeperContext;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.Collection;
|
||||
@@ -23,7 +22,6 @@ import java.util.Collection;
|
||||
/**
|
||||
* @author tanghc
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class DbRouteConfigManager extends DefaultRouteConfigManager {
|
||||
|
||||
|
@@ -1,43 +1,16 @@
|
||||
package com.gitee.sop.gateway.manager;
|
||||
|
||||
import com.gitee.sop.gateway.entity.IsvInfo;
|
||||
import com.gitee.sop.gatewaycommon.bean.ApiConfig;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author tanghc
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ManagerInitializer {
|
||||
@Autowired
|
||||
DbIsvManager dbIsvManager;
|
||||
|
||||
@Autowired
|
||||
DbIsvRoutePermissionManager dbIsvRoutePermissionManager;
|
||||
|
||||
@Autowired
|
||||
DbRouteConfigManager dbRouteConfigManager;
|
||||
|
||||
public void init() {
|
||||
public ManagerInitializer() {
|
||||
ApiConfig apiConfig = ApiConfig.getInstance();
|
||||
apiConfig.setIsvManager(dbIsvManager);
|
||||
apiConfig.setIsvRoutePermissionManager(dbIsvRoutePermissionManager);
|
||||
apiConfig.setRouteConfigManager(dbRouteConfigManager);
|
||||
|
||||
// 从数据库加载isv信息
|
||||
log.debug("从数据库加载isv信息");
|
||||
dbIsvManager.load((isvInfoObj) -> {
|
||||
IsvInfo isvInfo = (IsvInfo)isvInfoObj;
|
||||
return isvInfo.getPubKey();
|
||||
});
|
||||
|
||||
log.debug("从数据库加载路由权限信息");
|
||||
dbIsvRoutePermissionManager.load();
|
||||
|
||||
log.debug("从数据库加载路由配置信息");
|
||||
dbRouteConfigManager.load();
|
||||
apiConfig.setIsvManager(new DbIsvManager());
|
||||
apiConfig.setIsvRoutePermissionManager(new DbIsvRoutePermissionManager());
|
||||
apiConfig.setRouteConfigManager(new DbRouteConfigManager());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user