Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a8be751e65 | ||
|
|
1b1073eab1 | ||
|
|
56e2a66bdf | ||
|
|
c5654474b0 | ||
|
|
a125c6f907 | ||
|
|
a314351fc9 | ||
|
|
23493afb2f | ||
|
|
e8369320ab | ||
|
|
a19fa65166 | ||
|
|
ea12290f03 | ||
|
|
c6662407a7 | ||
|
|
29e45fff7f | ||
|
|
e7089d9cc5 | ||
|
|
f0493cea77 | ||
|
|
8854225934 | ||
|
|
5ad35cefda | ||
|
|
1921efa27b | ||
|
|
2e9de7ee64 | ||
|
|
e352927396 | ||
|
|
51b26c077d | ||
|
|
2c5f55a876 | ||
|
|
c52f7f5c77 | ||
|
|
7f46d2d371 | ||
|
|
34d8201641 | ||
|
|
92e1c1d9ef | ||
|
|
ee3748c361 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -4,4 +4,4 @@ rebel.xml
|
|||||||
/.idea/
|
/.idea/
|
||||||
*.iml
|
*.iml
|
||||||
/static/
|
/static/
|
||||||
/ipdb/
|
/config/
|
||||||
|
|||||||
@@ -9,9 +9,6 @@ deploy-jar:
|
|||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_TAG
|
- if: $CI_COMMIT_TAG
|
||||||
script:
|
script:
|
||||||
- cd springboot-launcher
|
|
||||||
- mvn clean install
|
|
||||||
- cd ..
|
|
||||||
- mvn clean deploy -Dmaven.test.skip -DaltDeploymentRepository=master::default::file:/usr/local/nginx/html/kepai-repo
|
- mvn clean deploy -Dmaven.test.skip -DaltDeploymentRepository=master::default::file:/usr/local/nginx/html/kepai-repo
|
||||||
- cd /usr/local/nginx/html/kepai-repo
|
- cd /usr/local/nginx/html/kepai-repo
|
||||||
- git checkout master
|
- git checkout master
|
||||||
|
|||||||
54
pom.xml
54
pom.xml
@@ -4,9 +4,9 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<name>springboot-parent</name>
|
<name>springboot-parent</name>
|
||||||
<description>杭州铁晟科技有限公司基础依赖</description>
|
<description>杭州铁晟科技有限公司基础依赖</description>
|
||||||
@@ -28,7 +28,6 @@
|
|||||||
<module>springboot-message</module>
|
<module>springboot-message</module>
|
||||||
<module>springboot-encrypt</module>
|
<module>springboot-encrypt</module>
|
||||||
<module>springboot-annotation</module>
|
<module>springboot-annotation</module>
|
||||||
<module>springboot-launcher</module>
|
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
@@ -56,57 +55,57 @@
|
|||||||
<dependencyManagement>
|
<dependencyManagement>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-db-migration</artifactId>
|
<artifactId>springboot-db-migration</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-login</artifactId>
|
<artifactId>springboot-login</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-web</artifactId>
|
<artifactId>springboot-web</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-util</artifactId>
|
<artifactId>springboot-util</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-platform</artifactId>
|
<artifactId>springboot-platform</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-message</artifactId>
|
<artifactId>springboot-message</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-encrypt</artifactId>
|
<artifactId>springboot-encrypt</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-annotation</artifactId>
|
<artifactId>springboot-annotation</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-poi</artifactId>
|
<artifactId>springboot-poi</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
@@ -128,9 +127,6 @@
|
|||||||
<pluginRepository>
|
<pluginRepository>
|
||||||
<id>kepai-repo-plugin</id>
|
<id>kepai-repo-plugin</id>
|
||||||
<url>http://git.kepai365.com/zeng_wenhao/kepai-repo/raw/master</url>
|
<url>http://git.kepai365.com/zeng_wenhao/kepai-repo/raw/master</url>
|
||||||
<releases>
|
|
||||||
<enabled>true</enabled>
|
|
||||||
</releases>
|
|
||||||
</pluginRepository>
|
</pluginRepository>
|
||||||
</pluginRepositories>
|
</pluginRepositories>
|
||||||
|
|
||||||
@@ -138,13 +134,15 @@
|
|||||||
<pluginManagement>
|
<pluginManagement>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-plugin</groupId>
|
||||||
<artifactId>launcher-maven-plugin</artifactId>
|
<artifactId>tiesheng-maven-plugin</artifactId>
|
||||||
<version>0.0.1</version>
|
<version>0.0.4</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<goals>
|
<goals>
|
||||||
<goal>initScript</goal>
|
<goal>initStartScript</goal>
|
||||||
|
<goal>mysqlComparison</goal>
|
||||||
|
<goal>mysqlDoc</goal>
|
||||||
</goals>
|
</goals>
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-ademo</artifactId>
|
<artifactId>springboot-ademo</artifactId>
|
||||||
@@ -16,11 +16,13 @@
|
|||||||
<maven.compiler.source>8</maven.compiler.source>
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
<maven.compiler.target>8</maven.compiler.target>
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<!-- 该模块不发布到maven仓库 -->
|
||||||
|
<maven.deploy.skip>true</maven.deploy.skip>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-web</artifactId>
|
<artifactId>springboot-web</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
@@ -29,17 +31,14 @@
|
|||||||
<repository>
|
<repository>
|
||||||
<id>kepai-repo</id>
|
<id>kepai-repo</id>
|
||||||
<url>http://git.kepai365.com/zeng_wenhao/kepai-repo/raw/master</url>
|
<url>http://git.kepai365.com/zeng_wenhao/kepai-repo/raw/master</url>
|
||||||
<releases>
|
|
||||||
<enabled>true</enabled>
|
|
||||||
</releases>
|
|
||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-plugin</groupId>
|
||||||
<artifactId>launcher-maven-plugin</artifactId>
|
<artifactId>tiesheng-maven-plugin</artifactId>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package com.tiesheng.demo.controller;
|
package com.tiesheng.demo.controller;
|
||||||
|
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import cn.hutool.log.LogFactory;
|
||||||
import com.tiesheng.annotation.token.TokenIgnore;
|
import com.tiesheng.annotation.token.TokenIgnore;
|
||||||
|
import com.tiesheng.login.config.token.TsTokenConfig;
|
||||||
|
import com.tiesheng.login.config.token.bean.TokenBean;
|
||||||
import com.tiesheng.message.config.aliyun.AliyunSmsConfig;
|
import com.tiesheng.message.config.aliyun.AliyunSmsConfig;
|
||||||
import com.tiesheng.message.pojos.MessageReqResp;
|
import com.tiesheng.message.pojos.MessageReqResp;
|
||||||
import com.tiesheng.util.config.GlobalConfig;
|
import com.tiesheng.util.config.GlobalConfig;
|
||||||
@@ -24,17 +27,24 @@ public class TestController {
|
|||||||
GlobalConfig globalConfig;
|
GlobalConfig globalConfig;
|
||||||
@Autowired
|
@Autowired
|
||||||
AliyunSmsConfig aliyunSmsConfig;
|
AliyunSmsConfig aliyunSmsConfig;
|
||||||
|
@Autowired
|
||||||
|
TsTokenConfig tsTokenConfig;
|
||||||
|
|
||||||
@RequestMapping("/index")
|
@RequestMapping("/index")
|
||||||
@TokenIgnore
|
@TokenIgnore
|
||||||
public ApiResp<String> index() {
|
public ApiResp<String> index() {
|
||||||
|
|
||||||
|
TokenBean tokenBean = new TokenBean("11", "", "fdfd");
|
||||||
|
LogFactory.get().info(tokenBean.toToken());
|
||||||
|
|
||||||
return ApiResp.respOK("hello world");
|
return ApiResp.respOK("hello world");
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/redirect")
|
@RequestMapping("/redirect")
|
||||||
@TokenIgnore
|
@TokenIgnore
|
||||||
public void redirect(HttpServletResponse response) {
|
public void redirect(HttpServletResponse response) {
|
||||||
globalConfig.redirect("mobile", "/test", response);
|
tsTokenConfig.validToken("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2NzYwMDY4NzUsImlkIjoiMSIsImVudmlyb25tZW50VHlwZSI6Im1vYmlsZSIsInNlcnZpY2UiOiJjb250ZXN0LXJlc2VydmUiLCJleHRyYSI6IiJ9.nsfxEFpCNHC7eNCS5DJXdu1VDdnHrTjSfgrozND70Lc", true);
|
||||||
|
// globalConfig.redirect("mobile", "/test", response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -66,7 +76,7 @@ public class TestController {
|
|||||||
@RequestMapping("/uploadPath")
|
@RequestMapping("/uploadPath")
|
||||||
@TokenIgnore
|
@TokenIgnore
|
||||||
public ApiResp<String> uploadPath() {
|
public ApiResp<String> uploadPath() {
|
||||||
FileUploadPath uploadPath = FileUploadPath.get("http://scv6.tmp.kepai365.ltd/upload/2023-01/2b4b6b7b-70d0-4683-859a-f799adc4f04c.xls");
|
FileUploadPath uploadPath = FileUploadPath.file("http://scv6.tmp.kepai365.ltd/upload/2023-01/2b4b6b7b-70d0-4683-859a-f799adc4f04c.xls");
|
||||||
return ApiResp.respOK(uploadPath.getAbsolutePath());
|
return ApiResp.respOK(uploadPath.getAbsolutePath());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
28
springboot-ademo/src/main/resources/application-test.yml
Normal file
28
springboot-ademo/src/main/resources/application-test.yml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
## Spring配置
|
||||||
|
spring:
|
||||||
|
|
||||||
|
## 数据库配置
|
||||||
|
datasource:
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
url: jdbc:mysql://47.96.30.85:3306/com_tiesheng_web?useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&queryTimeout=5400&allowMultiQueries=true&serverTimezone=GMT%2B8
|
||||||
|
username: com_tiesheng_web
|
||||||
|
password: 4Xo$XheGFc
|
||||||
|
|
||||||
|
platform:
|
||||||
|
wxmp:
|
||||||
|
global:
|
||||||
|
app-id: wxa0343fe519824651
|
||||||
|
app-secret: 776f089ba70bcd66455a7c7893f810b9
|
||||||
|
|
||||||
|
tiesheng:
|
||||||
|
token:
|
||||||
|
ignores:
|
||||||
|
"1111":
|
||||||
|
id: "1111"
|
||||||
|
global:
|
||||||
|
version: 2
|
||||||
|
host: http://localhost:8080
|
||||||
|
aliyun:
|
||||||
|
access-key-id: LTAI5tJtbgBCnTY5eS4SmrTf
|
||||||
|
access-key-secret: JIHqpRUFffCHhXaJEVvWN31WcexWqG
|
||||||
|
sign-name: 阿里云短信测试
|
||||||
@@ -1,28 +1,21 @@
|
|||||||
|
server:
|
||||||
|
compression:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
## Spring配置
|
## Spring配置
|
||||||
spring:
|
spring:
|
||||||
|
|
||||||
## 数据库配置
|
servlet:
|
||||||
datasource:
|
multipart:
|
||||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
max-file-size: 20MB
|
||||||
url: jdbc:mysql://47.96.30.85:3306/com_tiesheng_web?useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&queryTimeout=5400&allowMultiQueries=true&serverTimezone=GMT%2B8
|
web:
|
||||||
username: com_tiesheng_web
|
resources:
|
||||||
password: 4Xo$XheGFc
|
static-locations: classpath:/static/,file:static/
|
||||||
|
mvc:
|
||||||
|
pathmatch:
|
||||||
|
matching-strategy: ant_path_matcher
|
||||||
|
|
||||||
platform:
|
## 日志
|
||||||
wxmp:
|
logging:
|
||||||
global:
|
file:
|
||||||
app-id: wxa0343fe519824651
|
name: runtime/logs/tiesheng.log
|
||||||
app-secret: 776f089ba70bcd66455a7c7893f810b9
|
|
||||||
|
|
||||||
tiesheng:
|
|
||||||
token:
|
|
||||||
ignores:
|
|
||||||
"1111":
|
|
||||||
id: "1111"
|
|
||||||
global:
|
|
||||||
version: 2
|
|
||||||
host: http://localhost:8080
|
|
||||||
aliyun:
|
|
||||||
access-key-id: LTAI5tJtbgBCnTY5eS4SmrTf
|
|
||||||
access-key-secret: JIHqpRUFffCHhXaJEVvWN31WcexWqG
|
|
||||||
sign-name: 阿里云短信测试
|
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-annotation</artifactId>
|
<artifactId>springboot-annotation</artifactId>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import java.lang.annotation.*;
|
|||||||
/**
|
/**
|
||||||
* @author hao
|
* @author hao
|
||||||
*/
|
*/
|
||||||
@Target(ElementType.METHOD)
|
@Target({ElementType.METHOD,ElementType.TYPE})
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
public @interface TokenIgnore {
|
public @interface TokenIgnore {
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-db-migration</artifactId>
|
<artifactId>springboot-db-migration</artifactId>
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-util</artifactId>
|
<artifactId>springboot-util</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ public class DbMigrationConfig {
|
|||||||
|
|
||||||
private String table = "core_config_db";
|
private String table = "core_config_db";
|
||||||
private List<String> locations = CollUtil.newArrayList("classpath*:db/migration/*.sql");
|
private List<String> locations = CollUtil.newArrayList("classpath*:db/migration/*.sql");
|
||||||
private String ignoreSqls = "drop,delete";
|
private String ignoreSqls = "drop table,delete from";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查数据库是否存在
|
* 检查数据库是否存在
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ public class DbMigrationInitializer implements ServletContextInitializer {
|
|||||||
if (StrUtil.isEmpty(sql)) {
|
if (StrUtil.isEmpty(sql)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (StrUtil.startWithAnyIgnoreCase(sql, StrUtil.splitToArray(dbMigrationConfig.getIgnoreSqls(), ","))) {
|
if (StrUtil.containsAnyIgnoreCase(sql, StrUtil.splitToArray(dbMigrationConfig.getIgnoreSqls(), ","))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-encrypt</artifactId>
|
<artifactId>springboot-encrypt</artifactId>
|
||||||
@@ -31,12 +31,12 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-util</artifactId>
|
<artifactId>springboot-util</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-annotation</artifactId>
|
<artifactId>springboot-annotation</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|||||||
@@ -1,32 +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">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
|
|
||||||
<groupId>com.tiesheng</groupId>
|
|
||||||
<artifactId>launcher-maven-plugin</artifactId>
|
|
||||||
<packaging>maven-plugin</packaging>
|
|
||||||
<version>0.0.1</version>
|
|
||||||
|
|
||||||
<properties>
|
|
||||||
<maven.compiler.source>8</maven.compiler.source>
|
|
||||||
<maven.compiler.target>8</maven.compiler.target>
|
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.maven</groupId>
|
|
||||||
<artifactId>maven-plugin-api</artifactId>
|
|
||||||
<version>3.5.2</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.maven.plugin-tools</groupId>
|
|
||||||
<artifactId>maven-plugin-annotations</artifactId>
|
|
||||||
<version>3.5.2</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
</project>
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
package com.tiesheng.launcher;
|
|
||||||
|
|
||||||
|
|
||||||
import org.apache.maven.plugin.AbstractMojo;
|
|
||||||
import org.apache.maven.plugin.MojoExecutionException;
|
|
||||||
import org.apache.maven.plugins.annotations.LifecyclePhase;
|
|
||||||
import org.apache.maven.plugins.annotations.Mojo;
|
|
||||||
import org.apache.maven.plugins.annotations.Parameter;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 指定调用本类execute()方法的目标
|
|
||||||
**/
|
|
||||||
@Mojo(name = "initScript", defaultPhase = LifecyclePhase.PREPARE_PACKAGE)
|
|
||||||
public class CopyLauncherScriptMojo extends AbstractMojo {
|
|
||||||
|
|
||||||
@Parameter(defaultValue = "${basedir}/target", required = true)
|
|
||||||
private File outputDirectory;
|
|
||||||
|
|
||||||
public void setOutputDirectory(File outputDirectory) {
|
|
||||||
this.outputDirectory = outputDirectory;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws MojoExecutionException {
|
|
||||||
try {
|
|
||||||
copy("launchScript");
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new MojoExecutionException("copy launchScript error!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 复制脚本
|
|
||||||
*
|
|
||||||
* @param filename
|
|
||||||
* @throws IOException
|
|
||||||
*/
|
|
||||||
private void copy(String filename) throws IOException {
|
|
||||||
InputStream inputStream = getClass().getResourceAsStream("/" + filename);
|
|
||||||
BufferedWriter writer = null;
|
|
||||||
try {
|
|
||||||
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
|
|
||||||
File target = new File(outputDirectory + "/" + filename);
|
|
||||||
target.setExecutable(true, false);
|
|
||||||
target.setWritable(true, false);
|
|
||||||
target.setReadable(true, false);
|
|
||||||
writer = new BufferedWriter(new FileWriter(target));
|
|
||||||
while (true) {
|
|
||||||
String line = reader.readLine();
|
|
||||||
if (line == null) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
writer.write(line);
|
|
||||||
writer.newLine();
|
|
||||||
}
|
|
||||||
writer.flush();
|
|
||||||
} finally {
|
|
||||||
if (inputStream != null) {
|
|
||||||
inputStream.close();
|
|
||||||
}
|
|
||||||
if (writer != null) {
|
|
||||||
writer.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,256 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# . ____ _ __ _ _
|
|
||||||
# /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
|
|
||||||
# ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
|
|
||||||
# \\/ ___)| |_)| | | | | || (_| | ) ) ) )
|
|
||||||
# ' |____| .__|_| |_|_| |_\__, | / / / /
|
|
||||||
# =========|_|==============|___/=/_/_/_/
|
|
||||||
# :: Spring Boot Startup Script ::
|
|
||||||
#
|
|
||||||
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: {{initInfoProvides:spring-boot-application}}
|
|
||||||
# Required-Start: {{initInfoRequiredStart:$remote_fs $syslog $network}}
|
|
||||||
# Required-Stop: {{initInfoRequiredStop:$remote_fs $syslog $network}}
|
|
||||||
# Default-Start: {{initInfoDefaultStart:2 3 4 5}}
|
|
||||||
# Default-Stop: {{initInfoDefaultStop:0 1 6}}
|
|
||||||
# Short-Description: {{initInfoShortDescription:Spring Boot Application}}
|
|
||||||
# Description: {{initInfoDescription:Spring Boot Application}}
|
|
||||||
# chkconfig: {{initInfoChkconfig:2345 99 01}}
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
[[ -n "$DEBUG" ]] && set -x
|
|
||||||
|
|
||||||
# Initialize variables that cannot be provided by a .conf file
|
|
||||||
WORKING_DIR="$(pwd)"
|
|
||||||
# shellcheck disable=SC2153
|
|
||||||
[[ -n "$JARFILE" ]] && jarfile="$JARFILE"
|
|
||||||
[[ -n "$APP_NAME" ]] && identity="$APP_NAME"
|
|
||||||
|
|
||||||
# Follow symlinks to find the real jar and detect init.d script
|
|
||||||
cd "$(dirname "$0")" || exit 1
|
|
||||||
[[ -z "$jarfile" ]] && jarfile=$(pwd)/$(basename "$0")
|
|
||||||
while [[ -L "$jarfile" ]]; do
|
|
||||||
[[ "$jarfile" =~ init\.d ]] && init_script=$(basename "$jarfile")
|
|
||||||
jarfile=$(readlink "$jarfile")
|
|
||||||
cd "$(dirname "$jarfile")" || exit 1
|
|
||||||
jarfile=$(pwd)/$(basename "$jarfile")
|
|
||||||
done
|
|
||||||
jarfolder="$( (cd "$(dirname "$jarfile")" && pwd -P) )"
|
|
||||||
cd "$WORKING_DIR" || exit 1
|
|
||||||
|
|
||||||
# Source any config file
|
|
||||||
configfile="$(basename "${jarfile%.*}.conf")"
|
|
||||||
|
|
||||||
# Initialize CONF_FOLDER location defaulting to jarfolder
|
|
||||||
[[ -z "$CONF_FOLDER" ]] && CONF_FOLDER="{{confFolder:${jarfolder}}}"
|
|
||||||
|
|
||||||
# shellcheck source=/dev/null
|
|
||||||
[[ -r "${CONF_FOLDER}/${configfile}" ]] && source "${CONF_FOLDER}/${configfile}"
|
|
||||||
|
|
||||||
# Initialize PID/LOG locations if they weren't provided by the config file
|
|
||||||
[[ -z "$PID_FOLDER" ]] && PID_FOLDER="{{pidFolder:/var/run}}"
|
|
||||||
[[ -z "$LOG_FOLDER" ]] && LOG_FOLDER="{{logFolder:/var/log}}"
|
|
||||||
! [[ "$PID_FOLDER" == /* ]] && PID_FOLDER="$(dirname "$jarfile")"/"$PID_FOLDER"
|
|
||||||
! [[ "$LOG_FOLDER" == /* ]] && LOG_FOLDER="$(dirname "$jarfile")"/"$LOG_FOLDER"
|
|
||||||
! [[ -x "$PID_FOLDER" ]] && PID_FOLDER="/tmp"
|
|
||||||
! [[ -x "$LOG_FOLDER" ]] && LOG_FOLDER="/tmp"
|
|
||||||
|
|
||||||
# Set up defaults
|
|
||||||
[[ -z "$MODE" ]] && MODE="{{mode:auto}}" # modes are "auto", "service" or "run"
|
|
||||||
[[ -z "$USE_START_STOP_DAEMON" ]] && USE_START_STOP_DAEMON="{{useStartStopDaemon:true}}"
|
|
||||||
|
|
||||||
# Create an identity for log/pid files
|
|
||||||
if [[ -z "$identity" ]]; then
|
|
||||||
if [[ -n "$init_script" ]]; then
|
|
||||||
identity="${init_script}"
|
|
||||||
else
|
|
||||||
identity=$(basename "${jarfile%.*}")_${jarfolder//\//}
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Initialize log file name if not provided by the config file
|
|
||||||
[[ -z "$LOG_FILENAME" ]] && LOG_FILENAME="{{logFilename:${identity}.log}}"
|
|
||||||
|
|
||||||
# Initialize stop wait time if not provided by the config file
|
|
||||||
[[ -z "$STOP_WAIT_TIME" ]] && STOP_WAIT_TIME="{{stopWaitTime:60}}"
|
|
||||||
|
|
||||||
# ANSI Colors
|
|
||||||
echoRed() { echo $'\e[0;31m'"$1"$'\e[0m'; }
|
|
||||||
echoGreen() { echo $'\e[0;32m'"$1"$'\e[0m'; }
|
|
||||||
echoYellow() { echo $'\e[0;33m'"$1"$'\e[0m'; }
|
|
||||||
|
|
||||||
# Utility functions
|
|
||||||
checkPermissions() {
|
|
||||||
touch "$pid_file" &> /dev/null || { echoRed "Operation not permitted (cannot access pid file)"; return 4; }
|
|
||||||
touch "$log_file" &> /dev/null || { echoRed "Operation not permitted (cannot access log file)"; return 4; }
|
|
||||||
}
|
|
||||||
|
|
||||||
isRunning() {
|
|
||||||
ps -p "$1" | grep -v "PID" &> /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
await_file() {
|
|
||||||
end=$(date +%s)
|
|
||||||
let "end+=10"
|
|
||||||
while [[ ! -s "$1" ]]
|
|
||||||
do
|
|
||||||
now=$(date +%s)
|
|
||||||
if [[ $now -ge $end ]]; then
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# Determine the script mode
|
|
||||||
action="config"
|
|
||||||
if [[ "$MODE" == "auto" && -n "$init_script" ]] || [[ "$MODE" == "service" ]]; then
|
|
||||||
action="$1"
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Build the pid and log filenames
|
|
||||||
PID_FOLDER="$PID_FOLDER/${identity}"
|
|
||||||
pid_file="$PID_FOLDER/{{pidFilename:${identity}.pid}}"
|
|
||||||
log_file="$LOG_FOLDER/$LOG_FILENAME"
|
|
||||||
|
|
||||||
# Determine the user to run as if we are root
|
|
||||||
# shellcheck disable=SC2012
|
|
||||||
[[ $(id -u) == "0" ]] && run_user=$(ls -ld "$jarfile" | awk '{print $3}')
|
|
||||||
|
|
||||||
# Find Java
|
|
||||||
if [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/java" ]]; then
|
|
||||||
javaexe="$JAVA_HOME/bin/java"
|
|
||||||
elif type -p java > /dev/null 2>&1; then
|
|
||||||
javaexe=$(type -p java)
|
|
||||||
elif [[ -x "/usr/bin/java" ]]; then
|
|
||||||
javaexe="/usr/bin/java"
|
|
||||||
else
|
|
||||||
echo "Unable to find Java"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
arguments=(-Dsun.misc.URLClassPath.disableJarChecking=true $JAVA_OPTS -jar "$jarfile" $RUN_ARGS "$@")
|
|
||||||
|
|
||||||
# Action functions
|
|
||||||
start() {
|
|
||||||
if [[ -f "$pid_file" ]]; then
|
|
||||||
pid=$(cat "$pid_file")
|
|
||||||
isRunning "$pid" && { echoYellow "Already running [$pid]"; return 0; }
|
|
||||||
fi
|
|
||||||
do_start "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
do_start() {
|
|
||||||
working_dir=$(dirname "$jarfile")
|
|
||||||
pushd "$working_dir" > /dev/null
|
|
||||||
mkdir -p "$PID_FOLDER" &> /dev/null
|
|
||||||
if [[ -n "$run_user" ]]; then
|
|
||||||
checkPermissions || return $?
|
|
||||||
chown "$run_user" "$PID_FOLDER"
|
|
||||||
chown "$run_user" "$pid_file"
|
|
||||||
chown "$run_user" "$log_file"
|
|
||||||
if [ $USE_START_STOP_DAEMON = true ] && type start-stop-daemon > /dev/null 2>&1; then
|
|
||||||
start-stop-daemon --start --quiet \
|
|
||||||
--chuid "$run_user" \
|
|
||||||
--name "$identity" \
|
|
||||||
--make-pidfile --pidfile "$pid_file" \
|
|
||||||
--background --no-close \
|
|
||||||
--startas "$javaexe" \
|
|
||||||
--chdir "$working_dir" \
|
|
||||||
-- "${arguments[@]}" \
|
|
||||||
>> "$log_file" 2>&1
|
|
||||||
await_file "$pid_file"
|
|
||||||
else
|
|
||||||
su -s /bin/sh -c "$javaexe $(printf "\"%s\" " "${arguments[@]}") >> \"$log_file\" 2>&1 & echo \$!" "$run_user" > "$pid_file"
|
|
||||||
fi
|
|
||||||
pid=$(cat "$pid_file")
|
|
||||||
else
|
|
||||||
checkPermissions || return $?
|
|
||||||
"$javaexe" "${arguments[@]}" >> "$log_file" 2>&1 &
|
|
||||||
pid=$!
|
|
||||||
disown $pid
|
|
||||||
echo "$pid" > "$pid_file"
|
|
||||||
fi
|
|
||||||
[[ -z $pid ]] && { echoRed "Failed to start"; return 1; }
|
|
||||||
echoGreen "Started [$pid]"
|
|
||||||
}
|
|
||||||
|
|
||||||
stop() {
|
|
||||||
working_dir=$(dirname "$jarfile")
|
|
||||||
pushd "$working_dir" > /dev/null
|
|
||||||
[[ -f $pid_file ]] || { echoYellow "Not running (pidfile not found)"; return 0; }
|
|
||||||
pid=$(cat "$pid_file")
|
|
||||||
isRunning "$pid" || { echoYellow "Not running (process ${pid}). Removing stale pid file."; rm -f "$pid_file"; return 0; }
|
|
||||||
do_stop "$pid" "$pid_file"
|
|
||||||
}
|
|
||||||
|
|
||||||
do_stop() {
|
|
||||||
kill "$1" &> /dev/null || { echoRed "Unable to kill process $1"; return 1; }
|
|
||||||
for i in $(seq 1 $STOP_WAIT_TIME); do
|
|
||||||
isRunning "$1" || { echoGreen "Stopped [$1]"; rm -f "$2"; return 0; }
|
|
||||||
[[ $i -eq STOP_WAIT_TIME/2 ]] && kill "$1" &> /dev/null
|
|
||||||
sleep 1
|
|
||||||
done
|
|
||||||
echoRed "Unable to kill process $1";
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
restart() {
|
|
||||||
stop && start
|
|
||||||
}
|
|
||||||
|
|
||||||
status() {
|
|
||||||
working_dir=$(dirname "$jarfile")
|
|
||||||
pushd "$working_dir" > /dev/null
|
|
||||||
[[ -f "$pid_file" ]] || { echoRed "Not running"; return 3; }
|
|
||||||
pid=$(cat "$pid_file")
|
|
||||||
isRunning "$pid" || { echoRed "Not running (process ${pid} not found)"; return 1; }
|
|
||||||
echoGreen "Running [$pid]"
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
run() {
|
|
||||||
pushd "$(dirname "$jarfile")" > /dev/null
|
|
||||||
"$javaexe" "${arguments[@]}"
|
|
||||||
result=$?
|
|
||||||
popd > /dev/null
|
|
||||||
return "$result"
|
|
||||||
}
|
|
||||||
|
|
||||||
config() {
|
|
||||||
|
|
||||||
## 设置自启动
|
|
||||||
ln -s $jarfile /etc/init.d/$1
|
|
||||||
chkconfig --add $1
|
|
||||||
|
|
||||||
## 生成配置文件
|
|
||||||
working_dir=$(dirname "$jarfile")
|
|
||||||
conf_file="$working_dir/$configfile"
|
|
||||||
echo "LOG_FOLDER=/dev" > $conf_file
|
|
||||||
echo "LOG_FILENAME=null" >> $conf_file
|
|
||||||
echo "RUN_ARGS='--server.port=$2 --spring.profiles.active=$3'" >> $conf_file
|
|
||||||
echo "JAVA_OPTS='-Dfile.encoding=utf-8'" >> $conf_file
|
|
||||||
}
|
|
||||||
|
|
||||||
# Call the appropriate action function
|
|
||||||
case "$action" in
|
|
||||||
start)
|
|
||||||
start "$@"; exit $?;;
|
|
||||||
stop)
|
|
||||||
stop "$@"; exit $?;;
|
|
||||||
restart)
|
|
||||||
restart "$@"; exit $?;;
|
|
||||||
status)
|
|
||||||
status "$@"; exit $?;;
|
|
||||||
run)
|
|
||||||
run "$@"; exit $?;;
|
|
||||||
config)
|
|
||||||
config "$1" "$2" "$3" ; exit $?;;
|
|
||||||
*)
|
|
||||||
echo "Usage: $0 {start|stop|restart|status|run|config}"; exit 1;
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
@@ -4,9 +4,9 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-login</artifactId>
|
<artifactId>springboot-login</artifactId>
|
||||||
@@ -27,12 +27,12 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-annotation</artifactId>
|
<artifactId>springboot-annotation</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-platform</artifactId>
|
<artifactId>springboot-platform</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|||||||
@@ -46,6 +46,12 @@ public class TsTokenAspect {
|
|||||||
@Before("methodArgs()")
|
@Before("methodArgs()")
|
||||||
public void before(JoinPoint joinPoint) {
|
public void before(JoinPoint joinPoint) {
|
||||||
|
|
||||||
|
Object aThis = joinPoint.getTarget();
|
||||||
|
TokenIgnore annotation = aThis.getClass().getAnnotation(TokenIgnore.class);
|
||||||
|
if (annotation != null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// 过滤不要需要验证的接口
|
// 过滤不要需要验证的接口
|
||||||
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
|
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
|
||||||
Method method = signature.getMethod();
|
Method method = signature.getMethod();
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
package com.tiesheng.login.config.token;
|
package com.tiesheng.login.config.token;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.extra.servlet.ServletUtil;
|
import cn.hutool.extra.servlet.ServletUtil;
|
||||||
import cn.hutool.extra.spring.SpringUtil;
|
import cn.hutool.extra.spring.SpringUtil;
|
||||||
import cn.hutool.jwt.JWT;
|
import cn.hutool.jwt.JWT;
|
||||||
|
import cn.hutool.jwt.JWTValidator;
|
||||||
import com.tiesheng.login.config.token.bean.TokenBean;
|
import com.tiesheng.login.config.token.bean.TokenBean;
|
||||||
import com.tiesheng.util.ServletKit;
|
import com.tiesheng.util.ServletKit;
|
||||||
import com.tiesheng.util.exception.ApiException;
|
import com.tiesheng.util.exception.ApiException;
|
||||||
@@ -66,10 +68,21 @@ public class TsTokenConfig {
|
|||||||
/**
|
/**
|
||||||
* 验证token
|
* 验证token
|
||||||
*
|
*
|
||||||
|
* @param thrExp
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public TokenBean validToken(boolean thrExp) {
|
public TokenBean validToken(boolean thrExp) {
|
||||||
String token = ServletUtil.getHeader(ServletKit.getRequest(), "token", "utf-8");
|
String token = ServletUtil.getHeader(ServletKit.getRequest(), "token", "utf-8");
|
||||||
|
return validToken(token, thrExp);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证token
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public TokenBean validToken(String token, boolean thrExp) {
|
||||||
TokenBean tokenBean = isIgnored(token);
|
TokenBean tokenBean = isIgnored(token);
|
||||||
if (tokenBean != null) {
|
if (tokenBean != null) {
|
||||||
return tokenBean;
|
return tokenBean;
|
||||||
@@ -77,15 +90,11 @@ public class TsTokenConfig {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
JWT decode = JWT.of(token);
|
JWT decode = JWT.of(token);
|
||||||
|
JWTValidator.of(decode).validateDate();
|
||||||
String id = decode.getPayload("id").toString();
|
String id = decode.getPayload("id").toString();
|
||||||
String environmentType = decode.getPayload("environmentType").toString();
|
String environmentType = decode.getPayload("environmentType").toString();
|
||||||
String service = decode.getPayload("service").toString();
|
String service = decode.getPayload("service").toString();
|
||||||
String extra = decode.getPayload("extra").toString();
|
String extra = decode.getPayload("extra").toString();
|
||||||
Long expireTime = decode.getPayloads().getLong("time");
|
|
||||||
if (expireTime != null && expireTime < System.currentTimeMillis()) {
|
|
||||||
throw new ApiException("登录过期,请重新登陆");
|
|
||||||
}
|
|
||||||
|
|
||||||
tokenBean = new TokenBean(id, environmentType, service);
|
tokenBean = new TokenBean(id, environmentType, service);
|
||||||
tokenBean.setExtra(extra);
|
tokenBean.setExtra(extra);
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.tiesheng.login.config.token.bean;
|
package com.tiesheng.login.config.token.bean;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.extra.spring.SpringUtil;
|
import cn.hutool.extra.spring.SpringUtil;
|
||||||
import cn.hutool.jwt.JWT;
|
import cn.hutool.jwt.JWT;
|
||||||
import com.tiesheng.login.config.token.TsTokenConfig;
|
import com.tiesheng.login.config.token.TsTokenConfig;
|
||||||
@@ -31,11 +32,11 @@ public class TokenBean {
|
|||||||
public String toToken() {
|
public String toToken() {
|
||||||
TsTokenConfig tsTokenConfig = SpringUtil.getBean(TsTokenConfig.class);
|
TsTokenConfig tsTokenConfig = SpringUtil.getBean(TsTokenConfig.class);
|
||||||
return JWT.create()
|
return JWT.create()
|
||||||
|
.setExpiresAt(DateUtil.offsetHour(DateUtil.date(), tsTokenConfig.getExpireHours()))
|
||||||
.setPayload("id", getId())
|
.setPayload("id", getId())
|
||||||
.setPayload("environmentType", getEnvironmentType())
|
.setPayload("environmentType", getEnvironmentType())
|
||||||
.setPayload("service", getService())
|
.setPayload("service", getService())
|
||||||
.setPayload("extra", getExtra())
|
.setPayload("extra", getExtra())
|
||||||
.setPayload("time", System.currentTimeMillis() + tsTokenConfig.getExpireHours() * 1000 * 60 * 60)
|
|
||||||
.setKey(tsTokenConfig.getEncryptKey().getBytes())
|
.setKey(tsTokenConfig.getEncryptKey().getBytes())
|
||||||
.sign();
|
.sign();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-message</artifactId>
|
<artifactId>springboot-message</artifactId>
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-platform</artifactId>
|
<artifactId>springboot-platform</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-platform</artifactId>
|
<artifactId>springboot-platform</artifactId>
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-util</artifactId>
|
<artifactId>springboot-util</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-poi</artifactId>
|
<artifactId>springboot-poi</artifactId>
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-util</artifactId>
|
<artifactId>springboot-util</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-util</artifactId>
|
<artifactId>springboot-util</artifactId>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import java.io.RandomAccessFile;
|
|||||||
public class Ip2regionConfig {
|
public class Ip2regionConfig {
|
||||||
|
|
||||||
private String dbUrl = "http://git.kepai365.com/zeng_wenhao/kepai-repo/raw/master/ipdb/ip2region.db";
|
private String dbUrl = "http://git.kepai365.com/zeng_wenhao/kepai-repo/raw/master/ipdb/ip2region.db";
|
||||||
private String dbPath = System.getProperty("user.dir") + "/ipdb/ip2region.db";
|
private String dbPath = System.getProperty("user.dir") + "/runtime/ip2region.db";
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// 逻辑方法
|
// 逻辑方法
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.tiesheng.util.pojos;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.io.FileUtil;
|
import cn.hutool.core.io.FileUtil;
|
||||||
|
import cn.hutool.core.util.CharUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.http.HttpUtil;
|
import cn.hutool.http.HttpUtil;
|
||||||
@@ -29,19 +30,26 @@ public class FileUploadPath {
|
|||||||
* @param fileName
|
* @param fileName
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static FileUploadPath get(String fileName) {
|
public static FileUploadPath file(String fileName) {
|
||||||
|
|
||||||
// 下载文件
|
// 下载文件
|
||||||
fileName = downloadFile(fileName);
|
fileName = fileDownload(fileName);
|
||||||
|
|
||||||
FileUploadPath pathBean = new FileUploadPath();
|
FileUploadPath pathBean = new FileUploadPath();
|
||||||
|
|
||||||
String tempPath = fileName;
|
String tempPath = fileName;
|
||||||
|
if (!StrUtil.startWith(tempPath, CharUtil.SLASH)) {
|
||||||
|
tempPath = CharUtil.SLASH + tempPath;
|
||||||
|
}
|
||||||
if (!StrUtil.startWith(tempPath, UPLOAD_FOLDER)) {
|
if (!StrUtil.startWith(tempPath, UPLOAD_FOLDER)) {
|
||||||
tempPath = UPLOAD_FOLDER + DateUtil.format(DateUtil.date(), "yyyy-MM") + "/" + fileName;
|
tempPath = UPLOAD_FOLDER + DateUtil.format(DateUtil.date(), "yyyy-MM") + CharUtil.SLASH + fileName;
|
||||||
}
|
}
|
||||||
pathBean.setHttpPath(tempPath);
|
pathBean.setHttpPath(tempPath);
|
||||||
pathBean.setAbsolutePath(String.format("%s/static%s", System.getProperty("user.dir"), tempPath));
|
|
||||||
|
String tempAbs = String.format("%s/static%s", System.getProperty("user.dir"), tempPath);
|
||||||
|
tempAbs = FileUtil.normalize(tempAbs);
|
||||||
|
pathBean.setAbsolutePath(tempAbs);
|
||||||
|
|
||||||
FileUtil.mkParentDirs(pathBean.getAbsolutePath());
|
FileUtil.mkParentDirs(pathBean.getAbsolutePath());
|
||||||
|
|
||||||
return pathBean;
|
return pathBean;
|
||||||
@@ -51,40 +59,33 @@ public class FileUploadPath {
|
|||||||
/**
|
/**
|
||||||
* 下载http文件
|
* 下载http文件
|
||||||
*
|
*
|
||||||
* @param fileName
|
* @param httpUrl
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static String downloadFile(String fileName) {
|
public static String fileDownload(String httpUrl) {
|
||||||
if (!StrUtil.startWith(fileName, "http")) {
|
if (!StrUtil.startWith(httpUrl, "http")) {
|
||||||
return fileName;
|
return httpUrl;
|
||||||
}
|
}
|
||||||
String newFileName = UPLOAD_FOLDER + StrUtil.subAfter(fileName, UPLOAD_FOLDER, true);
|
String newFileName = UPLOAD_FOLDER + StrUtil.subAfter(httpUrl, UPLOAD_FOLDER, true);
|
||||||
FileUploadPath uploadPath = get(newFileName);
|
FileUploadPath uploadPath = file(newFileName);
|
||||||
if (!FileUtil.exist(uploadPath.getAbsolutePath())) {
|
if (!FileUtil.exist(uploadPath.getAbsolutePath())) {
|
||||||
HttpUtil.downloadFile(fileName, uploadPath.getAbsolutePath());
|
HttpUtil.downloadFile(httpUrl, uploadPath.getAbsolutePath());
|
||||||
}
|
}
|
||||||
|
|
||||||
return uploadPath.getHttpPath();
|
return uploadPath.getHttpPath();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 随机生成一个文件路径
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public static FileUploadPath random() {
|
|
||||||
return get(IdUtil.simpleUUID());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 随机生成一个文件路径
|
* 随机生成一个文件路径
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static FileUploadPath random(String fileExt) {
|
public static FileUploadPath random(String fileExt) {
|
||||||
return get(IdUtil.simpleUUID() + "." + fileExt);
|
String fileName = IdUtil.simpleUUID();
|
||||||
|
if (!StrUtil.isEmpty(fileExt)) {
|
||||||
|
fileName = fileName + "." + fileExt;
|
||||||
|
}
|
||||||
|
return file(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -95,20 +96,9 @@ public class FileUploadPath {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static FileUploadPath folder(String folder) {
|
public static FileUploadPath folder(String folder) {
|
||||||
FileUploadPath pathBean = new FileUploadPath();
|
FileUploadPath file = file(folder);
|
||||||
|
FileUtil.mkdir(file.getAbsolutePath());
|
||||||
String tempFolder = folder;
|
return file;
|
||||||
if (!StrUtil.startWith(tempFolder, UPLOAD_FOLDER)) {
|
|
||||||
tempFolder = UPLOAD_FOLDER + tempFolder;
|
|
||||||
}
|
|
||||||
if (!StrUtil.endWith(folder, "/")) {
|
|
||||||
tempFolder = tempFolder + "/";
|
|
||||||
}
|
|
||||||
pathBean.setHttpPath(tempFolder);
|
|
||||||
pathBean.setAbsolutePath(String.format("%s/static%s", System.getProperty("user.dir"), tempFolder));
|
|
||||||
FileUtil.mkParentDirs(pathBean.getAbsolutePath());
|
|
||||||
|
|
||||||
return pathBean;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-parent</artifactId>
|
<artifactId>springboot-parent</artifactId>
|
||||||
<version>0.2.3</version>
|
<version>0.5.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-web</artifactId>
|
<artifactId>springboot-web</artifactId>
|
||||||
@@ -58,32 +58,32 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-util</artifactId>
|
<artifactId>springboot-util</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-db-migration</artifactId>
|
<artifactId>springboot-db-migration</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-poi</artifactId>
|
<artifactId>springboot-poi</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-annotation</artifactId>
|
<artifactId>springboot-annotation</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-login</artifactId>
|
<artifactId>springboot-login</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.tiesheng</groupId>
|
<groupId>com.tiesheng.springboot-parent</groupId>
|
||||||
<artifactId>springboot-message</artifactId>
|
<artifactId>springboot-message</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
server:
|
|
||||||
compression:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
## Spring配置
|
|
||||||
spring:
|
|
||||||
|
|
||||||
servlet:
|
|
||||||
multipart:
|
|
||||||
max-file-size: 20MB
|
|
||||||
web:
|
|
||||||
resources:
|
|
||||||
static-locations: classpath:/static/,file:static/
|
|
||||||
mvc:
|
|
||||||
pathmatch:
|
|
||||||
matching-strategy: ant_path_matcher
|
|
||||||
|
|
||||||
## 日志
|
|
||||||
logging:
|
|
||||||
file:
|
|
||||||
name: logs/tiesheng.log
|
|
||||||
Reference in New Issue
Block a user