Compare commits

..

13 Commits

Author SHA1 Message Date
曾文豪
5c0d47a011 publish 2.0.23
All checks were successful
/ local-deploy (push) Successful in 17s
2025-04-05 14:57:09 +08:00
曾文豪
08066f1367 Merge remote-tracking branch 'origin/master' 2025-04-05 14:55:06 +08:00
曾文豪
9e7ed69d37 feat(web): 修改配置备注为配置键 2025-04-05 14:55:00 +08:00
曾文豪
2793b2a634 publish 2.0.22
All checks were successful
/ local-deploy (push) Successful in 21s
2025-03-31 00:29:39 +08:00
曾文豪
9885e640e9 build: 更新代码仓库地址 2025-03-26 23:25:45 +08:00
曾文豪
9b285db5bd publish 2.0.21
All checks were successful
/ local-deploy (push) Successful in 18s
2025-03-24 17:10:33 +08:00
曾文豪
abbfac2f08 publish 2.0.20
All checks were successful
/ local-deploy (push) Successful in 17s
2025-03-21 17:53:13 +08:00
曾文豪
fba88da506 feat(login): 添加自定义 TokenBean 并更新相关逻辑 2025-03-21 17:51:40 +08:00
曾文豪
cb6e1c85b2 publish 2.0.19
All checks were successful
/ local-deploy (push) Successful in 18s
2025-03-20 16:20:40 +08:00
曾文豪
2649070850 build: 更新 ip2region 数据库链接 2025-03-20 16:19:51 +08:00
曾文豪
48a9d46d20 feat(login): 调整默认登录失败次数为0次,不进行校验 2025-03-07 14:16:19 +08:00
曾文豪
f8d7e49290 publish 2.0.18
All checks were successful
/ local-deploy (push) Successful in 19s
2024-12-13 20:20:29 +08:00
曾文豪
2cf88cefa7 publish 2.0.17
All checks were successful
/ local-deploy (push) Successful in 20s
2024-12-08 12:00:48 +08:00
20 changed files with 93 additions and 52 deletions

View File

@@ -50,7 +50,7 @@
<repositories> <repositories>
<repository> <repository>
<id>kepai-repo</id> <id>kepai-repo</id>
<url>http://git.kepai365.com/tiesheng/repository/raw/master</url> <url>https://git.tieshengkeji.com/api/packages/tieshengkeji/maven</url>
</repository> </repository>
</repositories> </repositories>
``` ```

22
pom.xml
View File

@@ -6,7 +6,7 @@
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-parent</artifactId> <artifactId>springboot-parent</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>springboot-parent</name> <name>springboot-parent</name>
<description>杭州铁晟科技有限公司基础依赖</description> <description>杭州铁晟科技有限公司基础依赖</description>
@@ -58,49 +58,49 @@
<dependency> <dependency>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-database</artifactId> <artifactId>springboot-database</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-login</artifactId> <artifactId>springboot-login</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-web</artifactId> <artifactId>springboot-web</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-util</artifactId> <artifactId>springboot-util</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-platform</artifactId> <artifactId>springboot-platform</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-message</artifactId> <artifactId>springboot-message</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-role</artifactId> <artifactId>springboot-role</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-annotation</artifactId> <artifactId>springboot-annotation</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</dependency> </dependency>
<dependency> <dependency>
@@ -120,8 +120,8 @@
<pluginRepositories> <pluginRepositories>
<pluginRepository> <pluginRepository>
<id>kepai-repo-plugin</id> <id>tiesheng-repo-plugin</id>
<url>http://git.kepai365.com/tiesheng/repository/raw/master</url> <url>https://git.tieshengkeji.com/api/packages/tieshengkeji/maven</url>
</pluginRepository> </pluginRepository>
</pluginRepositories> </pluginRepositories>

View File

@@ -6,11 +6,11 @@
<parent> <parent>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-parent</artifactId> <artifactId>springboot-parent</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</parent> </parent>
<artifactId>springboot-ademo</artifactId> <artifactId>springboot-ademo</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
<properties> <properties>
<maven.compiler.source>8</maven.compiler.source> <maven.compiler.source>8</maven.compiler.source>
@@ -46,8 +46,8 @@
<repositories> <repositories>
<repository> <repository>
<id>kepai-repo</id> <id>tiesheng-repo</id>
<url>http://git.kepai365.com/tiesheng/repository/raw/master</url> <url>https://git.tieshengkeji.com/api/packages/tieshengkeji/maven</url>
</repository> </repository>
</repositories> </repositories>

View File

@@ -12,6 +12,7 @@ import com.alibaba.fastjson.JSONObject;
import com.tiesheng.annotation.role.RoleAuthority; import com.tiesheng.annotation.role.RoleAuthority;
import com.tiesheng.annotation.token.TokenIgnore; import com.tiesheng.annotation.token.TokenIgnore;
import com.tiesheng.database.config.DbBackupConfig; import com.tiesheng.database.config.DbBackupConfig;
import com.tiesheng.demo.pojos.CustTokenBean;
import com.tiesheng.demo.pojos.JsonTest; import com.tiesheng.demo.pojos.JsonTest;
import com.tiesheng.demo.pojos.PoiBean; import com.tiesheng.demo.pojos.PoiBean;
import com.tiesheng.platform.config.ding.PlatformDingConfig; import com.tiesheng.platform.config.ding.PlatformDingConfig;
@@ -43,7 +44,6 @@ import java.util.function.Consumer;
*/ */
@RestController @RestController
@RequestMapping("/test") @RequestMapping("/test")
@RoleAuthority(value = "test", group = "test")
public class TestController { public class TestController {
@Autowired @Autowired
@@ -65,7 +65,6 @@ public class TestController {
@RequestMapping("/index") @RequestMapping("/index")
@TokenIgnore
public void index(HttpServletResponse response) { public void index(HttpServletResponse response) {
globalConfig.redirectWithVer("mobile", "/test", response); globalConfig.redirectWithVer("mobile", "/test", response);
} }
@@ -113,8 +112,9 @@ public class TestController {
@GetMapping("/send") @GetMapping("/send")
@TokenIgnore public ApiResp<String> sendMessage(CustTokenBean tokenBean) {
public ApiResp<String> sendMessage() {
tokenBean.test();
// MessageReqResp reqResp = coreMessageService.send(new UserChannel("13567116463", "sms"), // MessageReqResp reqResp = coreMessageService.send(new UserChannel("13567116463", "sms"),
// JSONUtil.createObj().putOpt("action", "sms-visitor-invite")); // JSONUtil.createObj().putOpt("action", "sms-visitor-invite"));

View File

@@ -0,0 +1,12 @@
package com.tiesheng.demo.pojos;
import com.tiesheng.util.pojos.TokenBean;
public class CustTokenBean extends TokenBean {
public void test() {
System.out.println("test: " + getId());
}
}

View File

@@ -6,7 +6,7 @@
<parent> <parent>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-parent</artifactId> <artifactId>springboot-parent</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</parent> </parent>
<artifactId>springboot-annotation</artifactId> <artifactId>springboot-annotation</artifactId>

View File

@@ -6,7 +6,7 @@
<parent> <parent>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-parent</artifactId> <artifactId>springboot-parent</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</parent> </parent>
<artifactId>springboot-database</artifactId> <artifactId>springboot-database</artifactId>

View File

@@ -6,7 +6,7 @@
<parent> <parent>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-parent</artifactId> <artifactId>springboot-parent</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</parent> </parent>
<artifactId>springboot-login</artifactId> <artifactId>springboot-login</artifactId>

View File

@@ -1,5 +1,6 @@
package com.tiesheng.login.config; package com.tiesheng.login.config;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.tiesheng.annotation.token.TokenIgnore; import com.tiesheng.annotation.token.TokenIgnore;
@@ -40,7 +41,7 @@ public class TokenWebMvcConfigurer implements WebMvcConfigurer {
resolvers.add(new HandlerMethodArgumentResolver() { resolvers.add(new HandlerMethodArgumentResolver() {
@Override @Override
public boolean supportsParameter(MethodParameter parameter) { public boolean supportsParameter(MethodParameter parameter) {
return parameter.getParameterType().isAssignableFrom(TokenBean.class); return TokenBean.class.isAssignableFrom(parameter.getParameterType());
} }
@Override @Override
@@ -54,7 +55,9 @@ public class TokenWebMvcConfigurer implements WebMvcConfigurer {
TokenIgnore annotation = method.getAnnotation(TokenIgnore.class); TokenIgnore annotation = method.getAnnotation(TokenIgnore.class);
thrExp = annotation == null; thrExp = annotation == null;
} }
return tsTokenConfig.validToken(header, thrExp);
TokenBean tokenBean = tsTokenConfig.validToken(header, thrExp);
return BeanUtil.copyProperties(tokenBean, parameter.getParameterType());
} }
}); });
} }

View File

@@ -68,7 +68,7 @@ public interface TsLoginConfigurer {
/** /**
* 获取登录失败的次数,默认5次 * 获取登录失败的次数,默认0次不校验
* *
* @return * @return
*/ */

View File

@@ -6,7 +6,7 @@
<parent> <parent>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-parent</artifactId> <artifactId>springboot-parent</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</parent> </parent>
<artifactId>springboot-message</artifactId> <artifactId>springboot-message</artifactId>

View File

@@ -6,7 +6,7 @@
<parent> <parent>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-parent</artifactId> <artifactId>springboot-parent</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</parent> </parent>
<artifactId>springboot-platform</artifactId> <artifactId>springboot-platform</artifactId>

View File

@@ -6,7 +6,7 @@
<parent> <parent>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-parent</artifactId> <artifactId>springboot-parent</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</parent> </parent>
<artifactId>springboot-role</artifactId> <artifactId>springboot-role</artifactId>

View File

@@ -6,7 +6,7 @@
<parent> <parent>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-parent</artifactId> <artifactId>springboot-parent</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</parent> </parent>
<artifactId>springboot-util</artifactId> <artifactId>springboot-util</artifactId>

View File

@@ -16,7 +16,7 @@ import javax.annotation.PostConstruct;
@ConfigurationProperties(prefix = "tiesheng.ip2region") @ConfigurationProperties(prefix = "tiesheng.ip2region")
public class Ip2regionConfig { public class Ip2regionConfig {
private String dbUrl = "http://git.kepai365.com/tiesheng/repository/raw/master/ipdb/ip2region.xdb"; private String dbUrl = "https://git.tieshengkeji.com/tieshengkeji/Ip2region/raw/branch/main/ip2region.xdb";
private String dbPath = System.getProperty("user.dir") + "/runtime/ip2region/ip2region.xdb"; private String dbPath = System.getProperty("user.dir") + "/runtime/ip2region/ip2region.xdb";
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////

View File

@@ -6,7 +6,7 @@
<parent> <parent>
<groupId>com.tiesheng.springboot-parent</groupId> <groupId>com.tiesheng.springboot-parent</groupId>
<artifactId>springboot-parent</artifactId> <artifactId>springboot-parent</artifactId>
<version>2.0.16</version> <version>2.0.23</version>
</parent> </parent>
<artifactId>springboot-web</artifactId> <artifactId>springboot-web</artifactId>

View File

@@ -9,6 +9,7 @@ import com.tiesheng.util.pojos.PageDTO;
import com.tiesheng.web.pojos.dao.CoreConfigSystem; import com.tiesheng.web.pojos.dao.CoreConfigSystem;
import com.tiesheng.web.pojos.dto.config.ConfigSystemDTO; import com.tiesheng.web.pojos.dto.config.ConfigSystemDTO;
import com.tiesheng.web.service.CoreConfigService; import com.tiesheng.web.service.CoreConfigService;
import com.tiesheng.web.service.TieshengWebConfigurer;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -24,6 +25,8 @@ public class ConfigSystemController {
@Autowired @Autowired
CoreConfigService coreConfigService; CoreConfigService coreConfigService;
@Autowired
TieshengWebConfigurer tieshengWebConfigurer;
/** /**
@@ -53,6 +56,7 @@ public class ConfigSystemController {
*/ */
@PostMapping("/system/update") @PostMapping("/system/update")
public ApiResp<String> systemUpdate(@RequestBody ConfigSystemDTO dto) { public ApiResp<String> systemUpdate(@RequestBody ConfigSystemDTO dto) {
tieshengWebConfigurer.configSystemCheck(dto);
coreConfigService.updateConfigSystem(dto); coreConfigService.updateConfigSystem(dto);
return ApiResp.respOK(""); return ApiResp.respOK("");
} }

View File

@@ -22,8 +22,7 @@ public class CoreConfigService extends TsServiceBase<CoreConfigSystemMapper, Cor
CoreConfigEnumMapper coreConfigEnumMapper; CoreConfigEnumMapper coreConfigEnumMapper;
@Resource @Resource
TsCacheService tsCacheService; TsCacheService tsCacheService;
@Autowired
TieshengWebConfigurer tieshengWebConfigurer;
private static final String CONFIG_SYSTEM_PREFIX = "CONFIG:SYSTEM:"; private static final String CONFIG_SYSTEM_PREFIX = "CONFIG:SYSTEM:";
@@ -52,7 +51,7 @@ public class CoreConfigService extends TsServiceBase<CoreConfigSystemMapper, Cor
oneByColumn.setId(configKey); oneByColumn.setId(configKey);
oneByColumn.setConfigKey(configKey); oneByColumn.setConfigKey(configKey);
oneByColumn.setConfigVal(defaultValue); oneByColumn.setConfigVal(defaultValue);
oneByColumn.setRemark(defaultValue); oneByColumn.setRemark(configKey);
oneByColumn.setConfigType(0); oneByColumn.setConfigType(0);
save(oneByColumn); save(oneByColumn);
} }
@@ -69,21 +68,20 @@ public class CoreConfigService extends TsServiceBase<CoreConfigSystemMapper, Cor
* @param dto * @param dto
*/ */
public void updateConfigSystem(ConfigSystemDTO dto) { public void updateConfigSystem(ConfigSystemDTO dto) {
CoreConfigSystem configKey = getOneByColumn("config_key", dto.getConfigKey()); CoreConfigSystem coreConfigSystem = getOneByColumn("config_key", dto.getConfigKey());
if (configKey == null) { if (coreConfigSystem == null) {
throw new ApiException("该配置不存在,请检查"); throw new ApiException("该配置不存在,请检查");
} }
if (configKey.getReadOnly() == 1) { if (coreConfigSystem.getReadOnly() == 1) {
throw new ApiException("该配置只读,不可修改"); throw new ApiException("该配置只读,不可修改");
} }
configKey.setConfigVal(dto.getConfigVal()); coreConfigSystem.setConfigVal(dto.getConfigVal());
configKey.setRemark(dto.getRemark()); coreConfigSystem.setRemark(dto.getRemark());
configKey.setExtra(dto.getExtra()); coreConfigSystem.setExtra(dto.getExtra());
updateById(coreConfigSystem);
tieshengWebConfigurer.configSystemCheck(configKey); tsCacheService.putObj(CONFIG_SYSTEM_PREFIX + coreConfigSystem.getConfigKey(),
updateById(configKey); coreConfigSystem, 10 * 60);
tsCacheService.putObj(CONFIG_SYSTEM_PREFIX + configKey, configKey, 10 * 60);
} }

View File

@@ -2,7 +2,6 @@ package com.tiesheng.web.service;
import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.tiesheng.web.mapper.CoreLogApiMapper; import com.tiesheng.web.mapper.CoreLogApiMapper;
import com.tiesheng.web.pojos.dao.CoreLogApi; import com.tiesheng.web.pojos.dao.CoreLogApi;
@@ -12,6 +11,8 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.io.IOException;
import java.util.Objects;
@Component @Component
public class OkHttpLogInterceptor implements Interceptor { public class OkHttpLogInterceptor implements Interceptor {
@@ -22,11 +23,14 @@ public class OkHttpLogInterceptor implements Interceptor {
@NotNull @NotNull
@Override @Override
public Response intercept(@NotNull Chain chain) { public Response intercept(@NotNull Chain chain) throws IOException {
CoreLogApi logApi = new CoreLogApi();
Request request = chain.request(); Request request = chain.request();
if (Objects.equals(request.header("skipApiLog"), "true")) {
return chain.proceed(request);
}
CoreLogApi logApi = new CoreLogApi();
logApi.setUrl(request.url().toString()); logApi.setUrl(request.url().toString());
logApi.setContent(requestBody2String(request)); logApi.setContent(requestBody2String(request));
@@ -47,10 +51,29 @@ public class OkHttpLogInterceptor implements Interceptor {
} }
} catch (Exception e) { } catch (Exception e) {
JSONObject object = new JSONObject(); JSONObject object = new JSONObject();
object.put("code", -1); object.put("code", 500);
object.put("message", JSON.toJSONString(e)); object.put("message", e.getMessage());
object.put("exception", e); object.put("exception", e);
logApi.setRespBody(object.toJSONString()); logApi.setRespBody(object.toJSONString());
response = new Response.Builder()
// 必须设置请求对象
.request(chain.request())
// 指定协议版本
.protocol(Protocol.HTTP_1_1)
// 设置HTTP状态码
.code(object.getInteger("code"))
// 状态信息
.message(object.getString("message"))
// 设置响应体
.body(ResponseBody.create(MediaType.parse("application/json"), object.toJSONString()))
.headers(new Headers.Builder().build()) // 可选:设置响应头
.build();
} }
ThreadUtil.execute(() -> coreLogApiMapper.insert(logApi)); ThreadUtil.execute(() -> coreLogApiMapper.insert(logApi));

View File

@@ -5,6 +5,7 @@ import com.tiesheng.login.service.TsLoginConfigurer;
import com.tiesheng.util.exception.ApiRespEnum; import com.tiesheng.util.exception.ApiRespEnum;
import com.tiesheng.util.pojos.ApiResp; import com.tiesheng.util.pojos.ApiResp;
import com.tiesheng.web.pojos.dao.CoreConfigSystem; import com.tiesheng.web.pojos.dao.CoreConfigSystem;
import com.tiesheng.web.pojos.dto.config.ConfigSystemDTO;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
/** /**
@@ -58,7 +59,7 @@ public interface TieshengWebConfigurer {
* 系统配置验证 * 系统配置验证
* 如果不符合规则,可以抛出异常 * 如果不符合规则,可以抛出异常
*/ */
default void configSystemCheck(CoreConfigSystem configSystem) { default void configSystemCheck(ConfigSystemDTO dto) {
} }
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////