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:
@@ -2,6 +2,11 @@
|
|||||||
|
|
||||||
## 1.4.0
|
## 1.4.0
|
||||||
|
|
||||||
|
- admin新增signType字段
|
||||||
|
- 修复easyopen接入无法访问BUG
|
||||||
|
|
||||||
|
## 1.4.0
|
||||||
|
|
||||||
- 新增文档分组显示
|
- 新增文档分组显示
|
||||||
- 支持easyopen文档注解
|
- 支持easyopen文档注解
|
||||||
- BUG修复
|
- BUG修复
|
||||||
|
@@ -49,11 +49,8 @@ public class SopConfig extends EasyopenServiceConfiguration {
|
|||||||
```java
|
```java
|
||||||
@Configuration
|
@Configuration
|
||||||
public class ZuulConfig extends EasyopenZuulConfiguration {
|
public class ZuulConfig extends EasyopenZuulConfiguration {
|
||||||
{
|
static {
|
||||||
Map<String, String> appSecretStore = new HashMap();
|
new ManagerInitializer();
|
||||||
// 秘钥键值对
|
|
||||||
appSecretStore.put("easyopen_test", "G9w0BAQEFAAOCAQ8AMIIBCgKCA");
|
|
||||||
ApiContext.getApiConfig().addAppSecret(appSecretStore);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
3
sop-1.5.0.sql
Normal file
3
sop-1.5.0.sql
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
ALTER TABLE `sop`.`isv_info` ADD COLUMN `sign_type` TINYINT NOT NULL DEFAULT 1 COMMENT '签名类型,1:RSA2,2:MD5' AFTER `status`;
|
||||||
|
|
||||||
|
update isv_info set sign_type=2 where secret <> '';
|
@@ -8,6 +8,10 @@ lib.use(['element', 'table', 'form'], function () {
|
|||||||
'1': '<span class="x-green">已启用</span>'
|
'1': '<span class="x-green">已启用</span>'
|
||||||
,'2': '<span class="x-red">已禁用</span>'
|
,'2': '<span class="x-red">已禁用</span>'
|
||||||
}
|
}
|
||||||
|
var SIGN_TYPE_ENUM = {
|
||||||
|
'1': 'RSA2'
|
||||||
|
,'2': 'MD5'
|
||||||
|
}
|
||||||
|
|
||||||
// 渲染表格
|
// 渲染表格
|
||||||
var renderTable = function (postData) {
|
var renderTable = function (postData) {
|
||||||
@@ -29,10 +33,21 @@ lib.use(['element', 'table', 'form'], function () {
|
|||||||
{field: 'id', title: 'id', width: 80}
|
{field: 'id', title: 'id', width: 80}
|
||||||
, {field: 'appKey', title: 'appKey', width: 250}
|
, {field: 'appKey', title: 'appKey', width: 250}
|
||||||
, {field: 'secret', title: 'secret', width: 80, templet: function (row) {
|
, {field: 'secret', title: 'secret', width: 80, templet: function (row) {
|
||||||
return '<button class="layui-btn layui-btn-xs" onclick="View.secret(\''+row.secret+'\')">查看</button>';
|
if (row.signType == 2) {
|
||||||
|
return '<button class="layui-btn layui-btn-xs" onclick="View.secret(\'' + row.secret + '\')">查看</button>';
|
||||||
|
} else {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
}}
|
}}
|
||||||
, {field: '', title: '公私钥', width: 80, templet: function (row) {
|
, {field: '', title: '公私钥', width: 80, templet: function (row) {
|
||||||
return '<button class="layui-btn layui-btn-xs" onclick="View.pubPriKey(\''+row.pubKey+'\', \''+row.priKey+'\')">查看</button>';
|
if (row.signType == 1) {
|
||||||
|
return '<button class="layui-btn layui-btn-xs" onclick="View.pubPriKey(\'' + row.pubKey + '\', \'' + row.priKey + '\')">查看</button>';
|
||||||
|
} else {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
, {field: 'signType', title: '签名类型', width: 80, templet: function (row) {
|
||||||
|
return SIGN_TYPE_ENUM[row.signType+''] || 'unknown';
|
||||||
}}
|
}}
|
||||||
, {field: 'roleList', title: '角色', templet: function (row) {
|
, {field: 'roleList', title: '角色', templet: function (row) {
|
||||||
var html = [];
|
var html = [];
|
||||||
|
@@ -51,6 +51,7 @@ import java.util.stream.Collectors;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
public class IsvApi {
|
public class IsvApi {
|
||||||
|
|
||||||
|
public static final int SIGN_TYPE_RSA2 = 1;
|
||||||
@Autowired
|
@Autowired
|
||||||
IsvInfoMapper isvInfoMapper;
|
IsvInfoMapper isvInfoMapper;
|
||||||
|
|
||||||
@@ -159,7 +160,7 @@ public class IsvApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void formatForm(IsvInfoForm form) {
|
private void formatForm(IsvInfoForm form) {
|
||||||
if (form.getSignType() == 1) {
|
if (form.getSignType() == SIGN_TYPE_RSA2) {
|
||||||
form.setSecret("");
|
form.setSecret("");
|
||||||
} else {
|
} else {
|
||||||
form.setPubKey("");
|
form.setPubKey("");
|
||||||
|
@@ -4,7 +4,7 @@ import com.gitee.easyopen.doc.annotation.ApiDocField;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.hibernate.validator.constraints.Length;
|
import org.hibernate.validator.constraints.Length;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotNull;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -14,7 +14,8 @@ import java.util.List;
|
|||||||
@Data
|
@Data
|
||||||
public class IsvInfoForm {
|
public class IsvInfoForm {
|
||||||
|
|
||||||
private int signType = 1;
|
@NotNull(message = "signType不能为null")
|
||||||
|
private Byte signType;
|
||||||
|
|
||||||
/** secret, 数据库字段:secret */
|
/** secret, 数据库字段:secret */
|
||||||
@ApiDocField(description = "secret")
|
@ApiDocField(description = "secret")
|
||||||
@@ -22,13 +23,11 @@ public class IsvInfoForm {
|
|||||||
private String secret = "";
|
private String secret = "";
|
||||||
|
|
||||||
/** 公钥, 数据库字段:pub_key */
|
/** 公钥, 数据库字段:pub_key */
|
||||||
@ApiDocField(description = "pubKey", required = true)
|
@ApiDocField(description = "pubKey")
|
||||||
@NotBlank(message = "pubKey不能为空")
|
|
||||||
private String pubKey;
|
private String pubKey;
|
||||||
|
|
||||||
/** 私钥, 数据库字段:pri_key */
|
/** 私钥, 数据库字段:pri_key */
|
||||||
@ApiDocField(description = "priKey", required = true)
|
@ApiDocField(description = "priKey")
|
||||||
@NotBlank(message = "priKey不能为空")
|
|
||||||
private String priKey;
|
private String priKey;
|
||||||
|
|
||||||
/** 0启用,1禁用, 数据库字段:status */
|
/** 0启用,1禁用, 数据库字段:status */
|
||||||
|
@@ -35,6 +35,9 @@ public class IsvVO {
|
|||||||
@ApiDocField(description = "状态:0启用,1禁用")
|
@ApiDocField(description = "状态:0启用,1禁用")
|
||||||
private Byte status;
|
private Byte status;
|
||||||
|
|
||||||
|
@ApiDocField(description = "签名类型:1:RSA2,2:MD5")
|
||||||
|
private Byte signType;
|
||||||
|
|
||||||
/** 数据库字段:gmt_create */
|
/** 数据库字段:gmt_create */
|
||||||
@ApiDocField(description = "添加时间")
|
@ApiDocField(description = "添加时间")
|
||||||
private Date gmtCreate;
|
private Date gmtCreate;
|
||||||
|
@@ -2,13 +2,12 @@ package com.gitee.sop.adminserver.entity;
|
|||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
import javax.persistence.Column;
|
import javax.persistence.Column;
|
||||||
import javax.persistence.GeneratedValue;
|
import javax.persistence.GeneratedValue;
|
||||||
import javax.persistence.GenerationType;
|
import javax.persistence.GenerationType;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -38,9 +37,12 @@ public class IsvInfo {
|
|||||||
/** 私钥, 数据库字段:pri_key */
|
/** 私钥, 数据库字段:pri_key */
|
||||||
private String priKey;
|
private String priKey;
|
||||||
|
|
||||||
/** 0启用,1禁用, 数据库字段:status */
|
/** 1启用,2禁用, 数据库字段:status */
|
||||||
private Byte status;
|
private Byte status;
|
||||||
|
|
||||||
|
/** 1:RSA2,2:MD5, 数据库字段:sign_type */
|
||||||
|
private Byte signType;
|
||||||
|
|
||||||
/** 数据库字段:gmt_create */
|
/** 数据库字段:gmt_create */
|
||||||
private Date gmtCreate;
|
private Date gmtCreate;
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-common</artifactId>
|
<artifactId>sop-common</artifactId>
|
||||||
<version>1.4.0-SNAPSHOT</version>
|
<version>1.5.0-SNAPSHOT</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
@@ -5,11 +5,11 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-common</artifactId>
|
<artifactId>sop-common</artifactId>
|
||||||
<version>1.4.0-SNAPSHOT</version>
|
<version>1.5.0-SNAPSHOT</version>
|
||||||
<relativePath>../pom.xml</relativePath>
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>sop-gateway-common</artifactId>
|
<artifactId>sop-gateway-common</artifactId>
|
||||||
<version>1.4.0-SNAPSHOT</version>
|
<version>1.5.0-SNAPSHOT</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>sop-gateway-common</name>
|
<name>sop-gateway-common</name>
|
||||||
|
@@ -0,0 +1,8 @@
|
|||||||
|
package com.gitee.sop.gatewaycommon.bean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author tanghc
|
||||||
|
*/
|
||||||
|
public interface BeanInitializer {
|
||||||
|
void load();
|
||||||
|
}
|
@@ -3,6 +3,7 @@ package com.gitee.sop.gatewaycommon.easyopen;
|
|||||||
import com.gitee.sop.gatewaycommon.bean.ApiConfig;
|
import com.gitee.sop.gatewaycommon.bean.ApiConfig;
|
||||||
import com.gitee.sop.gatewaycommon.bean.ApiContext;
|
import com.gitee.sop.gatewaycommon.bean.ApiContext;
|
||||||
import com.gitee.sop.gatewaycommon.param.ParamNames;
|
import com.gitee.sop.gatewaycommon.param.ParamNames;
|
||||||
|
import com.gitee.sop.gatewaycommon.secret.SecretContext;
|
||||||
import com.gitee.sop.gatewaycommon.zuul.configuration.BaseZuulConfiguration;
|
import com.gitee.sop.gatewaycommon.zuul.configuration.BaseZuulConfiguration;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -10,6 +11,10 @@ import com.gitee.sop.gatewaycommon.zuul.configuration.BaseZuulConfiguration;
|
|||||||
*/
|
*/
|
||||||
public class EasyopenZuulConfiguration extends BaseZuulConfiguration {
|
public class EasyopenZuulConfiguration extends BaseZuulConfiguration {
|
||||||
|
|
||||||
|
static {
|
||||||
|
SecretContext.setSecretGetter((isvDefinition)-> isvDefinition.getSecret());
|
||||||
|
}
|
||||||
|
|
||||||
public EasyopenZuulConfiguration() {
|
public EasyopenZuulConfiguration() {
|
||||||
ApiConfig apiConfig = ApiContext.getApiConfig();
|
ApiConfig apiConfig = ApiContext.getApiConfig();
|
||||||
if (compatibilityModel()) {
|
if (compatibilityModel()) {
|
||||||
|
@@ -1,8 +1,12 @@
|
|||||||
package com.gitee.sop.gatewaycommon.manager;
|
package com.gitee.sop.gatewaycommon.manager;
|
||||||
|
|
||||||
import com.gitee.sop.gatewaycommon.bean.ApiContext;
|
import com.gitee.sop.gatewaycommon.bean.ApiContext;
|
||||||
|
import com.gitee.sop.gatewaycommon.bean.BeanInitializer;
|
||||||
import com.gitee.sop.gatewaycommon.message.ErrorFactory;
|
import com.gitee.sop.gatewaycommon.message.ErrorFactory;
|
||||||
|
import org.springframework.beans.BeansException;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.ApplicationContext;
|
||||||
|
import org.springframework.context.ApplicationContextAware;
|
||||||
import org.springframework.core.env.Environment;
|
import org.springframework.core.env.Environment;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
@@ -10,13 +14,20 @@ import javax.annotation.PostConstruct;
|
|||||||
/**
|
/**
|
||||||
* @author tanghc
|
* @author tanghc
|
||||||
*/
|
*/
|
||||||
public class AbstractConfiguration {
|
public class AbstractConfiguration implements ApplicationContextAware {
|
||||||
@Autowired
|
@Autowired
|
||||||
protected Environment environment;
|
protected Environment environment;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
protected RouteManager apiMetaManager;
|
protected RouteManager apiMetaManager;
|
||||||
|
|
||||||
|
protected ApplicationContext applicationContext;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setApplicationContext(ApplicationContext ctx) throws BeansException {
|
||||||
|
applicationContext = ctx;
|
||||||
|
}
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public final void after() {
|
public final void after() {
|
||||||
if (RouteRepositoryContext.getRouteRepository() == null) {
|
if (RouteRepositoryContext.getRouteRepository() == null) {
|
||||||
@@ -26,8 +37,20 @@ public class AbstractConfiguration {
|
|||||||
ZookeeperContext.setEnvironment(environment);
|
ZookeeperContext.setEnvironment(environment);
|
||||||
|
|
||||||
initMessage();
|
initMessage();
|
||||||
|
initBeanInitializer();
|
||||||
apiMetaManager.refresh();
|
apiMetaManager.refresh();
|
||||||
doAfter();
|
doAfter();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void initBeanInitializer() {
|
||||||
|
String[] beanNames = applicationContext.getBeanNamesForType(BeanInitializer.class);
|
||||||
|
if (beanNames != null) {
|
||||||
|
for (String beanName : beanNames) {
|
||||||
|
BeanInitializer beanInitializer = applicationContext.getBean(beanName, BeanInitializer.class);
|
||||||
|
beanInitializer.load();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void doAfter() {
|
protected void doAfter() {
|
||||||
|
@@ -1,16 +1,12 @@
|
|||||||
package com.gitee.sop.gatewaycommon.manager;
|
package com.gitee.sop.gatewaycommon.manager;
|
||||||
|
|
||||||
|
import com.gitee.sop.gatewaycommon.bean.BeanInitializer;
|
||||||
import com.gitee.sop.gatewaycommon.bean.IsvRoutePermission;
|
import com.gitee.sop.gatewaycommon.bean.IsvRoutePermission;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author tanghc
|
* @author tanghc
|
||||||
*/
|
*/
|
||||||
public interface IsvRoutePermissionManager {
|
public interface IsvRoutePermissionManager extends BeanInitializer {
|
||||||
|
|
||||||
/**
|
|
||||||
* 加载路由权限信息
|
|
||||||
*/
|
|
||||||
void load();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 加载权限
|
* 加载权限
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package com.gitee.sop.gatewaycommon.manager;
|
package com.gitee.sop.gatewaycommon.manager;
|
||||||
|
|
||||||
|
import com.gitee.sop.gatewaycommon.bean.BeanInitializer;
|
||||||
import com.gitee.sop.gatewaycommon.bean.RouteConfig;
|
import com.gitee.sop.gatewaycommon.bean.RouteConfig;
|
||||||
import com.gitee.sop.gatewaycommon.bean.RouteConfigDto;
|
import com.gitee.sop.gatewaycommon.bean.RouteConfigDto;
|
||||||
|
|
||||||
@@ -7,12 +8,7 @@ import com.gitee.sop.gatewaycommon.bean.RouteConfigDto;
|
|||||||
* 路由配置管理
|
* 路由配置管理
|
||||||
* @author tanghc
|
* @author tanghc
|
||||||
*/
|
*/
|
||||||
public interface RouteConfigManager {
|
public interface RouteConfigManager extends BeanInitializer {
|
||||||
/**
|
|
||||||
* 加载
|
|
||||||
*/
|
|
||||||
void load();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新路由配置
|
* 更新路由配置
|
||||||
* @param routeConfigDto 路由配置
|
* @param routeConfigDto 路由配置
|
||||||
|
@@ -4,8 +4,6 @@ import com.gitee.sop.gatewaycommon.bean.IsvDefinition;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.function.Supplier;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author tanghc
|
* @author tanghc
|
||||||
@@ -18,7 +16,7 @@ public class CacheIsvManager implements IsvManager<IsvDefinition> {
|
|||||||
private Map<String, IsvDefinition> isvCache = new ConcurrentHashMap<>(64);
|
private Map<String, IsvDefinition> isvCache = new ConcurrentHashMap<>(64);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void load(Function<Object, String> secretGetter) {
|
public void load() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,19 +1,13 @@
|
|||||||
package com.gitee.sop.gatewaycommon.secret;
|
package com.gitee.sop.gatewaycommon.secret;
|
||||||
|
|
||||||
|
import com.gitee.sop.gatewaycommon.bean.BeanInitializer;
|
||||||
import com.gitee.sop.gatewaycommon.bean.Isv;
|
import com.gitee.sop.gatewaycommon.bean.Isv;
|
||||||
|
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Isv管理
|
* Isv管理
|
||||||
* @author tanghc
|
* @author tanghc
|
||||||
*/
|
*/
|
||||||
public interface IsvManager<T extends Isv> {
|
public interface IsvManager<T extends Isv> extends BeanInitializer {
|
||||||
/**
|
|
||||||
* 加载isv信息
|
|
||||||
* @param secretGetter secret获取
|
|
||||||
*/
|
|
||||||
void load(Function<Object, String> secretGetter);
|
|
||||||
|
|
||||||
void update(T t);
|
void update(T t);
|
||||||
|
|
||||||
|
@@ -0,0 +1,20 @@
|
|||||||
|
package com.gitee.sop.gatewaycommon.secret;
|
||||||
|
|
||||||
|
import com.gitee.sop.gatewaycommon.bean.IsvDefinition;
|
||||||
|
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author tanghc
|
||||||
|
*/
|
||||||
|
public class SecretContext {
|
||||||
|
private static volatile Function<IsvDefinition, String> secretGetter = (isv) -> isv.getPubKey();
|
||||||
|
|
||||||
|
public static Function<IsvDefinition, String> getSecretGetter() {
|
||||||
|
return secretGetter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setSecretGetter(Function<IsvDefinition, String> secretGetter) {
|
||||||
|
SecretContext.secretGetter = secretGetter;
|
||||||
|
}
|
||||||
|
}
|
@@ -1,8 +1,12 @@
|
|||||||
package com.gitee.sop.gatewaycommon.zuul.configuration;
|
package com.gitee.sop.gatewaycommon.zuul.configuration;
|
||||||
|
|
||||||
|
import com.gitee.sop.gatewaycommon.bean.ApiConfig;
|
||||||
import com.gitee.sop.gatewaycommon.bean.ApiContext;
|
import com.gitee.sop.gatewaycommon.bean.ApiContext;
|
||||||
import com.gitee.sop.gatewaycommon.manager.AbstractConfiguration;
|
import com.gitee.sop.gatewaycommon.manager.AbstractConfiguration;
|
||||||
|
import com.gitee.sop.gatewaycommon.manager.IsvRoutePermissionManager;
|
||||||
|
import com.gitee.sop.gatewaycommon.manager.RouteConfigManager;
|
||||||
import com.gitee.sop.gatewaycommon.manager.RouteRepositoryContext;
|
import com.gitee.sop.gatewaycommon.manager.RouteRepositoryContext;
|
||||||
|
import com.gitee.sop.gatewaycommon.secret.IsvManager;
|
||||||
import com.gitee.sop.gatewaycommon.zuul.filter.ErrorFilter;
|
import com.gitee.sop.gatewaycommon.zuul.filter.ErrorFilter;
|
||||||
import com.gitee.sop.gatewaycommon.zuul.filter.PostResultFilter;
|
import com.gitee.sop.gatewaycommon.zuul.filter.PostResultFilter;
|
||||||
import com.gitee.sop.gatewaycommon.zuul.filter.PreLimitFilter;
|
import com.gitee.sop.gatewaycommon.zuul.filter.PreLimitFilter;
|
||||||
@@ -116,4 +120,18 @@ public class BaseZuulConfiguration extends AbstractConfiguration {
|
|||||||
return ApiContext.getApiConfig().getZuulErrorController();
|
return ApiContext.getApiConfig().getZuulErrorController();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
IsvManager isvManager() {
|
||||||
|
return ApiConfig.getInstance().getIsvManager();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
IsvRoutePermissionManager isvRoutePermissionManager() {
|
||||||
|
return ApiConfig.getInstance().getIsvRoutePermissionManager();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
RouteConfigManager routeConfigManager() {
|
||||||
|
return ApiConfig.getInstance().getRouteConfigManager();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -6,11 +6,11 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-common</artifactId>
|
<artifactId>sop-common</artifactId>
|
||||||
<version>1.4.0-SNAPSHOT</version>
|
<version>1.5.0-SNAPSHOT</version>
|
||||||
<relativePath>../pom.xml</relativePath>
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>sop-service-common</artifactId>
|
<artifactId>sop-service-common</artifactId>
|
||||||
<version>1.4.0-SNAPSHOT</version>
|
<version>1.5.0-SNAPSHOT</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>sop-service-common</name>
|
<name>sop-service-common</name>
|
||||||
|
@@ -23,7 +23,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-service-common</artifactId>
|
<artifactId>sop-service-common</artifactId>
|
||||||
<version>1.4.0-SNAPSHOT</version>
|
<version>1.5.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
|
@@ -29,7 +29,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-service-common</artifactId>
|
<artifactId>sop-service-common</artifactId>
|
||||||
<version>1.4.0-SNAPSHOT</version>
|
<version>1.5.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
@@ -20,7 +20,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-service-common</artifactId>
|
<artifactId>sop-service-common</artifactId>
|
||||||
<version>1.4.0-SNAPSHOT</version>
|
<version>1.5.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- eureka 服务发现 -->
|
<!-- eureka 服务发现 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@@ -23,7 +23,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-service-common</artifactId>
|
<artifactId>sop-service-common</artifactId>
|
||||||
<version>1.4.0-SNAPSHOT</version>
|
<version>1.5.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
|
@@ -23,7 +23,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.gitee.sop</groupId>
|
<groupId>com.gitee.sop</groupId>
|
||||||
<artifactId>sop-gateway-common</artifactId>
|
<artifactId>sop-gateway-common</artifactId>
|
||||||
<version>1.4.0-SNAPSHOT</version>
|
<version>1.5.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- ↓↓↓ 使用spring cloud zuul ↓↓↓ -->
|
<!-- ↓↓↓ 使用spring cloud zuul ↓↓↓ -->
|
||||||
|
@@ -1,18 +1,7 @@
|
|||||||
package com.gitee.sop.gateway.config;
|
package com.gitee.sop.gateway.config;
|
||||||
|
|
||||||
import com.gitee.sop.gateway.entity.IsvInfo;
|
|
||||||
import com.gitee.sop.gateway.manager.ManagerInitializer;
|
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.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
|
//@Configuration
|
||||||
public class GatewayConfig extends AlipayGatewayConfiguration {
|
public class GatewayConfig extends AlipayGatewayConfiguration {
|
||||||
|
|
||||||
{
|
static {
|
||||||
Map<String, String> appSecretStore = new HashMap();
|
new ManagerInitializer();
|
||||||
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();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -7,14 +7,9 @@ package com.gitee.sop.gateway.config;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import com.gitee.sop.gateway.manager.ManagerInitializer;
|
import com.gitee.sop.gateway.manager.ManagerInitializer;
|
||||||
import com.gitee.sop.gatewaycommon.bean.ApiContext;
|
|
||||||
import com.gitee.sop.gatewaycommon.zuul.configuration.AlipayZuulConfiguration;
|
import com.gitee.sop.gatewaycommon.zuul.configuration.AlipayZuulConfiguration;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开通支付宝开放平台能力
|
* 开通支付宝开放平台能力
|
||||||
* @author tanghc
|
* @author tanghc
|
||||||
@@ -22,21 +17,8 @@ import java.util.Map;
|
|||||||
@Configuration
|
@Configuration
|
||||||
public class ZuulConfig extends AlipayZuulConfiguration {
|
public class ZuulConfig extends AlipayZuulConfiguration {
|
||||||
|
|
||||||
{
|
static {
|
||||||
Map<String, String> appSecretStore = new HashMap();
|
new ManagerInitializer();
|
||||||
// 这里存放商户给的公钥,同时商户那边会存对应的私钥
|
|
||||||
// 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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -47,12 +29,9 @@ public class ZuulConfig extends AlipayZuulConfiguration {
|
|||||||
*/
|
*/
|
||||||
//@Configuration
|
//@Configuration
|
||||||
//public class ZuulConfig extends TaobaoZuulConfiguration {
|
//public class ZuulConfig extends TaobaoZuulConfiguration {
|
||||||
//
|
// static {
|
||||||
// {
|
// new ManagerInitializer();
|
||||||
// Map<String, String> appSecretStore = new HashMap();
|
// }
|
||||||
// appSecretStore.put("taobao_test", "G9w0BAQEFAAOCAQ8AMIIBCgKCA");
|
|
||||||
// ApiContext.getApiConfig().addAppSecret(appSecretStore);
|
|
||||||
// }
|
|
||||||
//}
|
//}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -60,9 +39,8 @@ public class ZuulConfig extends AlipayZuulConfiguration {
|
|||||||
*/
|
*/
|
||||||
//@Configuration
|
//@Configuration
|
||||||
//public class ZuulConfig extends EasyopenZuulConfiguration {
|
//public class ZuulConfig extends EasyopenZuulConfiguration {
|
||||||
// {
|
// static {
|
||||||
// Map<String, String> appSecretStore = new HashMap();
|
// new ManagerInitializer();
|
||||||
// appSecretStore.put("easyopen_test", "G9w0BAQEFAAOCAQ8AMIIBCgKCA");
|
|
||||||
// ApiContext.getApiConfig().addAppSecret(appSecretStore);
|
|
||||||
// }
|
// }
|
||||||
|
//
|
||||||
//}
|
//}
|
||||||
|
@@ -37,9 +37,12 @@ public class IsvInfo {
|
|||||||
/** 私钥, 数据库字段:pri_key */
|
/** 私钥, 数据库字段:pri_key */
|
||||||
private String priKey;
|
private String priKey;
|
||||||
|
|
||||||
/** 0启用,1禁用, 数据库字段:status */
|
/** 1启用,2禁用, 数据库字段:status */
|
||||||
private Byte status;
|
private Byte status;
|
||||||
|
|
||||||
|
/** 1:RSA2,2:MD5, 数据库字段:sign_type */
|
||||||
|
private Byte signType;
|
||||||
|
|
||||||
/** 数据库字段:gmt_create */
|
/** 数据库字段:gmt_create */
|
||||||
private Date gmtCreate;
|
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.bean.IsvDefinition;
|
||||||
import com.gitee.sop.gatewaycommon.manager.ZookeeperContext;
|
import com.gitee.sop.gatewaycommon.manager.ZookeeperContext;
|
||||||
import com.gitee.sop.gatewaycommon.secret.CacheIsvManager;
|
import com.gitee.sop.gatewaycommon.secret.CacheIsvManager;
|
||||||
|
import com.gitee.sop.gatewaycommon.secret.SecretContext;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.core.env.Environment;
|
import org.springframework.core.env.Environment;
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -21,7 +21,6 @@ import java.util.function.Function;
|
|||||||
/**
|
/**
|
||||||
* @author tanghc
|
* @author tanghc
|
||||||
*/
|
*/
|
||||||
@Component
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class DbIsvManager extends CacheIsvManager {
|
public class DbIsvManager extends CacheIsvManager {
|
||||||
|
|
||||||
@@ -31,14 +30,16 @@ public class DbIsvManager extends CacheIsvManager {
|
|||||||
@Autowired
|
@Autowired
|
||||||
Environment environment;
|
Environment environment;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void load(Function<Object, String> secretGetter) {
|
public void load() {
|
||||||
List<IsvInfo> isvInfoList = isvInfoMapper.list(new Query());
|
List<IsvInfo> isvInfoList = isvInfoMapper.list(new Query());
|
||||||
|
Function<IsvDefinition, String> secretGetter = SecretContext.getSecretGetter();
|
||||||
isvInfoList.stream()
|
isvInfoList.stream()
|
||||||
.forEach(isvInfo -> {
|
.forEach(isvInfo -> {
|
||||||
IsvDefinition isvDefinition = new IsvDefinition();
|
IsvDefinition isvDefinition = new IsvDefinition();
|
||||||
BeanUtils.copyProperties(isvInfo, isvDefinition);
|
BeanUtils.copyProperties(isvInfo, isvDefinition);
|
||||||
String secret = secretGetter.apply(isvInfo);
|
String secret = secretGetter.apply(isvDefinition);
|
||||||
isvDefinition.setSecret(secret);
|
isvDefinition.setSecret(secret);
|
||||||
this.getIsvCache().put(isvDefinition.getAppKey(), isvDefinition);
|
this.getIsvCache().put(isvDefinition.getAppKey(), isvDefinition);
|
||||||
});
|
});
|
||||||
|
@@ -35,7 +35,6 @@ import static java.util.stream.Collectors.toList;
|
|||||||
*
|
*
|
||||||
* @author tanghc
|
* @author tanghc
|
||||||
*/
|
*/
|
||||||
@Component
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class DbIsvRoutePermissionManager extends DefaultIsvRoutePermissionManager {
|
public class DbIsvRoutePermissionManager extends DefaultIsvRoutePermissionManager {
|
||||||
|
|
||||||
|
@@ -15,7 +15,6 @@ import com.gitee.sop.gatewaycommon.manager.ZookeeperContext;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.core.env.Environment;
|
import org.springframework.core.env.Environment;
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@@ -23,7 +22,6 @@ import java.util.Collection;
|
|||||||
/**
|
/**
|
||||||
* @author tanghc
|
* @author tanghc
|
||||||
*/
|
*/
|
||||||
@Component
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class DbRouteConfigManager extends DefaultRouteConfigManager {
|
public class DbRouteConfigManager extends DefaultRouteConfigManager {
|
||||||
|
|
||||||
|
@@ -1,43 +1,16 @@
|
|||||||
package com.gitee.sop.gateway.manager;
|
package com.gitee.sop.gateway.manager;
|
||||||
|
|
||||||
import com.gitee.sop.gateway.entity.IsvInfo;
|
|
||||||
import com.gitee.sop.gatewaycommon.bean.ApiConfig;
|
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
|
* @author tanghc
|
||||||
*/
|
*/
|
||||||
@Component
|
|
||||||
@Slf4j
|
|
||||||
public class ManagerInitializer {
|
public class ManagerInitializer {
|
||||||
@Autowired
|
|
||||||
DbIsvManager dbIsvManager;
|
|
||||||
|
|
||||||
@Autowired
|
public ManagerInitializer() {
|
||||||
DbIsvRoutePermissionManager dbIsvRoutePermissionManager;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
DbRouteConfigManager dbRouteConfigManager;
|
|
||||||
|
|
||||||
public void init() {
|
|
||||||
ApiConfig apiConfig = ApiConfig.getInstance();
|
ApiConfig apiConfig = ApiConfig.getInstance();
|
||||||
apiConfig.setIsvManager(dbIsvManager);
|
apiConfig.setIsvManager(new DbIsvManager());
|
||||||
apiConfig.setIsvRoutePermissionManager(dbIsvRoutePermissionManager);
|
apiConfig.setIsvRoutePermissionManager(new DbIsvRoutePermissionManager());
|
||||||
apiConfig.setRouteConfigManager(dbRouteConfigManager);
|
apiConfig.setRouteConfigManager(new DbRouteConfigManager());
|
||||||
|
|
||||||
// 从数据库加载isv信息
|
|
||||||
log.debug("从数据库加载isv信息");
|
|
||||||
dbIsvManager.load((isvInfoObj) -> {
|
|
||||||
IsvInfo isvInfo = (IsvInfo)isvInfoObj;
|
|
||||||
return isvInfo.getPubKey();
|
|
||||||
});
|
|
||||||
|
|
||||||
log.debug("从数据库加载路由权限信息");
|
|
||||||
dbIsvRoutePermissionManager.load();
|
|
||||||
|
|
||||||
log.debug("从数据库加载路由配置信息");
|
|
||||||
dbRouteConfigManager.load();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
47
sop.sql
47
sop.sql
@@ -1,10 +1,3 @@
|
|||||||
#
|
|
||||||
# SQL Export
|
|
||||||
# Created by Querious (201048)
|
|
||||||
# Created: 2019年4月15日 GMT+8 下午8:09:15
|
|
||||||
# Encoding: Unicode (UTF-8)
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
CREATE DATABASE IF NOT EXISTS `sop` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
|
CREATE DATABASE IF NOT EXISTS `sop` DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
|
||||||
USE `sop`;
|
USE `sop`;
|
||||||
@@ -45,7 +38,7 @@ CREATE TABLE `config_route_base` (
|
|||||||
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE KEY `uk_routeid` (`route_id`) USING BTREE
|
UNIQUE KEY `uk_routeid` (`route_id`) USING BTREE
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='路由配置表';
|
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='路由配置表';
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE `config_route_limit` (
|
CREATE TABLE `config_route_limit` (
|
||||||
@@ -72,11 +65,12 @@ CREATE TABLE `isv_info` (
|
|||||||
`pub_key` text COMMENT '公钥',
|
`pub_key` text COMMENT '公钥',
|
||||||
`pri_key` text COMMENT '私钥',
|
`pri_key` text COMMENT '私钥',
|
||||||
`status` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT '1启用,2禁用',
|
`status` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT '1启用,2禁用',
|
||||||
|
`sign_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '1:RSA2,2:MD5',
|
||||||
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE KEY `uk_app_key` (`app_key`)
|
UNIQUE KEY `uk_app_key` (`app_key`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COMMENT='isv信息表';
|
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='isv信息表';
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE `perm_isv_role` (
|
CREATE TABLE `perm_isv_role` (
|
||||||
@@ -87,7 +81,7 @@ CREATE TABLE `perm_isv_role` (
|
|||||||
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE KEY `uk_user_role` (`isv_id`,`role_code`)
|
UNIQUE KEY `uk_user_role` (`isv_id`,`role_code`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8 COMMENT='isv角色';
|
) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8 COMMENT='isv角色';
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE `perm_role` (
|
CREATE TABLE `perm_role` (
|
||||||
@@ -109,7 +103,7 @@ CREATE TABLE `perm_role_permission` (
|
|||||||
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
UNIQUE KEY `uk_role_perm` (`role_code`,`route_id`) USING BTREE
|
UNIQUE KEY `uk_role_perm` (`role_code`,`route_id`) USING BTREE
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COMMENT='角色权限表';
|
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='角色权限表';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -133,8 +127,10 @@ LOCK TABLES `config_route_base` WRITE;
|
|||||||
ALTER TABLE `config_route_base` DISABLE KEYS;
|
ALTER TABLE `config_route_base` DISABLE KEYS;
|
||||||
INSERT INTO `config_route_base` (`id`, `route_id`, `status`, `gmt_create`, `gmt_modified`) VALUES
|
INSERT INTO `config_route_base` (`id`, `route_id`, `status`, `gmt_create`, `gmt_modified`) VALUES
|
||||||
(1,'story.get1.1',1,'2019-04-09 19:15:58','2019-04-09 19:16:54'),
|
(1,'story.get1.1',1,'2019-04-09 19:15:58','2019-04-09 19:16:54'),
|
||||||
(2,'alipay.story.get1.0',1,'2019-04-09 19:19:57','2019-04-11 09:35:26'),
|
(2,'alipay.story.get1.0',1,'2019-04-09 19:19:57','2019-04-19 14:45:33'),
|
||||||
(3,'alipay.story.find1.0',1,'2019-04-11 09:29:55','2019-04-11 09:35:02');
|
(3,'alipay.story.find1.0',1,'2019-04-11 09:29:55','2019-04-11 09:35:02'),
|
||||||
|
(4,'alipay.book.story.get1.0',1,'2019-04-16 10:23:44','2019-04-16 10:23:44'),
|
||||||
|
(5,'spirngmvc.goods.get1.0',2,'2019-04-16 10:24:08','2019-04-16 10:24:08');
|
||||||
ALTER TABLE `config_route_base` ENABLE KEYS;
|
ALTER TABLE `config_route_base` ENABLE KEYS;
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
|
||||||
@@ -151,14 +147,15 @@ UNLOCK TABLES;
|
|||||||
|
|
||||||
LOCK TABLES `isv_info` WRITE;
|
LOCK TABLES `isv_info` WRITE;
|
||||||
ALTER TABLE `isv_info` DISABLE KEYS;
|
ALTER TABLE `isv_info` DISABLE KEYS;
|
||||||
INSERT INTO `isv_info` (`id`, `app_key`, `secret`, `pub_key`, `pri_key`, `status`, `gmt_create`, `gmt_modified`) VALUES
|
INSERT INTO `isv_info` (`id`, `app_key`, `secret`, `pub_key`, `pri_key`, `status`, `sign_type`, `gmt_create`, `gmt_modified`) VALUES
|
||||||
(1,'2019032617262200001','','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',1,'2019-03-27 10:10:34','2019-04-01 20:54:01'),
|
(1,'2019032617262200001','','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',1,1,'2019-03-27 10:10:34','2019-04-19 19:21:40'),
|
||||||
(3,'asdfasdf','','333','4444',2,'2019-03-27 11:01:11','2019-04-14 23:30:17'),
|
(3,'asdfasdf','','333','4444',2,1,'2019-03-27 11:01:11','2019-04-14 23:30:17'),
|
||||||
(5,'20190331562013861008375808','29864b93427447f5ac6c44df746f84ef','MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4aMIx2q8rCVu5z6dgNQQSX2vwhvIcRb7FaqSk0ZK8AV9qQeE1TvfFVlAzOHlysE1yTRb0Mb6W2aw7IAS7Bkc3onYBQR4zNQYjYoDBzLukjF8o84hoVFRnh7sV8zszid2vb5H/YQr3M+5sYhlXY8KfILk3vhdbWpHM/umplcrxlwIDAQAB','MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALhowjHarysJW7nPp2A1BBJfa/CG8hxFvsVqpKTRkrwBX2pB4TVO98VWUDM4eXKwTXJNFvQxvpbZrDsgBLsGRzeidgFBHjM1BiNigMHMu6SMXyjziGhUVGeHuxXzOzOJ3a9vkf9hCvcz7mxiGVdjwp8guTe+F1takcz+6amVyvGXAgMBAAECgYBj40LFVGoryp7n0CYeg7kX5p4GJGKCk/jY4IIcUPTFZ4zydorxoDuvpag9hmqqh/r7XeyAC23sMi4LvLUzRRxPh+7PuwL6nLce7vytsMCZQTPpBgz7dUfbi2HAxsuMOLjH3sVGycutARJsz6bT+9PyBEuVtUqwBrDGpFvwT0z6yQJBAOANC8nysb+O4rn/fbJtHIhtQoV74yu00mLnfwv8/J1+WyAEc32WZ4KYINqCe8ft1UknhPQx9UV6JaPCnlpF6w0CQQDStJhd38uQ7dVUQZHGP24xS/K38AYiSheEr7uewhkJfC2cKqE/lBk3oEG4s7asjhwlFLWLWSBLVM/Ta9Yj0hYzAkBe82hxl1bY9bcEWFBu02rqLlOouk4V8bXPkIf5DqgIHsqDkR9Ys+r+H3ac4/uNSS/ApuzjiGCHpzJYalwtqb/pAkEAvAKlSm5dCC8QAaSYXJtQyfAI3hPwhTwzjBP6iAiNqqcBU62+QCr37Wiz/Alv4LzVZEj8TSDz7gP5hZ9dbo0RfQJBALJ7NhTaeMN4jxBJ6Xg4rNZPb4yhAXuFxCp+a+FyXTsbWnW/ar8KJ3LHox0GOao6wne4qN3h7eqLOrYnnvOSFl0=',1,'2019-03-31 20:34:12','2019-03-31 22:07:50'),
|
(5,'20190331562013861008375808','29864b93427447f5ac6c44df746f84ef','MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4aMIx2q8rCVu5z6dgNQQSX2vwhvIcRb7FaqSk0ZK8AV9qQeE1TvfFVlAzOHlysE1yTRb0Mb6W2aw7IAS7Bkc3onYBQR4zNQYjYoDBzLukjF8o84hoVFRnh7sV8zszid2vb5H/YQr3M+5sYhlXY8KfILk3vhdbWpHM/umplcrxlwIDAQAB','MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALhowjHarysJW7nPp2A1BBJfa/CG8hxFvsVqpKTRkrwBX2pB4TVO98VWUDM4eXKwTXJNFvQxvpbZrDsgBLsGRzeidgFBHjM1BiNigMHMu6SMXyjziGhUVGeHuxXzOzOJ3a9vkf9hCvcz7mxiGVdjwp8guTe+F1takcz+6amVyvGXAgMBAAECgYBj40LFVGoryp7n0CYeg7kX5p4GJGKCk/jY4IIcUPTFZ4zydorxoDuvpag9hmqqh/r7XeyAC23sMi4LvLUzRRxPh+7PuwL6nLce7vytsMCZQTPpBgz7dUfbi2HAxsuMOLjH3sVGycutARJsz6bT+9PyBEuVtUqwBrDGpFvwT0z6yQJBAOANC8nysb+O4rn/fbJtHIhtQoV74yu00mLnfwv8/J1+WyAEc32WZ4KYINqCe8ft1UknhPQx9UV6JaPCnlpF6w0CQQDStJhd38uQ7dVUQZHGP24xS/K38AYiSheEr7uewhkJfC2cKqE/lBk3oEG4s7asjhwlFLWLWSBLVM/Ta9Yj0hYzAkBe82hxl1bY9bcEWFBu02rqLlOouk4V8bXPkIf5DqgIHsqDkR9Ys+r+H3ac4/uNSS/ApuzjiGCHpzJYalwtqb/pAkEAvAKlSm5dCC8QAaSYXJtQyfAI3hPwhTwzjBP6iAiNqqcBU62+QCr37Wiz/Alv4LzVZEj8TSDz7gP5hZ9dbo0RfQJBALJ7NhTaeMN4jxBJ6Xg4rNZPb4yhAXuFxCp+a+FyXTsbWnW/ar8KJ3LHox0GOao6wne4qN3h7eqLOrYnnvOSFl0=',1,2,'2019-03-31 20:34:12','2019-04-19 17:30:09'),
|
||||||
(6,'20190331562037310372184064','d6b2a6603236491f87eed958292be136','MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCcZTAaR5K7mk1epfLwK6XRrBiakiwIJK3wtUd8EzpcAnS7Yr8uq5U4yJKZQqu5BtFiWmTFFmAm4aBQKXH1u+6kfcRduYZDLC0cfBPA7IfLnumdrR8uiCgQgGSF71Q4NhebrOqzTAftxZ1vYMCDay1DY2BQxEiGICoCQ0abtvrfNQIDAQAB','MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBAJxlMBpHkruaTV6l8vArpdGsGJqSLAgkrfC1R3wTOlwCdLtivy6rlTjIkplCq7kG0WJaZMUWYCbhoFApcfW77qR9xF25hkMsLRx8E8Dsh8ue6Z2tHy6IKBCAZIXvVDg2F5us6rNMB+3FnW9gwINrLUNjYFDESIYgKgJDRpu2+t81AgMBAAECgYEAiu/FzQLakvkgVL4eVUihVeSKMv86SL21HMsex1YZmVXBOBsgdqiNt1VQDwFQpt4sszBUp1Yac1Ar6Cr5h3G+LVS17n517MjVeEihrmxK6VL1bUoC9Mpj4ZwuLQ0jeFYVBWEhESV/O59O8YRvk0YpIzUUaLj0+qEQBsPKLPSp8MECQQDY3A9Z+i19fPpd5hBl5x7cyzx9KeX2aru0kUMMmm3JeL1dSPSUuqmnTFdtveQrIUab9OYdJgxLtKoh3J8YqDqFAkEAuJ9jn1VNCIpXF8xsI4w1U5QFdXKnGGZ8PePHqWG1B8A9afj2o7T6gDW/xzX/k8g/2belAR3y4nXGo0EikMso8QJBANXWqYygFZtYUcmlwyW48cXm4o7Jcem69bzoQKV84iV42cHS3tqJ9iDyNoQQa53cAjRnGUJE8nr0e49IbdlyicECQQCz8vdhJ/1ro5t8IM4OX+ziR9aCQXxItivHDytfF1Mh+OhjUDzmF9JKARmqDCHOY1KI3QzBZ/WDcZRpL2WHh92hAkEAyetUnYn1F5zVJWxo+yC9PH6WYssZahNy22GdBcZblmDc/YQWw+sa9d55/5aMoYWn6AVO9Tb2gsMW2W0jM2/zCw==',2,'2019-03-31 22:07:20','2019-03-31 22:07:26'),
|
(6,'20190331562037310372184064','d6b2a6603236491f87eed958292be136','MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCcZTAaR5K7mk1epfLwK6XRrBiakiwIJK3wtUd8EzpcAnS7Yr8uq5U4yJKZQqu5BtFiWmTFFmAm4aBQKXH1u+6kfcRduYZDLC0cfBPA7IfLnumdrR8uiCgQgGSF71Q4NhebrOqzTAftxZ1vYMCDay1DY2BQxEiGICoCQ0abtvrfNQIDAQAB','MIICeQIBADANBgkqhkiG9w0BAQEFAASCAmMwggJfAgEAAoGBAJxlMBpHkruaTV6l8vArpdGsGJqSLAgkrfC1R3wTOlwCdLtivy6rlTjIkplCq7kG0WJaZMUWYCbhoFApcfW77qR9xF25hkMsLRx8E8Dsh8ue6Z2tHy6IKBCAZIXvVDg2F5us6rNMB+3FnW9gwINrLUNjYFDESIYgKgJDRpu2+t81AgMBAAECgYEAiu/FzQLakvkgVL4eVUihVeSKMv86SL21HMsex1YZmVXBOBsgdqiNt1VQDwFQpt4sszBUp1Yac1Ar6Cr5h3G+LVS17n517MjVeEihrmxK6VL1bUoC9Mpj4ZwuLQ0jeFYVBWEhESV/O59O8YRvk0YpIzUUaLj0+qEQBsPKLPSp8MECQQDY3A9Z+i19fPpd5hBl5x7cyzx9KeX2aru0kUMMmm3JeL1dSPSUuqmnTFdtveQrIUab9OYdJgxLtKoh3J8YqDqFAkEAuJ9jn1VNCIpXF8xsI4w1U5QFdXKnGGZ8PePHqWG1B8A9afj2o7T6gDW/xzX/k8g/2belAR3y4nXGo0EikMso8QJBANXWqYygFZtYUcmlwyW48cXm4o7Jcem69bzoQKV84iV42cHS3tqJ9iDyNoQQa53cAjRnGUJE8nr0e49IbdlyicECQQCz8vdhJ/1ro5t8IM4OX+ziR9aCQXxItivHDytfF1Mh+OhjUDzmF9JKARmqDCHOY1KI3QzBZ/WDcZRpL2WHh92hAkEAyetUnYn1F5zVJWxo+yC9PH6WYssZahNy22GdBcZblmDc/YQWw+sa9d55/5aMoYWn6AVO9Tb2gsMW2W0jM2/zCw==',2,2,'2019-03-31 22:07:20','2019-04-19 17:30:09'),
|
||||||
(7,'20190401562373672858288128','','MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCOgSo6GfwM8a+rUT4m61nZa7q5cJpjL7luxQKuJvkMl/QydVrzRPinCh6zqgBJDa7YY2X6z5TyTkjYuDkYMrdyHcYvCDuJ0NpRPZMR+QDE70yp9wJ+kOqTa8bepJtxzuCYLxFz+wRsIFt0nIxC6ttCaM9OEw/Bflhws3xczw4uqQIDAQAB','MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAI6BKjoZ/Azxr6tRPibrWdlrurlwmmMvuW7FAq4m+QyX9DJ1WvNE+KcKHrOqAEkNrthjZfrPlPJOSNi4ORgyt3Idxi8IO4nQ2lE9kxH5AMTvTKn3An6Q6pNrxt6km3HO4JgvEXP7BGwgW3ScjELq20Joz04TD8F+WHCzfFzPDi6pAgMBAAECgYA/zuQ6ieILZbjUDBe5U46yxQMh/6KRoQ/14m81zauckPm+EkA8R3jTSru+lPN1wpO0vqUuLf6ylI0XxT2DcUokOgY07ZdE54pu5XAsyY0eanFwt6C1LrHYpORV3Mp9XuI3fXrxYqVlxLuj1N7MGinXUuW7aZCHaEuSnZ55OL9dkQJBANKOeFiYDISSuIFHSrndSgr+a8E44jS/2/7lE49p5l3WVOFTHh0IZQNTs/IKsKJkUnYDE4W/Ab7NTnWZpXYeM30CQQCtQrtxPEzLl4dtupPOBJJoApj2lq7Q6tIGx178K6wS9Rz3GEvkA7fz1Tpm+nmPZflWZ9mVmEaVuMTMpl3HN/edAkBylyzx8lYltIALg5QskT1hvFNChkW9tYjyMROzIkxIV4Q8WPLzlAT9iYlOOfkld/nU1hnC2VAG2k9P+z2sigU1AkBAl1AptsEqZSMn1RalBy9NdypvQ12IpQIHZOwUNnO/3YEe3P/t0TUSwbs0CMyomOuLOsvy6QHnbypu4Na1HjhBAkAWjtdhuvU15HAa5jMgiUVfQM3YFuz2k3QkRagtZZ33bqnYs4wNxEZqB5t+vEj+8r3fmSN0BpNR1VW71j53Ir0H',1,'2019-04-01 20:24:01','2019-04-01 20:27:33'),
|
(7,'20190401562373672858288128','','MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCOgSo6GfwM8a+rUT4m61nZa7q5cJpjL7luxQKuJvkMl/QydVrzRPinCh6zqgBJDa7YY2X6z5TyTkjYuDkYMrdyHcYvCDuJ0NpRPZMR+QDE70yp9wJ+kOqTa8bepJtxzuCYLxFz+wRsIFt0nIxC6ttCaM9OEw/Bflhws3xczw4uqQIDAQAB','MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAI6BKjoZ/Azxr6tRPibrWdlrurlwmmMvuW7FAq4m+QyX9DJ1WvNE+KcKHrOqAEkNrthjZfrPlPJOSNi4ORgyt3Idxi8IO4nQ2lE9kxH5AMTvTKn3An6Q6pNrxt6km3HO4JgvEXP7BGwgW3ScjELq20Joz04TD8F+WHCzfFzPDi6pAgMBAAECgYA/zuQ6ieILZbjUDBe5U46yxQMh/6KRoQ/14m81zauckPm+EkA8R3jTSru+lPN1wpO0vqUuLf6ylI0XxT2DcUokOgY07ZdE54pu5XAsyY0eanFwt6C1LrHYpORV3Mp9XuI3fXrxYqVlxLuj1N7MGinXUuW7aZCHaEuSnZ55OL9dkQJBANKOeFiYDISSuIFHSrndSgr+a8E44jS/2/7lE49p5l3WVOFTHh0IZQNTs/IKsKJkUnYDE4W/Ab7NTnWZpXYeM30CQQCtQrtxPEzLl4dtupPOBJJoApj2lq7Q6tIGx178K6wS9Rz3GEvkA7fz1Tpm+nmPZflWZ9mVmEaVuMTMpl3HN/edAkBylyzx8lYltIALg5QskT1hvFNChkW9tYjyMROzIkxIV4Q8WPLzlAT9iYlOOfkld/nU1hnC2VAG2k9P+z2sigU1AkBAl1AptsEqZSMn1RalBy9NdypvQ12IpQIHZOwUNnO/3YEe3P/t0TUSwbs0CMyomOuLOsvy6QHnbypu4Na1HjhBAkAWjtdhuvU15HAa5jMgiUVfQM3YFuz2k3QkRagtZZ33bqnYs4wNxEZqB5t+vEj+8r3fmSN0BpNR1VW71j53Ir0H',1,1,'2019-04-01 20:24:01','2019-04-01 20:27:33'),
|
||||||
(8,'20190401562373796095328256','','MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCbxn0En2cj29t8i+m1dT7seF9XQx3cEaoClXFTlmc78Y1ZuQFbyY99VSwv8JbtpGxPvBSVD9SPmXWNBRBbSHT+gxStcdXD9QeD3knGFy/1V+z3E2Rj/6LIlFmgTlGh1fmEgttPjsUW1Dj704/ydyIrw+CAyAMKQyrFg0wYmNW+UQIDAQAB','MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAJvGfQSfZyPb23yL6bV1Pux4X1dDHdwRqgKVcVOWZzvxjVm5AVvJj31VLC/wlu2kbE+8FJUP1I+ZdY0FEFtIdP6DFK1x1cP1B4PeScYXL/VX7PcTZGP/osiUWaBOUaHV+YSC20+OxRbUOPvTj/J3IivD4IDIAwpDKsWDTBiY1b5RAgMBAAECgYAE27/ycPZKjATgcYyseCeqQGbY1eMMhhCDXB3YuYwmtnXuInMEZdjv08Q5CovqhYJLSlZp/8BlaifcahgEgNIFQXmxAF0U0HsNC6W4Dk1gGgQaVmYaZv5ex7uIcFB1qFvlO60kWf82YeRnO5KsFBODOJ1XSNwqjL2GeLSHBSVyQQJBAOsvDmClBsETSdiNSFMz+D9WCnCh1Ip4AoCzA/yG+PRSwYjZDdceP2DXieiZXPlxTFZ7MIXxAafgeyeQA2hpkQUCQQCpkCUSbrZ+nd4BYdnxZOSf0//cUT0o6+3kROX7gsXV7zRAWWxojT6DkGVlduDLZM/hjWeHRjWUxKC/jgbzvundAkBckhUSrWJPNQxoFJRXS6l3JKLPWqOSLVKu3ce/6lCrurc66lSsS9eegrhhuZwDAzmNAMhEsGx6a72OAP2WZ5cRAkBd8cT4X2qw4BpePa6YdcPNYZHCqSfvgje9XwbkwGGH1A3pESJlEsxt7BShkKmfRu1+E/AmHJoXIJHHT5M+fKnpAkA+VfyAAviKeCwUSq+5oUa0B+ozEA3frp/40cKQP7k02aamocAQCDRaC1ZlWffeQqYMnYe1/Mjr/SdX/Ut3X0CC',1,'2019-04-01 20:24:25','2019-04-01 20:24:48'),
|
(8,'20190401562373796095328256','','MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCbxn0En2cj29t8i+m1dT7seF9XQx3cEaoClXFTlmc78Y1ZuQFbyY99VSwv8JbtpGxPvBSVD9SPmXWNBRBbSHT+gxStcdXD9QeD3knGFy/1V+z3E2Rj/6LIlFmgTlGh1fmEgttPjsUW1Dj704/ydyIrw+CAyAMKQyrFg0wYmNW+UQIDAQAB','MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAJvGfQSfZyPb23yL6bV1Pux4X1dDHdwRqgKVcVOWZzvxjVm5AVvJj31VLC/wlu2kbE+8FJUP1I+ZdY0FEFtIdP6DFK1x1cP1B4PeScYXL/VX7PcTZGP/osiUWaBOUaHV+YSC20+OxRbUOPvTj/J3IivD4IDIAwpDKsWDTBiY1b5RAgMBAAECgYAE27/ycPZKjATgcYyseCeqQGbY1eMMhhCDXB3YuYwmtnXuInMEZdjv08Q5CovqhYJLSlZp/8BlaifcahgEgNIFQXmxAF0U0HsNC6W4Dk1gGgQaVmYaZv5ex7uIcFB1qFvlO60kWf82YeRnO5KsFBODOJ1XSNwqjL2GeLSHBSVyQQJBAOsvDmClBsETSdiNSFMz+D9WCnCh1Ip4AoCzA/yG+PRSwYjZDdceP2DXieiZXPlxTFZ7MIXxAafgeyeQA2hpkQUCQQCpkCUSbrZ+nd4BYdnxZOSf0//cUT0o6+3kROX7gsXV7zRAWWxojT6DkGVlduDLZM/hjWeHRjWUxKC/jgbzvundAkBckhUSrWJPNQxoFJRXS6l3JKLPWqOSLVKu3ce/6lCrurc66lSsS9eegrhhuZwDAzmNAMhEsGx6a72OAP2WZ5cRAkBd8cT4X2qw4BpePa6YdcPNYZHCqSfvgje9XwbkwGGH1A3pESJlEsxt7BShkKmfRu1+E/AmHJoXIJHHT5M+fKnpAkA+VfyAAviKeCwUSq+5oUa0B+ozEA3frp/40cKQP7k02aamocAQCDRaC1ZlWffeQqYMnYe1/Mjr/SdX/Ut3X0CC',1,1,'2019-04-01 20:24:25','2019-04-01 20:24:48'),
|
||||||
(9,'201904035630907729292csharp','','MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5+OvJxeSzf44NxQ/cl7Ii+BzPg2k6sRcvH4ffOtU5Dzq1/oEvg02nxIhmwOHBZmjbmuUu0aLsfglUTAwqfXftfAKZidshsgj9NNh0/kxk0avRZ1UoljWGz/FxVZA0ogbxxhohPZ9jWcD+eBQcIwF2DtHfAJqWWZrYFnCMeHD8mPzxo2kwXSvDzi0vf9I2tKiYvNG26a9FqeYtPOoi81sdS3+70HOMdxP8ejXtyfnKpKz7Dx506LCIRS5moWS3Q5eTLV3NGX/1CSJ8wpQA2DAQTjVhX5eVu7Yqz12t8W+sjWM/tHUR6cgwYYR10p7tSCeCPzkigjGxKm4cYXWtATQJQIDAQAB','MIIEowIBAAKCAQEA5+OvJxeSzf44NxQ/cl7Ii+BzPg2k6sRcvH4ffOtU5Dzq1/oEvg02nxIhmwOHBZmjbmuUu0aLsfglUTAwqfXftfAKZidshsgj9NNh0/kxk0avRZ1UoljWGz/FxVZA0ogbxxhohPZ9jWcD+eBQcIwF2DtHfAJqWWZrYFnCMeHD8mPzxo2kwXSvDzi0vf9I2tKiYvNG26a9FqeYtPOoi81sdS3+70HOMdxP8ejXtyfnKpKz7Dx506LCIRS5moWS3Q5eTLV3NGX/1CSJ8wpQA2DAQTjVhX5eVu7Yqz12t8W+sjWM/tHUR6cgwYYR10p7tSCeCPzkigjGxKm4cYXWtATQJQIDAQABAoIBAHFDsgrrJca+NKEan77ycwx3jnKx4WrWjOF4zVKL9AQjiSYDNgvKknJyPb3kpC/lEoHdxGERHSzJoxib7DkoIqRQYhPxj73pxj5QfYk3P7LLJNNg/LTrpXDb3nL8JV9wIflGf87qQvstZTDJEyFWE4jBs7Hr0BxovWvri8InnzkmERJ1cbGJgNHe1Y3Zo2tw0yaHxQCxLuajP+notRZhD9bEp7uKeI0w9AvlW6k8m/7y10F0BK/TlyW8rQiEC391yOiRYoMcUh4hd2Q9bMx3jngZgX8PXIvZZcup4/pvWlv1alwhB2tsnLdazP62r1MO80vLyLunzGO+7WwCjEYlVaECgYEA+lQRFmbhKaPuAuXMtY31Fbga8nedka5TjnEV7+/kX+yowE2OlNujF+ZG8UTddTxAGv56yVNi/mjRlgD74j8z0eOsgvOq9mwbCrgLhLo51H9O/wAxtb+hBKtC5l50pBr4gER6d8W6EQNTSGojnMIaLXTkAZ5Qf6Z8e2HFVdOn0X0CgYEA7SSrTokwzukt5KldNu5ukyyd+C3D1i6orbg6qD73EP9CfNMfGSBn7dDv9wMSJH01+Ty+RgTROgtjGRDbMJWnfbdt/61NePr9ar5sb6Nbsf7/I0w7cZF5dsaFYgzaOfQYquzXPbLQHkpMT64bqpv/Mwy4F2lFvaYWY5fA4pC2uckCgYEAg75Ym9ybJaoTqky8ttQ2Jy8UZ4VSVQhVC0My02sCWwWXLlXi8y7An+Rec73Ve0yxREOn5WrQT6pkmzh7V/ABWrYi5WxODpCIjtSbo0fLBa3Wqle00b0/hdCITetqIa/cFs1zUrOqICgK3bKWeXqiAkhhcwSZwwSgwOKM04Wn7ZUCgYBvhHX2mbdVJfyJ8kc+hMOE/E9RHRxiBVEXWHJlGi8PVCqNDq8qHr4g7Mdbzprig+s0yKblwHAvrpkseWvKHiZEjVTyDipHgShY4TGXEigVvUd37uppTrLi8xpYcJjS9gH/px7VCdiq1d+q/MJP6coJ1KphgATm2UrgDMYNBWaYWQKBgEHRxrmER7btUF60/YgcqPHFc8RpYQB2ZZE0kyKGDqk2Data1XYUY6vsPAU28yRLAaWr/D2H17iyLkxP80VLm6QhifxCadv90Q/Wl1DFfOJQMW6avyQ0so6G0wFq/LJxaFK4iLXQn1RJnmTp6BYiJMmK2BhFbRzw8ssMoF6ad2rr',1,'2019-04-03 19:54:05','2019-04-03 20:11:58');
|
(9,'201904035630907729292csharp','','MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5+OvJxeSzf44NxQ/cl7Ii+BzPg2k6sRcvH4ffOtU5Dzq1/oEvg02nxIhmwOHBZmjbmuUu0aLsfglUTAwqfXftfAKZidshsgj9NNh0/kxk0avRZ1UoljWGz/FxVZA0ogbxxhohPZ9jWcD+eBQcIwF2DtHfAJqWWZrYFnCMeHD8mPzxo2kwXSvDzi0vf9I2tKiYvNG26a9FqeYtPOoi81sdS3+70HOMdxP8ejXtyfnKpKz7Dx506LCIRS5moWS3Q5eTLV3NGX/1CSJ8wpQA2DAQTjVhX5eVu7Yqz12t8W+sjWM/tHUR6cgwYYR10p7tSCeCPzkigjGxKm4cYXWtATQJQIDAQAB','MIIEowIBAAKCAQEA5+OvJxeSzf44NxQ/cl7Ii+BzPg2k6sRcvH4ffOtU5Dzq1/oEvg02nxIhmwOHBZmjbmuUu0aLsfglUTAwqfXftfAKZidshsgj9NNh0/kxk0avRZ1UoljWGz/FxVZA0ogbxxhohPZ9jWcD+eBQcIwF2DtHfAJqWWZrYFnCMeHD8mPzxo2kwXSvDzi0vf9I2tKiYvNG26a9FqeYtPOoi81sdS3+70HOMdxP8ejXtyfnKpKz7Dx506LCIRS5moWS3Q5eTLV3NGX/1CSJ8wpQA2DAQTjVhX5eVu7Yqz12t8W+sjWM/tHUR6cgwYYR10p7tSCeCPzkigjGxKm4cYXWtATQJQIDAQABAoIBAHFDsgrrJca+NKEan77ycwx3jnKx4WrWjOF4zVKL9AQjiSYDNgvKknJyPb3kpC/lEoHdxGERHSzJoxib7DkoIqRQYhPxj73pxj5QfYk3P7LLJNNg/LTrpXDb3nL8JV9wIflGf87qQvstZTDJEyFWE4jBs7Hr0BxovWvri8InnzkmERJ1cbGJgNHe1Y3Zo2tw0yaHxQCxLuajP+notRZhD9bEp7uKeI0w9AvlW6k8m/7y10F0BK/TlyW8rQiEC391yOiRYoMcUh4hd2Q9bMx3jngZgX8PXIvZZcup4/pvWlv1alwhB2tsnLdazP62r1MO80vLyLunzGO+7WwCjEYlVaECgYEA+lQRFmbhKaPuAuXMtY31Fbga8nedka5TjnEV7+/kX+yowE2OlNujF+ZG8UTddTxAGv56yVNi/mjRlgD74j8z0eOsgvOq9mwbCrgLhLo51H9O/wAxtb+hBKtC5l50pBr4gER6d8W6EQNTSGojnMIaLXTkAZ5Qf6Z8e2HFVdOn0X0CgYEA7SSrTokwzukt5KldNu5ukyyd+C3D1i6orbg6qD73EP9CfNMfGSBn7dDv9wMSJH01+Ty+RgTROgtjGRDbMJWnfbdt/61NePr9ar5sb6Nbsf7/I0w7cZF5dsaFYgzaOfQYquzXPbLQHkpMT64bqpv/Mwy4F2lFvaYWY5fA4pC2uckCgYEAg75Ym9ybJaoTqky8ttQ2Jy8UZ4VSVQhVC0My02sCWwWXLlXi8y7An+Rec73Ve0yxREOn5WrQT6pkmzh7V/ABWrYi5WxODpCIjtSbo0fLBa3Wqle00b0/hdCITetqIa/cFs1zUrOqICgK3bKWeXqiAkhhcwSZwwSgwOKM04Wn7ZUCgYBvhHX2mbdVJfyJ8kc+hMOE/E9RHRxiBVEXWHJlGi8PVCqNDq8qHr4g7Mdbzprig+s0yKblwHAvrpkseWvKHiZEjVTyDipHgShY4TGXEigVvUd37uppTrLi8xpYcJjS9gH/px7VCdiq1d+q/MJP6coJ1KphgATm2UrgDMYNBWaYWQKBgEHRxrmER7btUF60/YgcqPHFc8RpYQB2ZZE0kyKGDqk2Data1XYUY6vsPAU28yRLAaWr/D2H17iyLkxP80VLm6QhifxCadv90Q/Wl1DFfOJQMW6avyQ0so6G0wFq/LJxaFK4iLXQn1RJnmTp6BYiJMmK2BhFbRzw8ssMoF6ad2rr',1,1,'2019-04-03 19:54:05','2019-04-03 20:11:58'),
|
||||||
|
(10,'easyopen_test','G9w0BAQEFAAOCAQ8AMIIBCgKCA','','',1,2,'2019-04-19 17:19:34','2019-04-19 17:30:09');
|
||||||
ALTER TABLE `isv_info` ENABLE KEYS;
|
ALTER TABLE `isv_info` ENABLE KEYS;
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
|
||||||
@@ -170,8 +167,10 @@ INSERT INTO `perm_isv_role` (`id`, `isv_id`, `role_code`, `gmt_create`, `gmt_mod
|
|||||||
(17,6,'vip','2019-03-31 22:07:26','2019-03-31 22:07:26'),
|
(17,6,'vip','2019-03-31 22:07:26','2019-03-31 22:07:26'),
|
||||||
(18,5,'normal','2019-03-31 22:07:50','2019-03-31 22:07:50'),
|
(18,5,'normal','2019-03-31 22:07:50','2019-03-31 22:07:50'),
|
||||||
(32,7,'normal','2019-04-01 20:27:33','2019-04-01 20:27:33'),
|
(32,7,'normal','2019-04-01 20:27:33','2019-04-01 20:27:33'),
|
||||||
(33,1,'normal','2019-04-01 20:54:01','2019-04-01 20:54:01'),
|
(36,9,'normal','2019-04-03 20:11:58','2019-04-03 20:11:58'),
|
||||||
(36,9,'normal','2019-04-03 20:11:58','2019-04-03 20:11:58');
|
(37,10,'normal','2019-04-19 17:19:34','2019-04-19 17:19:34'),
|
||||||
|
(38,10,'vip','2019-04-19 17:19:34','2019-04-19 17:19:34'),
|
||||||
|
(40,1,'normal','2019-04-19 19:21:40','2019-04-19 19:21:40');
|
||||||
ALTER TABLE `perm_isv_role` ENABLE KEYS;
|
ALTER TABLE `perm_isv_role` ENABLE KEYS;
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
|
||||||
@@ -188,7 +187,7 @@ UNLOCK TABLES;
|
|||||||
LOCK TABLES `perm_role_permission` WRITE;
|
LOCK TABLES `perm_role_permission` WRITE;
|
||||||
ALTER TABLE `perm_role_permission` DISABLE KEYS;
|
ALTER TABLE `perm_role_permission` DISABLE KEYS;
|
||||||
INSERT INTO `perm_role_permission` (`id`, `role_code`, `route_id`, `gmt_create`, `gmt_modified`) VALUES
|
INSERT INTO `perm_role_permission` (`id`, `role_code`, `route_id`, `gmt_create`, `gmt_modified`) VALUES
|
||||||
(11,'normal','permission.story.get1.0','2019-04-03 10:09:35','2019-04-03 10:09:35');
|
(15,'normal','permission.story.get1.0','2019-04-19 19:17:39','2019-04-19 19:17:39');
|
||||||
ALTER TABLE `perm_role_permission` ENABLE KEYS;
|
ALTER TABLE `perm_role_permission` ENABLE KEYS;
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user