Compare commits
24 Commits
operation-
...
2.0.27-sco
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
adbc4cacbb | ||
|
|
011f6c58ac | ||
|
|
bd70fdc498 | ||
|
|
ceef7180f7 | ||
|
|
2d8208e4dc | ||
|
|
c4ba637de7 | ||
|
|
7b0b9e0925 | ||
|
|
463ddf1b1e | ||
|
|
6fdc69fc2d | ||
|
|
fde73e57b9 | ||
|
|
8a517b09fd | ||
|
|
217d044940 | ||
|
|
9ecf58d75e | ||
|
|
5c0d47a011 | ||
|
|
08066f1367 | ||
|
|
9e7ed69d37 | ||
|
|
2793b2a634 | ||
|
|
9885e640e9 | ||
|
|
9b285db5bd | ||
|
|
abbfac2f08 | ||
|
|
fba88da506 | ||
|
|
cb6e1c85b2 | ||
|
|
2649070850 | ||
|
|
48a9d46d20 |
@@ -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
22
pom.xml
@@ -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.18</version>
|
<version>2.0.27-scope-0.2-test</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.18</version>
|
<version>2.0.27-scope-0.2-test</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.18</version>
|
<version>2.0.27-scope-0.2-test</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.18</version>
|
<version>2.0.27-scope-0.2-test</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.18</version>
|
<version>2.0.27-scope-0.2-test</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.18</version>
|
<version>2.0.27-scope-0.2-test</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.18</version>
|
<version>2.0.27-scope-0.2-test</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.18</version>
|
<version>2.0.27-scope-0.2-test</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.18</version>
|
<version>2.0.27-scope-0.2-test</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>
|
||||||
|
|
||||||
|
|||||||
@@ -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.18</version>
|
<version>2.0.27-scope-0.2-test</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-ademo</artifactId>
|
<artifactId>springboot-ademo</artifactId>
|
||||||
<version>2.0.18</version>
|
<version>2.0.27-scope-0.2-test</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>
|
||||||
|
|
||||||
|
|||||||
@@ -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"));
|
||||||
|
|||||||
@@ -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());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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.18</version>
|
<version>2.0.27-scope-0.2-test</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-annotation</artifactId>
|
<artifactId>springboot-annotation</artifactId>
|
||||||
|
|||||||
@@ -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.18</version>
|
<version>2.0.27-scope-0.2-test</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-database</artifactId>
|
<artifactId>springboot-database</artifactId>
|
||||||
|
|||||||
@@ -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.18</version>
|
<version>2.0.27-scope-0.2-test</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-login</artifactId>
|
<artifactId>springboot-login</artifactId>
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -170,8 +170,9 @@ public class LoginController {
|
|||||||
extra = "";
|
extra = "";
|
||||||
}
|
}
|
||||||
String configUrl = globalConfig.buildPath("/login/wxmp/oauth2/" + service + "?extra=" + extra);
|
String configUrl = globalConfig.buildPath("/login/wxmp/oauth2/" + service + "?extra=" + extra);
|
||||||
String authorizationUrl = platformWxmpConfig.buildAuthorizationUrl(service, configUrl, "snsapi_userinfo");
|
// String authorizationUrl = platformWxmpConfig.buildAuthorizationUrl(service, configUrl, "snsapi_base");
|
||||||
response.sendRedirect(authorizationUrl);
|
// response.sendRedirect(authorizationUrl);
|
||||||
|
response.sendRedirect(configUrl+"&to=mobile&code=200");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -181,9 +182,13 @@ public class LoginController {
|
|||||||
@RequestMapping("/wxmp/oauth2/{service}")
|
@RequestMapping("/wxmp/oauth2/{service}")
|
||||||
@OperationIgnore
|
@OperationIgnore
|
||||||
public void wxmpOauth2(@PathVariable String service, CodeExtraDTO dto, HttpServletResponse response) {
|
public void wxmpOauth2(@PathVariable String service, CodeExtraDTO dto, HttpServletResponse response) {
|
||||||
WxUserInfo wxUserInfo = platformWxmpConfig.getOAuth2AccessToken(service, dto.getCode());
|
// WxUserInfo wxUserInfo = platformWxmpConfig.getOAuth2AccessToken(service, dto.getCode());
|
||||||
TokenBean tokenBean = corePlatformUniqueService.login(new DoLoginInfo(wxUserInfo.getAppId(),
|
// TokenBean tokenBean = corePlatformUniqueService.login(new DoLoginInfo(wxUserInfo.getAppId(),
|
||||||
wxUserInfo.getOpenid(), "wxmp", JSON.toJSONString(wxUserInfo)));
|
// wxUserInfo.getOpenid(), "wxmp", JSON.toJSONString(wxUserInfo)));
|
||||||
|
TokenBean tokenBean = new TokenBean();
|
||||||
|
tokenBean.setId("testid");
|
||||||
|
tokenBean.setRoleId("testroleid");
|
||||||
|
tokenBean.setExtra("testextra");
|
||||||
corePlatformUniqueService.redirect(tokenBean, dto.getTo(), dto.getExtra(), response);
|
corePlatformUniqueService.redirect(tokenBean, dto.getTo(), dto.getExtra(), response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ public interface TsLoginConfigurer {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取登录失败的次数,默认5次
|
* 获取登录失败的次数,默认0次,不校验
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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.18</version>
|
<version>2.0.27-scope-0.2-test</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-message</artifactId>
|
<artifactId>springboot-message</artifactId>
|
||||||
|
|||||||
@@ -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.18</version>
|
<version>2.0.27-scope-0.2-test</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-platform</artifactId>
|
<artifactId>springboot-platform</artifactId>
|
||||||
|
|||||||
@@ -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.18</version>
|
<version>2.0.27-scope-0.2-test</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-role</artifactId>
|
<artifactId>springboot-role</artifactId>
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import com.tiesheng.role.pojos.vo.GroupTypeDTO;
|
|||||||
import com.tiesheng.role.pojos.vo.ServiceMenuVO;
|
import com.tiesheng.role.pojos.vo.ServiceMenuVO;
|
||||||
import com.tiesheng.role.service.CoreRoleService;
|
import com.tiesheng.role.service.CoreRoleService;
|
||||||
import com.tiesheng.util.pojos.ApiResp;
|
import com.tiesheng.util.pojos.ApiResp;
|
||||||
|
import com.tiesheng.util.pojos.DaoBase;
|
||||||
import com.tiesheng.util.pojos.TokenBean;
|
import com.tiesheng.util.pojos.TokenBean;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
@@ -43,6 +44,14 @@ public class CommRoleController {
|
|||||||
List<CoreRoleAuthority> allOwnerMenus = coreRoleService.getOwnerAuthorityLeafList(tokenBean.getId(), tokenBean.getRoleId());
|
List<CoreRoleAuthority> allOwnerMenus = coreRoleService.getOwnerAuthorityLeafList(tokenBean.getId(), tokenBean.getRoleId());
|
||||||
List<String> list = allOwnerMenus.stream().map(CoreRoleAuthority::getService).collect(Collectors.toList());
|
List<String> list = allOwnerMenus.stream().map(CoreRoleAuthority::getService).collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 添加公开服务
|
||||||
|
list.addAll(coreRoleService.getServerMapper().selectList(new QueryWrapper<CoreRoleServer>()
|
||||||
|
.eq("is_public", 1).eq("is_deleted", 0).eq("is_open", 1)
|
||||||
|
).stream().map(DaoBase::getId).collect(Collectors.toList()));
|
||||||
|
|
||||||
|
// 去除重复
|
||||||
|
list = CollUtil.distinct(list);
|
||||||
|
|
||||||
List<CoreRoleServer> roleServerList = new ArrayList<>();
|
List<CoreRoleServer> roleServerList = new ArrayList<>();
|
||||||
if (CollUtil.isNotEmpty(list)) {
|
if (CollUtil.isNotEmpty(list)) {
|
||||||
roleServerList = coreRoleService.getServerMapper().selectList(new QueryWrapper<CoreRoleServer>()
|
roleServerList = coreRoleService.getServerMapper().selectList(new QueryWrapper<CoreRoleServer>()
|
||||||
|
|||||||
@@ -66,6 +66,12 @@ public class CoreRoleServer extends DaoBase {
|
|||||||
@TableField(value = "ext3")
|
@TableField(value = "ext3")
|
||||||
private String ext3;
|
private String ext3;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否公开
|
||||||
|
*/
|
||||||
|
@TableField(value = "is_public")
|
||||||
|
private Integer isPublic;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取名称
|
* 获取名称
|
||||||
*
|
*
|
||||||
@@ -227,4 +233,22 @@ public class CoreRoleServer extends DaoBase {
|
|||||||
public void setExt3(String ext3) {
|
public void setExt3(String ext3) {
|
||||||
this.ext3 = ext3;
|
this.ext3 = ext3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取是否公开
|
||||||
|
*
|
||||||
|
* @return is_public - 是否公开
|
||||||
|
*/
|
||||||
|
public Integer getIsPublic() {
|
||||||
|
return isPublic;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置是否公开
|
||||||
|
*
|
||||||
|
* @param isPublic 是否公开
|
||||||
|
*/
|
||||||
|
public void setIsPublic(Integer isPublic) {
|
||||||
|
this.isPublic = isPublic;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
alter table core_role_server
|
||||||
|
add is_public int default 0 null comment '是否公开';
|
||||||
|
|
||||||
@@ -17,10 +17,11 @@
|
|||||||
<result column="ext1" jdbcType="VARCHAR" property="ext1" />
|
<result column="ext1" jdbcType="VARCHAR" property="ext1" />
|
||||||
<result column="ext2" jdbcType="VARCHAR" property="ext2" />
|
<result column="ext2" jdbcType="VARCHAR" property="ext2" />
|
||||||
<result column="ext3" jdbcType="VARCHAR" property="ext3" />
|
<result column="ext3" jdbcType="VARCHAR" property="ext3" />
|
||||||
|
<result column="is_public" jdbcType="INTEGER" property="isPublic" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
<!--@mbg.generated-->
|
<!--@mbg.generated-->
|
||||||
id, create_time, update_time, is_deleted, `name`, remark, logo, sort, is_open, link,
|
id, create_time, update_time, is_deleted, `name`, remark, logo, sort, is_open, link,
|
||||||
ext1, ext2, ext3
|
ext1, ext2, ext3, is_public
|
||||||
</sql>
|
</sql>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -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.18</version>
|
<version>2.0.27-scope-0.2-test</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-util</artifactId>
|
<artifactId>springboot-util</artifactId>
|
||||||
@@ -82,7 +82,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>mysql</groupId>
|
<groupId>mysql</groupId>
|
||||||
<artifactId>mysql-connector-java</artifactId>
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
<version>8.0.30</version>
|
<version>8.0.33</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
@@ -107,7 +107,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.bouncycastle</groupId>
|
<groupId>org.bouncycastle</groupId>
|
||||||
<artifactId>bcprov-jdk15to18</artifactId>
|
<artifactId>bcprov-jdk15to18</artifactId>
|
||||||
<version>1.68</version>
|
<version>1.80</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.tiesheng.util.service;
|
package com.tiesheng.util.service;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.extra.servlet.ServletUtil;
|
|
||||||
import cn.hutool.extra.spring.SpringUtil;
|
import cn.hutool.extra.spring.SpringUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.tiesheng.util.ServletKit;
|
import com.tiesheng.util.ServletKit;
|
||||||
@@ -10,6 +9,7 @@ import com.tiesheng.util.service.cache.TsCacheHandler;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@@ -92,4 +92,20 @@ public class TsCacheService {
|
|||||||
remove(captchaKey);
|
remove(captchaKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 验证是否重复操作
|
||||||
|
*
|
||||||
|
* @param key
|
||||||
|
* @param value
|
||||||
|
* @param seconds
|
||||||
|
*/
|
||||||
|
public void checkRepeat(String key, String value, int seconds) {
|
||||||
|
String s = get(key);
|
||||||
|
if (StrUtil.isNotEmpty(s) && Objects.equals(s, value)) {
|
||||||
|
throw new ApiException("操作频繁,请稍后再试");
|
||||||
|
}
|
||||||
|
put(key, value, seconds);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.18</version>
|
<version>2.0.27-scope-0.2-test</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>springboot-web</artifactId>
|
<artifactId>springboot-web</artifactId>
|
||||||
@@ -30,9 +30,39 @@
|
|||||||
<artifactId>spring-boot-starter-json</artifactId>
|
<artifactId>spring-boot-starter-json</artifactId>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
</exclusion>
|
</exclusion>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>org.apache.tomcat.embed</groupId>
|
||||||
|
<artifactId>tomcat-embed-core</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>org.apache.tomcat.embed</groupId>
|
||||||
|
<artifactId>tomcat-embed-el</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>org.apache.tomcat.embed</groupId>
|
||||||
|
<artifactId>tomcat-embed-websocket</artifactId>
|
||||||
|
</exclusion>
|
||||||
</exclusions>
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.tomcat.embed</groupId>
|
||||||
|
<artifactId>tomcat-embed-core</artifactId>
|
||||||
|
<version>9.0.104</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.tomcat.embed</groupId>
|
||||||
|
<artifactId>tomcat-embed-el</artifactId>
|
||||||
|
<version>9.0.104</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.tomcat.embed</groupId>
|
||||||
|
<artifactId>tomcat-embed-websocket</artifactId>
|
||||||
|
<version>9.0.104</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- aspect -->
|
<!-- aspect -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.tiesheng.web.config.operation;
|
package com.tiesheng.web.config.operation;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
@@ -56,6 +58,8 @@ public class OperationAspect {
|
|||||||
@Around("methodArgs()")
|
@Around("methodArgs()")
|
||||||
public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
|
public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
|
||||||
|
|
||||||
|
DateTime crateTime = DateUtil.date();
|
||||||
|
|
||||||
HttpServletRequest request = ServletKit.getRequest();
|
HttpServletRequest request = ServletKit.getRequest();
|
||||||
if (request == null) {
|
if (request == null) {
|
||||||
return joinPoint.proceed();
|
return joinPoint.proceed();
|
||||||
@@ -115,7 +119,7 @@ public class OperationAspect {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
coreLogService.addOperationLog(
|
coreLogService.addOperationLog(crateTime,
|
||||||
tsTokenConfig.validToken(request, false), title, subject, reqMaps);
|
tsTokenConfig.validToken(request, false), title, subject, reqMaps);
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.tiesheng.web.service;
|
package com.tiesheng.web.service;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.tiesheng.util.exception.ApiException;
|
import com.tiesheng.util.exception.ApiException;
|
||||||
import com.tiesheng.util.service.TsCacheService;
|
import com.tiesheng.util.service.TsCacheService;
|
||||||
import com.tiesheng.util.service.TsServiceBase;
|
import com.tiesheng.util.service.TsServiceBase;
|
||||||
@@ -41,7 +42,7 @@ public class CoreConfigService extends TsServiceBase<CoreConfigSystemMapper, Cor
|
|||||||
CoreConfigSystem oneByColumn = tsCacheService.getObj(CONFIG_SYSTEM_PREFIX + configKey,
|
CoreConfigSystem oneByColumn = tsCacheService.getObj(CONFIG_SYSTEM_PREFIX + configKey,
|
||||||
CoreConfigSystem.class, -1);
|
CoreConfigSystem.class, -1);
|
||||||
|
|
||||||
if (oneByColumn != null) {
|
if (oneByColumn != null && StrUtil.isNotEmpty(oneByColumn.getConfigVal())) {
|
||||||
return oneByColumn;
|
return oneByColumn;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,7 +52,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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import com.tiesheng.web.util.ProcessSyncConsumer;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -154,7 +155,7 @@ public class CoreLogService extends TsServiceBase<CoreLogOperationMapper, CoreLo
|
|||||||
/**
|
/**
|
||||||
* 添加操作日志
|
* 添加操作日志
|
||||||
*/
|
*/
|
||||||
public void addOperationLog(TokenBean tokenBean, String title, String subject, Object params) {
|
public void addOperationLog(Date createTime, TokenBean tokenBean, String title, String subject, Object params) {
|
||||||
|
|
||||||
if (tokenBean == null || StrUtil.isEmpty(tokenBean.getId())) {
|
if (tokenBean == null || StrUtil.isEmpty(tokenBean.getId())) {
|
||||||
return;
|
return;
|
||||||
@@ -165,7 +166,7 @@ public class CoreLogService extends TsServiceBase<CoreLogOperationMapper, CoreLo
|
|||||||
}
|
}
|
||||||
|
|
||||||
CoreLogOperation operation = new CoreLogOperation();
|
CoreLogOperation operation = new CoreLogOperation();
|
||||||
operation.setCreateTime(DateUtil.date());
|
operation.setCreateTime(createTime);
|
||||||
operation.setUpdateTime(DateUtil.date());
|
operation.setUpdateTime(DateUtil.date());
|
||||||
operation.setUserId(requestUserInfo.getId());
|
operation.setUserId(requestUserInfo.getId());
|
||||||
operation.setUserName(requestUserInfo.getName());
|
operation.setUserName(requestUserInfo.getName());
|
||||||
|
|||||||
@@ -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));
|
||||||
|
|||||||
Reference in New Issue
Block a user