代码拉取完成,页面将自动刷新
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>takin-sys</artifactId>
<groupId>com.gitee.zhangchenyan</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>takin-sys-contract</artifactId>
<dependencies>
<dependency>
<groupId>com.gitee.zhangchenyan</groupId>
<artifactId>takin-service-bus-common</artifactId>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
</dependencies>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>takin-sys</artifactId>
<groupId>com.gitee.zhangchenyan</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>takin-sys-provider</artifactId>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.gitee.zhangchenyan</groupId>
<artifactId>takin-service-bus-server</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.gitee.zhangchenyan</groupId>
<artifactId>takin-sys-contract</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
<exclude>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>com.gitee.zhangchenyan</groupId>
<artifactId>takin-generator-maven-plugin</artifactId>
<version>${takin.version}</version>
</plugin>
</plugins>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>takin-sys</artifactId>
<groupId>com.gitee.zhangchenyan</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>takin-sys-web</artifactId>
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.gitee.zhangchenyan</groupId>
<artifactId>takin-service-bus-client</artifactId>
</dependency>
<dependency>
<groupId>com.gitee.zhangchenyan</groupId>
<artifactId>takin-auth-web</artifactId>
</dependency>
<dependency>
<groupId>com.gitee.zhangchenyan</groupId>
<artifactId>takin-sys-contract</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
<exclude>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
server.port=9001
#配置读取电脑环境变量nacos地址
takin.nacosServerAddress=${NACOS_CONFIG_SERVER_ADDR}
#配置应用名称,用于日志的生成文件名称和读取spring.application.name同名的配置文件
spring.application.name=takin-sys-web
#项目开发过程远程调用可能会调用到其它开发者的服务层,可以指定服务层调用地址(nacos中public配置spring.profiles.active=dev才有效果)
#takin.devContractPackage = com.gitee.zhangchenyan.takin.sys.service&127.0.0.1:5002;com.xx.service&127.0.0.1:5003
server.port=9002
#配置读取电脑环境变量nacos地址
takin.nacosServerAddress=${NACOS_CONFIG_SERVER_ADDR}
#配置应用名称,用于日志的生成文件名称和读取spring.application.name同名的配置文件
spring.application.name=takin-sys-provider
#注册到nacos的服务名称,名称必须为contract模块的service包路径.
takin.contractPackage = com.gitee.zhangchenyan.takin.sys.service
#注册nacos服务地址【网络复杂的时候配置,默认为本机IP地址和server.port端口】
#takin.rpcServerIp = 127.0.0.1
#takin.rpcServerPort = 5002
/**
* @Deacription 获取当前用户所以权限
* @Author zl
* @Date 2022/4/10 21:51
* @Version 1.0
**/
@Component
public class AuthCheckPermissionParameterImpl implements AuthCheckPermissionParameter {
private final AuthUserService authUserService;
private final IJedisClient jedisClient;
private final ISysRolesMenusService sysRolesMenusService = ServiceClient.create(ISysRolesMenusService.class);
private final static String permissionKey = "takin_permission_";
public AuthCheckPermissionParameterImpl(AuthUserService authUserService, JedisClient jedisClient) {
this.authUserService = authUserService;
this.jedisClient = jedisClient;
}
@Override
public List<String> getPermissions() {
String token = authUserService.getToken();
String redisPermissionStr = jedisClient.get(permissionKey + token);
if (StringUtils.hasLength(redisPermissionStr)) {
return JSON.parseObject(redisPermissionStr, new TypeReference<ArrayList<String>>() {
});
}
SysUser sysUser = authUserService.getUser(SysUser.class);
List<String> permissions = sysRolesMenusService.getPermissionsByUserId(sysUser.getId());
jedisClient.set(permissionKey + token, 7200L, JSON.toJSONString(permissions));
return permissions;
}
}
@AuthCheckLogin
@AuthCheckPermission("sys:role:index")
@GetMapping("getMenuByRoleId")
@ApiOperation("根据roleId查询menuId")
public Result<List<Long>> getMenuByRoleId(Long roleId) {
return sysRolesMenusService.getMenuByRoleId(roleId);
}
@Autowired
private IJedisClient jedisClient;
签名方式如下:
(1)第一步,设所有发送post json 的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),
使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
(2)在stringA最后拼接上key(得到stringSignTemp字符串,并对stringSignTemp进行md5运算得到小写的32值signValue。
(3)最后向header添加sign=signValue发起api请求。
注意:将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(只需要对第一层的数据排序,集合里面的集合不处理)
/**
* @Deacription 获取签名的key,Demo
* @Author zl
* @Date 2022/4/10 14:20
* @Version 1.0
**/
@Component
public class AuthCheckSignParameterImpl implements AuthCheckSignParameter {
@Override
public String getKey() {
return "Y!64Dq7d@OIBVLclBH%fdVKS0mwxyCsCICperKCQwMIPOBcELq*Dkx8PL5p5LBXR";
}
}
@AuthCheckSign
@PostMapping("test2")
@ApiOperation("测试签名")
public Result test2(@RequestBody SysUser sysUser) {
return ResultUtils.success(sysUser);
}
private final ISysRoleService service = ServiceClient.create(ISysRoleService.class);
//ServiceImpl实现分页查询条件
@Override
public Wrapper<SysRole> getPageWrapper(SysRolePageParam pageParam) {
QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda()
.like(StrUtil.isNotEmpty(pageParam.getName()), SysRole::getName, pageParam.getName());
return queryWrapper;
}
//Controller调用方式
service.getPage(pageParam);
集成knife4j-spring-boot-starter框架,/doc.html访问查看swagger。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。