系统管理相关feign封装
This commit is contained in:
@ -13,9 +13,15 @@ import org.springframework.cloud.openfeign.SpringQueryMap;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import feign.RequestInterceptor;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
@FeignClient(name = ServiceNameConstants.SYSTEM_SERVICE
|
@FeignClient(
|
||||||
,fallback = SystemClientFallback.class
|
name = ServiceNameConstants.SYSTEM_SERVICE,
|
||||||
|
fallback = SystemClientFallback.class,
|
||||||
|
configuration = SystemClient.FeignConfig.class
|
||||||
)
|
)
|
||||||
public interface SystemClient {
|
public interface SystemClient {
|
||||||
|
|
||||||
@ -23,15 +29,14 @@ public interface SystemClient {
|
|||||||
@ApiOperation("分页查询用户信息")
|
@ApiOperation("分页查询用户信息")
|
||||||
@PostMapping("/v1/sysuser/getPage")
|
@PostMapping("/v1/sysuser/getPage")
|
||||||
BaseResponse<Page<SysUser>> getUserPage(
|
BaseResponse<Page<SysUser>> getUserPage(
|
||||||
@ApiParam(value = "对象数据", required = true) @RequestBody SysUserVO sysUserDTO,
|
@ApiParam(value = "对象数据", required = true) @RequestBody SysUserVO sysUserDTO
|
||||||
@RequestHeader("isFegin") String privateKey
|
|
||||||
);
|
);
|
||||||
|
|
||||||
@ApiOperation("查询用户列表")
|
@ApiOperation("查询用户列表")
|
||||||
@GetMapping("/v1/sysuser/list")
|
@GetMapping("/v1/sysuser/list")
|
||||||
BaseResponse<List<SysUser>> getUserlist(
|
BaseResponse<List<SysUser>> getUserlist(
|
||||||
@RequestHeader("isFegin") String privateKey,
|
@ApiParam(value = "查询对象数据", required = false) @SpringQueryMap SysUser param
|
||||||
@ApiParam(value = "查询对象数据", required = false) @SpringQueryMap SysUser param);
|
);
|
||||||
|
|
||||||
// -----------------------组织接口-----------------------
|
// -----------------------组织接口-----------------------
|
||||||
@ApiOperation("查询组织信息(当前组织及下级组织列表)")
|
@ApiOperation("查询组织信息(当前组织及下级组织列表)")
|
||||||
@ -50,4 +55,36 @@ public interface SystemClient {
|
|||||||
@GetMapping("/v1/sysorg/queryAll")
|
@GetMapping("/v1/sysorg/queryAll")
|
||||||
BaseResponse<List<SysOrgVO>> queryAll(@SpringQueryMap SysOrg sysOrg);
|
BaseResponse<List<SysOrgVO>> queryAll(@SpringQueryMap SysOrg sysOrg);
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
class FeignConfig {
|
||||||
|
@Value("${check.tokentime.checkpublicKey}")
|
||||||
|
private String publicKeyStr;
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public RequestInterceptor feignRequestInterceptor() {
|
||||||
|
return template -> {
|
||||||
|
try {
|
||||||
|
String str = "isfegin";
|
||||||
|
// 1. Base64 decode public key
|
||||||
|
byte[] keyBytes = java.util.Base64.getDecoder().decode(publicKeyStr);
|
||||||
|
java.security.spec.X509EncodedKeySpec keySpec = new java.security.spec.X509EncodedKeySpec(keyBytes);
|
||||||
|
java.security.KeyFactory keyFactory = java.security.KeyFactory.getInstance("RSA");
|
||||||
|
java.security.PublicKey publicKey = keyFactory.generatePublic(keySpec);
|
||||||
|
|
||||||
|
// 2. Encrypt str with public key
|
||||||
|
javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance("RSA");
|
||||||
|
cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, publicKey);
|
||||||
|
byte[] encrypted = cipher.doFinal(str.getBytes());
|
||||||
|
|
||||||
|
// 3. Base64 encode encrypted result
|
||||||
|
String encoded = java.util.Base64.getEncoder().encodeToString(encrypted);
|
||||||
|
|
||||||
|
template.header("isFegin", encoded);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException("Failed to encrypt isFegin header", e);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -14,14 +14,18 @@ import java.util.List;
|
|||||||
@Component
|
@Component
|
||||||
public class SystemClientFallback implements SystemClient {
|
public class SystemClientFallback implements SystemClient {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse<Page<SysUser>> getUserPage(SysUserVO sysUserDTO, String privateKey) {
|
public BaseResponse<Page<SysUser>> getUserPage(SysUserVO sysUserDTO) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse<List<SysUser>> getUserlist(String privateKey, SysUser param) {
|
public BaseResponse<List<SysUser>> getUserlist(SysUser param) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BaseResponse<List<SysOrg>> getOrgWithChildren(SysOrg sysOrg) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,9 +43,4 @@ public class SystemClientFallback implements SystemClient {
|
|||||||
public BaseResponse<List<SysOrgVO>> queryAll(SysOrg sysOrg) {
|
public BaseResponse<List<SysOrgVO>> queryAll(SysOrg sysOrg) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public BaseResponse<List<SysOrg>> getOrgWithChildren(SysOrg sysOrg) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
Reference in New Issue
Block a user