mirror of
https://github.com/chillzhuang/SpringBlade.git
synced 2024-11-22 02:19:25 +08:00
🎉 2.6.1发布,增加登陆验证码,支持Seata1.0
This commit is contained in:
parent
027d11d688
commit
4cd8f66276
@ -1,9 +1,9 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="https://img.shields.io/badge/Release-V2.6.0-green.svg" alt="Downloads">
|
<img src="https://img.shields.io/badge/Release-V2.6.1-green.svg" alt="Downloads">
|
||||||
<img src="https://img.shields.io/badge/JDK-1.8+-green.svg" alt="Build Status">
|
<img src="https://img.shields.io/badge/JDK-1.8+-green.svg" alt="Build Status">
|
||||||
<img src="https://img.shields.io/badge/license-Apache%202-blue.svg" alt="Build Status">
|
<img src="https://img.shields.io/badge/license-Apache%202-blue.svg" alt="Build Status">
|
||||||
<img src="https://img.shields.io/badge/Spring%20Cloud-Hoxton.SR1-blue.svg" alt="Coverage Status">
|
<img src="https://img.shields.io/badge/Spring%20Cloud-Hoxton.SR1-blue.svg" alt="Coverage Status">
|
||||||
<img src="https://img.shields.io/badge/Spring%20Boot-2.2.2.RELEASE-blue.svg" alt="Downloads">
|
<img src="https://img.shields.io/badge/Spring%20Boot-2.2.4.RELEASE-blue.svg" alt="Downloads">
|
||||||
<a target="_blank" href="https://bladex.vip">
|
<a target="_blank" href="https://bladex.vip">
|
||||||
<img src="https://img.shields.io/badge/Author-Small%20Chill-ff69b4.svg" alt="Downloads">
|
<img src="https://img.shields.io/badge/Author-Small%20Chill-ff69b4.svg" alt="Downloads">
|
||||||
</a>
|
</a>
|
||||||
@ -56,8 +56,9 @@ SpringBlade
|
|||||||
* 官网地址:[https://bladex.vip](https://bladex.vip)
|
* 官网地址:[https://bladex.vip](https://bladex.vip)
|
||||||
* 问答社区:[https://sns.bladex.vip](https://sns.bladex.vip)
|
* 问答社区:[https://sns.bladex.vip](https://sns.bladex.vip)
|
||||||
* 会员计划:[SpringBlade会员计划](https://gitee.com/smallc/SpringBlade/wikis/SpringBlade会员计划)
|
* 会员计划:[SpringBlade会员计划](https://gitee.com/smallc/SpringBlade/wikis/SpringBlade会员计划)
|
||||||
* 交流一群:`477853168`
|
* 交流一群:`477853168`(满)
|
||||||
* 交流二群:`751253339`
|
* 交流二群:`751253339`(满)
|
||||||
|
* 交流三群:`784729540`
|
||||||
|
|
||||||
## 在线演示
|
## 在线演示
|
||||||
* Saber-基于Vue:[https://saber.bladex.vip](https://saber.bladex.vip)
|
* Saber-基于Vue:[https://saber.bladex.vip](https://saber.bladex.vip)
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>SpringBlade</artifactId>
|
<artifactId>SpringBlade</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>blade-auth</artifactId>
|
<artifactId>blade-auth</artifactId>
|
||||||
@ -48,6 +48,12 @@
|
|||||||
<artifactId>blade-core-swagger</artifactId>
|
<artifactId>blade-core-swagger</artifactId>
|
||||||
<version>${blade.tool.version}</version>
|
<version>${blade.tool.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!-- Captcha -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.whvcse</groupId>
|
||||||
|
<artifactId>easy-captcha</artifactId>
|
||||||
|
<version>${captcha.version}</version>
|
||||||
|
</dependency>
|
||||||
<!-- MySQL -->
|
<!-- MySQL -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>mysql</groupId>
|
<groupId>mysql</groupId>
|
||||||
|
@ -1,39 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
|
|
||||||
* <p>
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* <p>
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* <p>
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package org.springblade.auth.config;
|
|
||||||
|
|
||||||
|
|
||||||
import org.springblade.core.secure.registry.SecureRegistry;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* secure模块api放行配置
|
|
||||||
*
|
|
||||||
* @author Chill
|
|
||||||
*/
|
|
||||||
@Configuration
|
|
||||||
public class RegistryConfiguration implements WebMvcConfigurer {
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public SecureRegistry secureRegistry() {
|
|
||||||
SecureRegistry secureRegistry = new SecureRegistry();
|
|
||||||
secureRegistry.excludePathPatterns("/token/**");
|
|
||||||
return secureRegistry;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.springblade.auth.controller;
|
package org.springblade.auth.controller;
|
||||||
|
|
||||||
|
import com.wf.captcha.SpecCaptcha;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiParam;
|
import io.swagger.annotations.ApiParam;
|
||||||
@ -23,15 +24,22 @@ import org.springblade.auth.granter.ITokenGranter;
|
|||||||
import org.springblade.auth.granter.TokenGranterBuilder;
|
import org.springblade.auth.granter.TokenGranterBuilder;
|
||||||
import org.springblade.auth.granter.TokenParameter;
|
import org.springblade.auth.granter.TokenParameter;
|
||||||
import org.springblade.auth.utils.TokenUtil;
|
import org.springblade.auth.utils.TokenUtil;
|
||||||
|
import org.springblade.common.cache.CacheNames;
|
||||||
import org.springblade.core.secure.AuthInfo;
|
import org.springblade.core.secure.AuthInfo;
|
||||||
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.api.R;
|
||||||
|
import org.springblade.core.tool.support.Kv;
|
||||||
import org.springblade.core.tool.utils.Func;
|
import org.springblade.core.tool.utils.Func;
|
||||||
|
import org.springblade.core.tool.utils.RedisUtil;
|
||||||
import org.springblade.core.tool.utils.WebUtil;
|
import org.springblade.core.tool.utils.WebUtil;
|
||||||
import org.springblade.system.user.entity.UserInfo;
|
import org.springblade.system.user.entity.UserInfo;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 认证模块
|
* 认证模块
|
||||||
*
|
*
|
||||||
@ -42,6 +50,8 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@Api(value = "用户授权认证", tags = "授权接口")
|
@Api(value = "用户授权认证", tags = "授权接口")
|
||||||
public class AuthController {
|
public class AuthController {
|
||||||
|
|
||||||
|
private RedisUtil redisUtil;
|
||||||
|
|
||||||
@PostMapping("token")
|
@PostMapping("token")
|
||||||
@ApiOperation(value = "获取认证token", notes = "传入租户ID:tenantId,账号:account,密码:password")
|
@ApiOperation(value = "获取认证token", notes = "传入租户ID:tenantId,账号:account,密码:password")
|
||||||
public R<AuthInfo> token(@ApiParam(value = "授权类型", required = true) @RequestParam(defaultValue = "password", required = false) String grantType,
|
public R<AuthInfo> token(@ApiParam(value = "授权类型", required = true) @RequestParam(defaultValue = "password", required = false) String grantType,
|
||||||
@ -70,4 +80,15 @@ public class AuthController {
|
|||||||
return R.data(TokenUtil.createAuthInfo(userInfo));
|
return R.data(TokenUtil.createAuthInfo(userInfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/captcha")
|
||||||
|
public R<Kv> captcha() {
|
||||||
|
SpecCaptcha specCaptcha = new SpecCaptcha(130, 48, 5);
|
||||||
|
String verCode = specCaptcha.text().toLowerCase();
|
||||||
|
String key = UUID.randomUUID().toString();
|
||||||
|
// 存入redis并设置过期时间为30分钟
|
||||||
|
redisUtil.set(CacheNames.CAPTCHA_KEY + key, verCode, 30L, TimeUnit.MINUTES);
|
||||||
|
// 将key和base64返回给前端
|
||||||
|
return R.data(Kv.init().set("key", key).set("image", specCaptcha.toBase64()));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,80 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
*
|
||||||
|
* Redistributions of source code must retain the above copyright notice,
|
||||||
|
* this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the dreamlu.net developer nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
* Author: Chill 庄骞 (smallchill@163.com)
|
||||||
|
*/
|
||||||
|
package org.springblade.auth.granter;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springblade.auth.enums.BladeUserEnum;
|
||||||
|
import org.springblade.auth.utils.TokenUtil;
|
||||||
|
import org.springblade.common.cache.CacheNames;
|
||||||
|
import org.springblade.core.log.exception.ServiceException;
|
||||||
|
import org.springblade.core.tool.api.R;
|
||||||
|
import org.springblade.core.tool.utils.*;
|
||||||
|
import org.springblade.system.user.entity.UserInfo;
|
||||||
|
import org.springblade.system.user.feign.IUserClient;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证码TokenGranter
|
||||||
|
*
|
||||||
|
* @author Chill
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class CaptchaTokenGranter implements ITokenGranter {
|
||||||
|
|
||||||
|
public static final String GRANT_TYPE = "captcha";
|
||||||
|
|
||||||
|
private IUserClient userClient;
|
||||||
|
private RedisUtil redisUtil;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UserInfo grant(TokenParameter tokenParameter) {
|
||||||
|
HttpServletRequest request = WebUtil.getRequest();
|
||||||
|
|
||||||
|
String key = request.getHeader(TokenUtil.CAPTCHA_HEADER_KEY);
|
||||||
|
String code = request.getHeader(TokenUtil.CAPTCHA_HEADER_CODE);
|
||||||
|
// 获取验证码
|
||||||
|
String redisCode = String.valueOf(redisUtil.get(CacheNames.CAPTCHA_KEY + key));
|
||||||
|
// 判断验证码
|
||||||
|
if (code == null || !StringUtil.equalsIgnoreCase(redisCode, code)) {
|
||||||
|
throw new ServiceException(TokenUtil.CAPTCHA_NOT_CORRECT);
|
||||||
|
}
|
||||||
|
|
||||||
|
String tenantId = tokenParameter.getArgs().getStr("tenantId");
|
||||||
|
String account = tokenParameter.getArgs().getStr("account");
|
||||||
|
String password = tokenParameter.getArgs().getStr("password");
|
||||||
|
UserInfo userInfo = null;
|
||||||
|
if (Func.isNoneBlank(account, password)) {
|
||||||
|
// 获取用户类型
|
||||||
|
String userType = tokenParameter.getArgs().getStr("userType");
|
||||||
|
R<UserInfo> result;
|
||||||
|
// 根据不同用户类型调用对应的接口返回数据,用户可自行拓展
|
||||||
|
if (userType.equals(BladeUserEnum.WEB.getName())) {
|
||||||
|
result = userClient.userInfo(tenantId, account, DigestUtil.encrypt(password));
|
||||||
|
} else if (userType.equals(BladeUserEnum.APP.getName())) {
|
||||||
|
result = userClient.userInfo(tenantId, account, DigestUtil.encrypt(password));
|
||||||
|
} else {
|
||||||
|
result = userClient.userInfo(tenantId, account, DigestUtil.encrypt(password));
|
||||||
|
}
|
||||||
|
userInfo = result.isSuccess() ? result.getData() : null;
|
||||||
|
}
|
||||||
|
return userInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -38,6 +38,7 @@ public class TokenGranterBuilder {
|
|||||||
|
|
||||||
static {
|
static {
|
||||||
granterPool.put(PasswordTokenGranter.GRANT_TYPE, SpringUtil.getBean(PasswordTokenGranter.class));
|
granterPool.put(PasswordTokenGranter.GRANT_TYPE, SpringUtil.getBean(PasswordTokenGranter.class));
|
||||||
|
granterPool.put(CaptchaTokenGranter.GRANT_TYPE, SpringUtil.getBean(CaptchaTokenGranter.class));
|
||||||
granterPool.put(RefreshTokenGranter.GRANT_TYPE, SpringUtil.getBean(RefreshTokenGranter.class));
|
granterPool.put(RefreshTokenGranter.GRANT_TYPE, SpringUtil.getBean(RefreshTokenGranter.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,6 +33,9 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
public class TokenUtil {
|
public class TokenUtil {
|
||||||
|
|
||||||
|
public final static String CAPTCHA_HEADER_KEY = "Captcha-Key";
|
||||||
|
public final static String CAPTCHA_HEADER_CODE = "Captcha-Code";
|
||||||
|
public final static String CAPTCHA_NOT_CORRECT = "验证码不正确";
|
||||||
public final static String TENANT_HEADER_KEY = "Tenant-Id";
|
public final static String TENANT_HEADER_KEY = "Tenant-Id";
|
||||||
public final static String DEFAULT_TENANT_ID = "000000";
|
public final static String DEFAULT_TENANT_ID = "000000";
|
||||||
public final static String USER_TYPE_HEADER_KEY = "User-Type";
|
public final static String USER_TYPE_HEADER_KEY = "User-Type";
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>SpringBlade</artifactId>
|
<artifactId>SpringBlade</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -27,4 +27,6 @@ public interface CacheNames {
|
|||||||
String DICT_VALUE = "dict:value";
|
String DICT_VALUE = "dict:value";
|
||||||
String DICT_LIST = "dict:list";
|
String DICT_LIST = "dict:list";
|
||||||
|
|
||||||
|
String CAPTCHA_KEY = "blade:auth::captcha:";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>SpringBlade</artifactId>
|
<artifactId>SpringBlade</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -35,6 +35,7 @@ public class AuthProvider {
|
|||||||
static {
|
static {
|
||||||
defaultSkipUrl.add("/example");
|
defaultSkipUrl.add("/example");
|
||||||
defaultSkipUrl.add("/token/**");
|
defaultSkipUrl.add("/token/**");
|
||||||
|
defaultSkipUrl.add("/captcha/**");
|
||||||
defaultSkipUrl.add("/actuator/health/**");
|
defaultSkipUrl.add("/actuator/health/**");
|
||||||
defaultSkipUrl.add("/v2/api-docs/**");
|
defaultSkipUrl.add("/v2/api-docs/**");
|
||||||
defaultSkipUrl.add("/v2/api-docs-ext/**");
|
defaultSkipUrl.add("/v2/api-docs-ext/**");
|
||||||
@ -42,6 +43,8 @@ public class AuthProvider {
|
|||||||
defaultSkipUrl.add("/log/**");
|
defaultSkipUrl.add("/log/**");
|
||||||
defaultSkipUrl.add("/menu/routes");
|
defaultSkipUrl.add("/menu/routes");
|
||||||
defaultSkipUrl.add("/menu/auth-routes");
|
defaultSkipUrl.add("/menu/auth-routes");
|
||||||
|
defaultSkipUrl.add("/order/create/**");
|
||||||
|
defaultSkipUrl.add("/storage/deduct/**");
|
||||||
defaultSkipUrl.add("/error/**");
|
defaultSkipUrl.add("/error/**");
|
||||||
defaultSkipUrl.add("/assets/**");
|
defaultSkipUrl.add("/assets/**");
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-ops</artifactId>
|
<artifactId>blade-ops</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<artifactId>blade-ops</artifactId>
|
<artifactId>blade-ops</artifactId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-ops</artifactId>
|
<artifactId>blade-ops</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-ops</artifactId>
|
<artifactId>blade-ops</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -1,39 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
|
|
||||||
* <p>
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* <p>
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* <p>
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package org.springblade.seata.order.config;
|
|
||||||
|
|
||||||
|
|
||||||
import org.springblade.core.secure.registry.SecureRegistry;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* secure模块api放行配置
|
|
||||||
*
|
|
||||||
* @author Chill
|
|
||||||
*/
|
|
||||||
@Configuration
|
|
||||||
public class OrderConfiguration implements WebMvcConfigurer {
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public SecureRegistry secureRegistry() {
|
|
||||||
SecureRegistry secureRegistry = new SecureRegistry();
|
|
||||||
secureRegistry.excludePathPatterns("/order/create/**");
|
|
||||||
return secureRegistry;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -19,7 +19,7 @@ public interface IStorageClient {
|
|||||||
* @param count 数量
|
* @param count 数量
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
@GetMapping("/deduct")
|
@GetMapping("/storage/deduct")
|
||||||
int deduct(@RequestParam("commodityCode") String commodityCode, @RequestParam("count") Integer count);
|
int deduct(@RequestParam("commodityCode") String commodityCode, @RequestParam("count") Integer count);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8,3 +8,24 @@ spring:
|
|||||||
url: jdbc:mysql://localhost:3306/seata_order?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
|
url: jdbc:mysql://localhost:3306/seata_order?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
|
||||||
username: root
|
username: root
|
||||||
password: root
|
password: root
|
||||||
|
|
||||||
|
# seata配置
|
||||||
|
seata:
|
||||||
|
tx-service-group: blade-seata-order-group
|
||||||
|
#registry:
|
||||||
|
# type: nacos
|
||||||
|
# nacos:
|
||||||
|
# server-addr: localhost
|
||||||
|
#config:
|
||||||
|
# type: nacos
|
||||||
|
# nacos:
|
||||||
|
# server-addr: localhost
|
||||||
|
service:
|
||||||
|
grouplist: 127.0.0.1:8091
|
||||||
|
vgroup-mapping: default
|
||||||
|
disable-global-transaction: false
|
||||||
|
client:
|
||||||
|
support:
|
||||||
|
spring:
|
||||||
|
datasource-autoproxy: false
|
||||||
|
rm-report-success-enable: false
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
registry {
|
|
||||||
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
|
|
||||||
type = "nacos"
|
|
||||||
|
|
||||||
nacos {
|
|
||||||
serverAddr = "localhost"
|
|
||||||
namespace = ""
|
|
||||||
cluster = "default"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
config {
|
|
||||||
# file、nacos 、apollo、zk、consul、etcd3
|
|
||||||
type = "nacos"
|
|
||||||
|
|
||||||
nacos {
|
|
||||||
serverAddr = "localhost"
|
|
||||||
namespace = ""
|
|
||||||
}
|
|
||||||
}
|
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-ops</artifactId>
|
<artifactId>blade-ops</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -18,10 +18,6 @@ package org.springblade.seata.storage;
|
|||||||
import org.springblade.core.launch.BladeApplication;
|
import org.springblade.core.launch.BladeApplication;
|
||||||
import org.springblade.core.launch.constant.AppConstant;
|
import org.springblade.core.launch.constant.AppConstant;
|
||||||
import org.springblade.core.transaction.annotation.SeataCloudApplication;
|
import org.springblade.core.transaction.annotation.SeataCloudApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|
||||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
|
||||||
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
|
|
||||||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
|
||||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,39 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
|
|
||||||
* <p>
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* <p>
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* <p>
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package org.springblade.seata.storage.config;
|
|
||||||
|
|
||||||
|
|
||||||
import org.springblade.core.secure.registry.SecureRegistry;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* secure模块api放行配置
|
|
||||||
*
|
|
||||||
* @author Chill
|
|
||||||
*/
|
|
||||||
@Configuration
|
|
||||||
public class StorageConfiguration implements WebMvcConfigurer {
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public SecureRegistry secureRegistry() {
|
|
||||||
SecureRegistry secureRegistry = new SecureRegistry();
|
|
||||||
secureRegistry.excludePathPatterns("/deduct/**");
|
|
||||||
return secureRegistry;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
* @author Chill
|
* @author Chill
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
|
@RequestMapping("storage")
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class StorageController {
|
public class StorageController {
|
||||||
|
|
||||||
|
@ -8,3 +8,24 @@ spring:
|
|||||||
url: jdbc:mysql://localhost:3306/seata_storage?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
|
url: jdbc:mysql://localhost:3306/seata_storage?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
|
||||||
username: root
|
username: root
|
||||||
password: root
|
password: root
|
||||||
|
|
||||||
|
# seata配置
|
||||||
|
seata:
|
||||||
|
tx-service-group: blade-seata-storage-group
|
||||||
|
#registry:
|
||||||
|
# type: nacos
|
||||||
|
# nacos:
|
||||||
|
# server-addr: localhost
|
||||||
|
#config:
|
||||||
|
# type: nacos
|
||||||
|
# nacos:
|
||||||
|
# server-addr: localhost
|
||||||
|
service:
|
||||||
|
grouplist: 127.0.0.1:8091
|
||||||
|
vgroup-mapping: default
|
||||||
|
disable-global-transaction: false
|
||||||
|
client:
|
||||||
|
support:
|
||||||
|
spring:
|
||||||
|
datasource-autoproxy: false
|
||||||
|
rm-report-success-enable: false
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
registry {
|
|
||||||
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
|
|
||||||
type = "nacos"
|
|
||||||
|
|
||||||
nacos {
|
|
||||||
serverAddr = "localhost"
|
|
||||||
namespace = ""
|
|
||||||
cluster = "default"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
config {
|
|
||||||
# file、nacos 、apollo、zk、consul、etcd3
|
|
||||||
type = "nacos"
|
|
||||||
|
|
||||||
nacos {
|
|
||||||
serverAddr = "localhost"
|
|
||||||
namespace = ""
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
FROM anapsix/alpine-java:8_server-jre_unlimited
|
|
||||||
|
|
||||||
MAINTAINER smallchill@163.com
|
|
||||||
|
|
||||||
RUN mkdir -p /blade/zipkin
|
|
||||||
|
|
||||||
WORKDIR /blade/zipkin
|
|
||||||
|
|
||||||
EXPOSE 9411
|
|
||||||
|
|
||||||
ADD ./target/blade-zipkin.jar ./app.jar
|
|
||||||
|
|
||||||
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
|
|
||||||
|
|
||||||
CMD ["--spring.profiles.active=test"]
|
|
@ -1,104 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
<parent>
|
|
||||||
<artifactId>blade-ops</artifactId>
|
|
||||||
<groupId>org.springblade</groupId>
|
|
||||||
<version>2.6.0</version>
|
|
||||||
</parent>
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
|
|
||||||
<artifactId>blade-zipkin</artifactId>
|
|
||||||
<name>${project.artifactId}</name>
|
|
||||||
<version>${bladex.project.version}</version>
|
|
||||||
<packaging>jar</packaging>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<!--Blade-->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springblade</groupId>
|
|
||||||
<artifactId>blade-common</artifactId>
|
|
||||||
<version>${blade.project.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springblade</groupId>
|
|
||||||
<artifactId>blade-core-tool</artifactId>
|
|
||||||
<version>${blade.tool.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springblade</groupId>
|
|
||||||
<artifactId>blade-core-cloud</artifactId>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.springblade</groupId>
|
|
||||||
<artifactId>blade-core-secure</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
<version>${blade.tool.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<!--Zipkin-->
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.zipkin.java</groupId>
|
|
||||||
<artifactId>zipkin-server</artifactId>
|
|
||||||
<version>2.12.3</version>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>log4j-slf4j-impl</artifactId>
|
|
||||||
<groupId>org.apache.logging.log4j</groupId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>io.zipkin.java</groupId>
|
|
||||||
<artifactId>zipkin-autoconfigure-ui</artifactId>
|
|
||||||
<version>2.12.3</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>com.spotify</groupId>
|
|
||||||
<artifactId>docker-maven-plugin</artifactId>
|
|
||||||
<version>${docker.plugin.version}</version>
|
|
||||||
<configuration>
|
|
||||||
<imageName>${docker.registry.url}/blade/${project.artifactId}:${project.version}</imageName>
|
|
||||||
<dockerDirectory>${project.basedir}</dockerDirectory>
|
|
||||||
<dockerHost>${docker.registry.host}</dockerHost>
|
|
||||||
<resources>
|
|
||||||
<resource>
|
|
||||||
<targetPath>/</targetPath>
|
|
||||||
<directory>${project.build.directory}</directory>
|
|
||||||
<include>${project.build.finalName}.jar</include>
|
|
||||||
</resource>
|
|
||||||
</resources>
|
|
||||||
<registryUrl>${docker.registry.url}</registryUrl>
|
|
||||||
<serverId>${docker.registry.url}</serverId>
|
|
||||||
<pushImage>true</pushImage>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-antrun-plugin</artifactId>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<phase>package</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>run</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<tasks>
|
|
||||||
<!--suppress UnresolvedMavenProperty -->
|
|
||||||
<copy overwrite="true"
|
|
||||||
tofile="${session.executionRootDirectory}/target/${artifactId}.jar"
|
|
||||||
file="${project.build.directory}/${artifactId}.jar" />
|
|
||||||
</tasks>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
</project>
|
|
@ -1,36 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
|
|
||||||
* <p>
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* <p>
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* <p>
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package org.springblade.zipkin;
|
|
||||||
|
|
||||||
import org.springblade.core.launch.BladeApplication;
|
|
||||||
import org.springblade.core.launch.constant.AppConstant;
|
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|
||||||
import zipkin2.server.internal.EnableZipkinServer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Zipkin启动器
|
|
||||||
*
|
|
||||||
* @author Chill
|
|
||||||
*/
|
|
||||||
@EnableZipkinServer
|
|
||||||
@SpringBootApplication
|
|
||||||
public class ZipkinApplication {
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
BladeApplication.run(AppConstant.APPLICATION_ZIPKIN_NAME, ZipkinApplication.class, args);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
server:
|
|
||||||
port: 9411
|
|
||||||
undertow:
|
|
||||||
# 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
|
|
||||||
io-threads: 4
|
|
||||||
# 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
|
|
||||||
worker-threads: 20
|
|
||||||
# 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
|
|
||||||
buffer-size: 1024
|
|
||||||
# 是否分配的直接内存
|
|
||||||
direct-buffers: true
|
|
||||||
|
|
||||||
#zipkin启动报错无法访问的解决方法
|
|
||||||
management:
|
|
||||||
metrics:
|
|
||||||
web:
|
|
||||||
server:
|
|
||||||
auto-time-requests: false
|
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>SpringBlade</artifactId>
|
<artifactId>SpringBlade</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
@ -17,7 +17,6 @@
|
|||||||
<module>blade-resource</module>
|
<module>blade-resource</module>
|
||||||
<module>blade-seata-order</module>
|
<module>blade-seata-order</module>
|
||||||
<module>blade-seata-storage</module>
|
<module>blade-seata-storage</module>
|
||||||
<module>blade-zipkin</module>
|
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service-api</artifactId>
|
<artifactId>blade-service-api</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service-api</artifactId>
|
<artifactId>blade-service-api</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service-api</artifactId>
|
<artifactId>blade-service-api</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service-api</artifactId>
|
<artifactId>blade-service-api</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service-api</artifactId>
|
<artifactId>blade-service-api</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,13 +5,13 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>SpringBlade</artifactId>
|
<artifactId>SpringBlade</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<artifactId>blade-service-api</artifactId>
|
<artifactId>blade-service-api</artifactId>
|
||||||
<name>${project.artifactId}</name>
|
<name>${project.artifactId}</name>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<description>SpringBlade 微服务API集合</description>
|
<description>SpringBlade 微服务API集合</description>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service</artifactId>
|
<artifactId>blade-service</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<artifactId>blade-service</artifactId>
|
<artifactId>blade-service</artifactId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service</artifactId>
|
<artifactId>blade-service</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service</artifactId>
|
<artifactId>blade-service</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>blade-service</artifactId>
|
<artifactId>blade-service</artifactId>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
@ -7,12 +7,12 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<artifactId>SpringBlade</artifactId>
|
<artifactId>SpringBlade</artifactId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>blade-service</artifactId>
|
<artifactId>blade-service</artifactId>
|
||||||
<name>${project.artifactId}</name>
|
<name>${project.artifactId}</name>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<description>SpringBlade 微服务集合</description>
|
<description>SpringBlade 微服务集合</description>
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
Target Server Version : 50723
|
Target Server Version : 50723
|
||||||
File Encoding : 65001
|
File Encoding : 65001
|
||||||
|
|
||||||
Date: 13/11/2019 18:14:10
|
Date: 10/02/2020 23:42:58
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SET NAMES utf8mb4;
|
SET NAMES utf8mb4;
|
||||||
@ -23,57 +23,57 @@ SET FOREIGN_KEY_CHECKS = 0;
|
|||||||
DROP TABLE IF EXISTS `branch_table`;
|
DROP TABLE IF EXISTS `branch_table`;
|
||||||
CREATE TABLE `branch_table` (
|
CREATE TABLE `branch_table` (
|
||||||
`branch_id` bigint(20) NOT NULL,
|
`branch_id` bigint(20) NOT NULL,
|
||||||
`xid` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
`xid` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
|
||||||
`transaction_id` bigint(20) NULL DEFAULT NULL,
|
`transaction_id` bigint(20) NULL DEFAULT NULL,
|
||||||
`resource_group_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
`resource_group_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
`resource_id` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
`resource_id` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
`lock_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
`branch_type` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
`branch_type` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
|
||||||
`status` tinyint(4) NULL DEFAULT NULL,
|
`status` tinyint(4) NULL DEFAULT NULL,
|
||||||
`client_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
`client_id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
`application_data` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
`application_data` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
`gmt_create` datetime(0) NULL DEFAULT NULL,
|
`gmt_create` datetime(6) NULL DEFAULT NULL,
|
||||||
`gmt_modified` datetime(0) NULL DEFAULT NULL,
|
`gmt_modified` datetime(6) NULL DEFAULT NULL,
|
||||||
PRIMARY KEY (`branch_id`) USING BTREE,
|
PRIMARY KEY (`branch_id`) USING BTREE,
|
||||||
INDEX `idx_xid`(`xid`) USING BTREE
|
INDEX `idx_xid`(`xid`) USING BTREE
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
|
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci;
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for global_table
|
-- Table structure for global_table
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `global_table`;
|
DROP TABLE IF EXISTS `global_table`;
|
||||||
CREATE TABLE `global_table` (
|
CREATE TABLE `global_table` (
|
||||||
`xid` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
`xid` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
|
||||||
`transaction_id` bigint(20) NULL DEFAULT NULL,
|
`transaction_id` bigint(20) NULL DEFAULT NULL,
|
||||||
`status` tinyint(4) NOT NULL,
|
`status` tinyint(4) NOT NULL,
|
||||||
`application_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
`application_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
`transaction_service_group` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
`transaction_service_group` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
`transaction_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
`transaction_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
`timeout` int(11) NULL DEFAULT NULL,
|
`timeout` int(11) NULL DEFAULT NULL,
|
||||||
`begin_time` bigint(20) NULL DEFAULT NULL,
|
`begin_time` bigint(20) NULL DEFAULT NULL,
|
||||||
`application_data` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
`application_data` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
`gmt_create` datetime(0) NULL DEFAULT NULL,
|
`gmt_create` datetime(0) NULL DEFAULT NULL,
|
||||||
`gmt_modified` datetime(0) NULL DEFAULT NULL,
|
`gmt_modified` datetime(0) NULL DEFAULT NULL,
|
||||||
PRIMARY KEY (`xid`) USING BTREE,
|
PRIMARY KEY (`xid`) USING BTREE,
|
||||||
INDEX `idx_gmt_modified_status`(`gmt_modified`, `status`) USING BTREE,
|
INDEX `idx_gmt_modified_status`(`gmt_modified`, `status`) USING BTREE,
|
||||||
INDEX `idx_transaction_id`(`transaction_id`) USING BTREE
|
INDEX `idx_transaction_id`(`transaction_id`) USING BTREE
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
|
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci;
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for lock_table
|
-- Table structure for lock_table
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
DROP TABLE IF EXISTS `lock_table`;
|
DROP TABLE IF EXISTS `lock_table`;
|
||||||
CREATE TABLE `lock_table` (
|
CREATE TABLE `lock_table` (
|
||||||
`row_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
`row_key` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
|
||||||
`xid` varchar(96) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
`xid` varchar(96) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
`transaction_id` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
|
`transaction_id` bigint(20) NULL DEFAULT NULL,
|
||||||
`branch_id` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
|
`branch_id` bigint(20) NOT NULL,
|
||||||
`resource_id` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
`resource_id` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
`table_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
`table_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
`pk` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
`pk` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
||||||
`gmt_create` datetime(0) NULL DEFAULT NULL,
|
`gmt_create` datetime(0) NULL DEFAULT NULL,
|
||||||
`gmt_modified` datetime(0) NULL DEFAULT NULL,
|
`gmt_modified` datetime(0) NULL DEFAULT NULL,
|
||||||
PRIMARY KEY (`row_key`) USING BTREE
|
PRIMARY KEY (`row_key`) USING BTREE,
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
|
INDEX `idx_branch_id`(`branch_id`) USING BTREE
|
||||||
|
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci;
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
20
pom.xml
20
pom.xml
@ -5,26 +5,26 @@
|
|||||||
|
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<artifactId>SpringBlade</artifactId>
|
<artifactId>SpringBlade</artifactId>
|
||||||
<version>2.6.0</version>
|
<version>2.6.1</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<blade.tool.version>2.6.0</blade.tool.version>
|
<blade.tool.version>2.6.1</blade.tool.version>
|
||||||
<blade.project.version>2.6.0</blade.project.version>
|
<blade.project.version>2.6.1</blade.project.version>
|
||||||
|
|
||||||
<java.version>1.8</java.version>
|
<java.version>1.8</java.version>
|
||||||
<maven.plugin.version>3.8.1</maven.plugin.version>
|
<maven.plugin.version>3.8.1</maven.plugin.version>
|
||||||
<swagger.version>2.9.2</swagger.version>
|
<swagger.version>2.9.2</swagger.version>
|
||||||
<swagger.models.version>1.5.21</swagger.models.version>
|
<swagger.models.version>1.5.21</swagger.models.version>
|
||||||
<knife4j.version>2.0.1</knife4j.version>
|
<knife4j.version>2.0.1</knife4j.version>
|
||||||
<mybatis.plus.version>3.2.0</mybatis.plus.version>
|
<mybatis.plus.version>3.3.1</mybatis.plus.version>
|
||||||
<curator.framework.version>4.0.1</curator.framework.version>
|
|
||||||
<protostuff.version>1.6.0</protostuff.version>
|
<protostuff.version>1.6.0</protostuff.version>
|
||||||
|
<captcha.version>1.6.2</captcha.version>
|
||||||
<mica.auto.version>1.1.0</mica.auto.version>
|
<mica.auto.version>1.1.0</mica.auto.version>
|
||||||
<alibaba.cloud.version>2.1.1.RELEASE</alibaba.cloud.version>
|
<alibaba.cloud.version>2.2.0.RELEASE</alibaba.cloud.version>
|
||||||
<spring.boot.admin.version>2.2.0</spring.boot.admin.version>
|
<spring.boot.admin.version>2.2.2</spring.boot.admin.version>
|
||||||
|
|
||||||
<spring.boot.version>2.2.2.RELEASE</spring.boot.version>
|
<spring.boot.version>2.2.4.RELEASE</spring.boot.version>
|
||||||
<spring.cloud.version>Hoxton.SR1</spring.cloud.version>
|
<spring.cloud.version>Hoxton.SR1</spring.cloud.version>
|
||||||
<spring.platform.version>Cairo-SR8</spring.platform.version>
|
<spring.platform.version>Cairo-SR8</spring.platform.version>
|
||||||
|
|
||||||
@ -132,7 +132,7 @@
|
|||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>aliyun-repos</id>
|
<id>aliyun-repos</id>
|
||||||
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
|
<url>https://maven.aliyun.com/nexus/content/groups/public/</url>
|
||||||
<snapshots>
|
<snapshots>
|
||||||
<enabled>false</enabled>
|
<enabled>false</enabled>
|
||||||
</snapshots>
|
</snapshots>
|
||||||
@ -142,7 +142,7 @@
|
|||||||
<pluginRepositories>
|
<pluginRepositories>
|
||||||
<pluginRepository>
|
<pluginRepository>
|
||||||
<id>aliyun-plugin</id>
|
<id>aliyun-plugin</id>
|
||||||
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
|
<url>https://maven.aliyun.com/nexus/content/groups/public/</url>
|
||||||
<snapshots>
|
<snapshots>
|
||||||
<enabled>false</enabled>
|
<enabled>false</enabled>
|
||||||
</snapshots>
|
</snapshots>
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
REGISTER=192.168.0.157/blade
|
REGISTER=192.168.0.157/blade
|
||||||
TAG=2.6.0
|
TAG=2.6.1
|
||||||
|
Loading…
Reference in New Issue
Block a user