commit d6982e53a4af266f76a3446eca51e45d22e0c529 Author: 黄昕 Date: Mon Aug 7 17:02:04 2023 +0800 初始化仓库 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..549e00a --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/config/application-local.properties b/config/application-local.properties new file mode 100644 index 0000000..edc6424 --- /dev/null +++ b/config/application-local.properties @@ -0,0 +1,21 @@ +server.port=9276 + +# 多个项目放在nginx下同个端口,通过该配置区分 +server.servlet.context-path=/tunnel + +# mysql 配置 +# 配置数据源 +spring.datasource.url=jdbc:mysql://localhost:3306/tunnel?serverTimezone=Asia/Shanghai&zeroDateTimeBehavior\ + =convertToNull&useUnicode=true +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.username=xajhuang +spring.datasource.password=aaaHuang1! + +#mybatis 配置 +# 下划线转驼峰 将带有下划线的表字段映射为驼峰格式的实体类属性 +#mybatis.configuration.map-underscore-to-camel-case: true +mybatis.mapper-locations=classpath*:mappers/*.xml +mybatis.type-aliases-package=com.cmhi.tunnelservice.pojo.entry +#mybatis.configuration.default-enum-type-handler=com.dispose.common.CommonEnumHandler +#config log +#logging.config= \ No newline at end of file diff --git a/config/application.properties b/config/application.properties new file mode 100644 index 0000000..07f154c --- /dev/null +++ b/config/application.properties @@ -0,0 +1 @@ +spring.profiles.active=local \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..49e68af --- /dev/null +++ b/pom.xml @@ -0,0 +1,107 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 3.1.0 + + + com.cmhi + tunnelService + 0.0.1-SNAPSHOT + tunnelService + tunnelService + + 17 + + + + org.springframework.boot + spring-boot-starter-web + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 3.0.2 + + + mysql + mysql-connector-java + 8.0.33 + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.restdocs + spring-restdocs-mockmvc + test + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-configuration-processor + true + + + org.apache.logging.log4j + log4j-core + 2.20.0 + + + + + + + org.asciidoctor + asciidoctor-maven-plugin + 2.2.1 + + + generate-docs + prepare-package + + process-asciidoc + + + html + book + + + + + + org.springframework.restdocs + spring-restdocs-asciidoctor + ${spring-restdocs.version} + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + + + + + + diff --git a/src/main/java/com/cmhi/tunnelservice/TunnelServiceApplication.java b/src/main/java/com/cmhi/tunnelservice/TunnelServiceApplication.java new file mode 100644 index 0000000..db8ad0a --- /dev/null +++ b/src/main/java/com/cmhi/tunnelservice/TunnelServiceApplication.java @@ -0,0 +1,13 @@ +package com.cmhi.tunnelservice; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class TunnelServiceApplication { + + public static void main(String[] args) { + SpringApplication.run(TunnelServiceApplication.class, args); + } + +} diff --git a/src/main/java/com/cmhi/tunnelservice/controller/AuthUser.java b/src/main/java/com/cmhi/tunnelservice/controller/AuthUser.java new file mode 100644 index 0000000..66435f6 --- /dev/null +++ b/src/main/java/com/cmhi/tunnelservice/controller/AuthUser.java @@ -0,0 +1,81 @@ +package com.cmhi.tunnelservice.controller; + +import com.cmhi.tunnelservice.pojo.entry.BaseProtocolDTO; +import com.cmhi.tunnelservice.pojo.entry.GetUserConfig; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpHeaders; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +@Controller +//@RequestMapping(value = "/auth") +@Slf4j +public class AuthUser { + @GetMapping("third") + @ResponseBody + public String third(String name, Integer age){ + log.info("User " + name + ", Age: " + age); + return "success"; + } + + @PostMapping("/getuserconfig") + @ResponseBody + public String getUserConfig(@RequestBody BaseProtocolDTO mr, + @RequestHeader HttpHeaders headers) { + return """ + { + "ver": 1, + "cryptoType": 0, + "timeStamp": 1688954003, + "code": 0, + "msgContent": { + "scgCtrlAppId": 7, + "scgTunnelAppId": 8, + "cliPrivateKey": "WGAlqvys3O83VmWug6Z8NzUrxGr/PNHSeOVFnKLSe2k=", + "cliPublicKey": "6BWnmkCJqJC5iNoCEZWTxwGNG7qwkxFoVgAk4DoIKCk=", + "cliAddress": "10.10.10.1/32", + "vmConfig": [ + { + "vmId": 1, + "vmName": "Windows10_1", + "svrPublicKey": "8KEaqtWM5U35SR8S3QJriGHPr0VIqvk8A7BEuOjjp1M=", + "vmNetwork": "10.0.4.16/30", + "scgGateway": "101.35.234.160:10010" + }, + { + "vmId": 2, + "vmName": "Windows10_2", + "svrPublicKey": "q3ep8hN2v3VpHbcru+rTmvyBt13iH0DkEsVAyT2LpVo=", + "vmNetwork": "192.168.100.210/24", + "scgGateway": "efc.xajhuang.com:10000" + }, + { + "vmId": 3, + "vmName": "Windows10_3", + "svrPublicKey": "q3ep8hN2v3VpHbcru+rTmvyBt13iH0DkEsVAyT2LpVo=", + "vmNetwork": "172.18.2.152/26", + "scgGateway": "localhost:10000" + } + ] + } + }"""; + } + + @PostMapping("/getserverconfig") + @ResponseBody + public String getServerConfig(@RequestBody BaseProtocolDTO mr, + @RequestHeader HttpHeaders headers) { + return """ + { + "ver": 1, + "cryptoType": 0, + "timeStamp": 1688954003, + "code": 0, + "msgContent": { + "svrListenPort": 10001, + "svrPrivateKey": "2HyQfL2Na76JuI68ozEMK0LA6coV98GjMW6aZG6AnEA=", + "svrAddress": "10.10.10.2/24" + } + }"""; + } +} diff --git a/src/main/java/com/cmhi/tunnelservice/pojo/entry/BaseProtocolDTO.java b/src/main/java/com/cmhi/tunnelservice/pojo/entry/BaseProtocolDTO.java new file mode 100644 index 0000000..bb72e58 --- /dev/null +++ b/src/main/java/com/cmhi/tunnelservice/pojo/entry/BaseProtocolDTO.java @@ -0,0 +1,37 @@ +package com.cmhi.tunnelservice.pojo.entry; + +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * The type Base protocol dto. + * + * @param the type parameter + * @author + */ +@Data +@NoArgsConstructor +@JsonPropertyOrder({"ver", "cryptoType", "timeStamp", "msgContent"}) +public class BaseProtocolDTO { + /** + * 当前协议版本号 + */ + private Integer ver; + + /** + * msgContent字段内容编码格式 + */ + private Integer cryptoType; + + /** + * 当前UTC时间戳(ms) + */ + private Long timeStamp; + + /** + * 协议详细内容 + */ + private T msgContent; +} diff --git a/src/main/java/com/cmhi/tunnelservice/pojo/entry/GetUserConfig.java b/src/main/java/com/cmhi/tunnelservice/pojo/entry/GetUserConfig.java new file mode 100644 index 0000000..c08d420 --- /dev/null +++ b/src/main/java/com/cmhi/tunnelservice/pojo/entry/GetUserConfig.java @@ -0,0 +1,16 @@ +package com.cmhi.tunnelservice.pojo.entry; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@JsonInclude(JsonInclude.Include.NON_NULL) +public class GetUserConfig { + private String userName; + private String token; +} \ No newline at end of file diff --git a/src/main/java/com/cmhi/tunnelservice/pojo/entry/User.java b/src/main/java/com/cmhi/tunnelservice/pojo/entry/User.java new file mode 100644 index 0000000..9fcfa40 --- /dev/null +++ b/src/main/java/com/cmhi/tunnelservice/pojo/entry/User.java @@ -0,0 +1,4 @@ +package com.cmhi.tunnelservice.pojo.entry; + +public class User { +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/src/test/java/com/cmhi/tunnelservice/TunnelServiceApplicationTests.java b/src/test/java/com/cmhi/tunnelservice/TunnelServiceApplicationTests.java new file mode 100644 index 0000000..206697b --- /dev/null +++ b/src/test/java/com/cmhi/tunnelservice/TunnelServiceApplicationTests.java @@ -0,0 +1,13 @@ +package com.cmhi.tunnelservice; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class TunnelServiceApplicationTests { + + @Test + void contextLoads() { + } + +}