提交 ea7ad4b1 authored 作者: YunaiV's avatar YunaiV

infra:勉强启动成功,需要继续优化

上级 0745ad92
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
"local": { "local": {
"baseUrl": "http://127.0.0.1:48080/admin-api", "baseUrl": "http://127.0.0.1:48080/admin-api",
"systemBaseUrl": "http://127.0.0.1:48081/admin-api", "systemBaseUrl": "http://127.0.0.1:48081/admin-api",
"infaBaseUrl": "http://127.0.0.1:48082/admin-api",
"token": "test1", "token": "test1",
"adminTenentId": "1", "adminTenentId": "1",
......
...@@ -33,7 +33,6 @@ import javax.annotation.Resource; ...@@ -33,7 +33,6 @@ import javax.annotation.Resource;
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(SecurityProperties.class) @EnableConfigurationProperties(SecurityProperties.class)
@EnableFeignClients(clients = OAuth2TokenApi.class)
public class YudaoSecurityAutoConfiguration { public class YudaoSecurityAutoConfiguration {
@Resource @Resource
......
package cn.iocoder.yudao.framework.security.config;
import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi;
import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration;
/**
* Security 使用到 Feign 的配置项
*
* @author 芋道源码
*/
@Configuration(proxyBeanMethods = false)
@EnableFeignClients(clients = {OAuth2TokenApi.class, // 主要是引入相关的 API 服务
PermissionApi.class})
public class YudaoSecurityFeignAutoConfiguration {
}
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
cn.iocoder.yudao.framework.security.config.YudaoSecurityFeignAutoConfiguration,\
cn.iocoder.yudao.framework.security.config.YudaoSecurityAutoConfiguration,\ cn.iocoder.yudao.framework.security.config.YudaoSecurityAutoConfiguration,\
cn.iocoder.yudao.framework.security.config.YudaoWebSecurityConfigurerAdapter cn.iocoder.yudao.framework.security.config.YudaoWebSecurityConfigurerAdapter
package cn.iocoder.yudao.module.infra.enums;
/**
* API 相关的枚举
*
* @author 芋道源码
*/
public class ApiConstants {
/**
* 服务名
*
* 注意,需要保证和 spring.application.name 保持一致
*/
public static final String NAME = "infra-server";
public static final String PREFIX = "/rpc-api/system";
public static final String VERSION = "1.0.0";
}
### 请求 /infra/file-config/create 接口 => 成功 ### 请求 /infra/file-config/create 接口 => 成功
POST {{baseUrl}}/infra/file-config/create POST {{infaBaseUrl}}/infra/file-config/create
Content-Type: application/json Content-Type: application/json
tenant-id: {{adminTenentId}} tenant-id: {{adminTenentId}}
Authorization: Bearer {{token}} Authorization: Bearer {{token}}
......
### 请求 /infra/redis/get-monitor-info 接口 => 成功 ### 请求 /infra/redis/get-monitor-info 接口 => 成功
GET {{baseUrl}}/infra/redis/get-monitor-info GET {{infaBaseUrl}}/infra/redis/get-monitor-info
Authorization: Bearer {{token}} Authorization: Bearer {{token}}
tenant-id: {{adminTenentId}} tenant-id: {{adminTenentId}}
### 请求 /infra/redis/get-key-list 接口 => 成功 ### 请求 /infra/redis/get-key-list 接口 => 成功
GET {{baseUrl}}/infra/redis/get-key-list GET {{infaBaseUrl}}/infra/redis/get-key-list
Authorization: Bearer {{token}} Authorization: Bearer {{token}}
tenant-id: {{adminTenentId}} tenant-id: {{adminTenentId}}
package cn.iocoder.yudao.module.infra.framework;
import cn.iocoder.yudao.framework.apilog.core.service.ApiAccessLogFrameworkService;
import cn.iocoder.yudao.framework.apilog.core.service.ApiErrorLogFrameworkService;
import cn.iocoder.yudao.framework.apilog.core.service.dto.ApiAccessLogCreateReqDTO;
import cn.iocoder.yudao.framework.apilog.core.service.dto.ApiErrorLogCreateReqDTO;
import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO;
import cn.iocoder.yudao.framework.operatelog.core.service.OperateLogFrameworkService;
import cn.iocoder.yudao.module.infra.api.file.FileApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.concurrent.Future;
@Configuration
public class TmpConfiguration {
@Bean
public OperateLogFrameworkService operateLogFrameworkService() {
return new OperateLogFrameworkService() {
@Override
public Future<Boolean> createOperateLogAsync(OperateLogCreateReqDTO reqVO) {
return null;
}
};
}
}
package cn.iocoder.yudao.module.infra.framework.rpc.config;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration;
@Configuration(proxyBeanMethods = false)
@EnableFeignClients(clients = AdminUserApi.class)
public class RpcConfiguration {
}
server:
port: 48082
--- #################### 数据库相关配置 #################### --- #################### 数据库相关配置 ####################
spring: spring:
......
...@@ -71,6 +71,8 @@ dubbo: ...@@ -71,6 +71,8 @@ dubbo:
port: -1 # 协议端口,-1 表示自增端口,从 20880 开始 port: -1 # 协议端口,-1 表示自增端口,从 20880 开始
registry: registry:
address: spring-cloud://localhost # 设置使用 Spring Cloud 注册中心 address: spring-cloud://localhost # 设置使用 Spring Cloud 注册中心
application:
id: infra-server # TODO 一定要写么?
--- #################### 芋道相关配置 #################### --- #################### 芋道相关配置 ####################
......
...@@ -7,10 +7,3 @@ spring: ...@@ -7,10 +7,3 @@ spring:
server: server:
port: 48082 port: 48082
yudao:
security: # TODO 芋艿,发现一定要配置,需要找下原因
token-header: Authorization
mock-enable: true
mock-secret: test
package cn.iocoder.yudao.module.system.api.permission; package cn.iocoder.yudao.module.system.api.permission;
import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO;
import cn.iocoder.yudao.module.system.enums.ApiConstants;
import io.swagger.annotations.Api;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Collection; import java.util.Collection;
import java.util.Set; import java.util.Set;
/** @FeignClient(name = ApiConstants.NAME) // TODO 芋艿:fallbackFactory =
* 权限 API 接口 @Api(tags = "RPC 服务 - 权限")
*
* @author 芋道源码
*/
public interface PermissionApi { public interface PermissionApi {
String PREFIX = ApiConstants.PREFIX + "/permission";
/** /**
* 获得拥有多个角色的用户编号集合 * 获得拥有多个角色的用户编号集合
* *
* @param roleIds 角色编号集合 * @param roleIds 角色编号集合
* @return 用户编号集合 * @return 用户编号集合
*/ */
@GetMapping(PREFIX + "/user-role-id-list-by-role-id")
Set<Long> getUserRoleIdListByRoleIds(Collection<Long> roleIds); Set<Long> getUserRoleIdListByRoleIds(Collection<Long> roleIds);
/** /**
...@@ -27,7 +32,9 @@ public interface PermissionApi { ...@@ -27,7 +32,9 @@ public interface PermissionApi {
* @param permissions 权限 * @param permissions 权限
* @return 是否 * @return 是否
*/ */
boolean hasAnyPermissions(Long userId, String... permissions); @GetMapping(PREFIX + "/has-any-permissions")
boolean hasAnyPermissions(@RequestParam("userId") Long userId,
@RequestParam("permissions") String... permissions);
/** /**
* 判断是否有角色,任一一个即可 * 判断是否有角色,任一一个即可
...@@ -36,7 +43,9 @@ public interface PermissionApi { ...@@ -36,7 +43,9 @@ public interface PermissionApi {
* @param roles 角色数组 * @param roles 角色数组
* @return 是否 * @return 是否
*/ */
boolean hasAnyRoles(Long userId, String... roles); @GetMapping(PREFIX + "/has-any-roles")
boolean hasAnyRoles(@RequestParam("userId") Long userId,
@RequestParam("roles") String... roles);
/** /**
* 获得登陆用户的部门数据权限 * 获得登陆用户的部门数据权限
...@@ -44,6 +53,7 @@ public interface PermissionApi { ...@@ -44,6 +53,7 @@ public interface PermissionApi {
* @param userId 用户编号 * @param userId 用户编号
* @return 部门数据权限 * @return 部门数据权限
*/ */
@GetMapping(PREFIX + "/get-dept-data-permission")
DeptDataPermissionRespDTO getDeptDataPermission(Long userId); DeptDataPermissionRespDTO getDeptDataPermission(Long userId);
} }
...@@ -24,7 +24,7 @@ public interface AdminUserApi { ...@@ -24,7 +24,7 @@ public interface AdminUserApi {
* @param id 用户ID * @param id 用户ID
* @return 用户对象信息 * @return 用户对象信息
*/ */
@GetMapping("/get") @GetMapping(PREFIX + "/get")
AdminUserRespDTO getUser(Long id); AdminUserRespDTO getUser(Long id);
/** /**
...@@ -33,7 +33,7 @@ public interface AdminUserApi { ...@@ -33,7 +33,7 @@ public interface AdminUserApi {
* @param ids 用户 ID 们 * @param ids 用户 ID 们
* @return 用户对象信息 * @return 用户对象信息
*/ */
@GetMapping("/list") @GetMapping(PREFIX + "/list")
List<AdminUserRespDTO> getUsers(Collection<Long> ids); List<AdminUserRespDTO> getUsers(Collection<Long> ids);
/** /**
...@@ -42,7 +42,7 @@ public interface AdminUserApi { ...@@ -42,7 +42,7 @@ public interface AdminUserApi {
* @param deptIds 部门数组 * @param deptIds 部门数组
* @return 用户数组 * @return 用户数组
*/ */
@GetMapping("/list-by-dept-id") @GetMapping(PREFIX + "/list-by-dept-id")
List<AdminUserRespDTO> getUsersByDeptIds(Collection<Long> deptIds); List<AdminUserRespDTO> getUsersByDeptIds(Collection<Long> deptIds);
/** /**
...@@ -51,7 +51,7 @@ public interface AdminUserApi { ...@@ -51,7 +51,7 @@ public interface AdminUserApi {
* @param postIds 岗位数组 * @param postIds 岗位数组
* @return 用户数组 * @return 用户数组
*/ */
@GetMapping("/list-by-post-id") @GetMapping(PREFIX + "/list-by-post-id")
List<AdminUserRespDTO> getUsersByPostIds(Collection<Long> postIds); List<AdminUserRespDTO> getUsersByPostIds(Collection<Long> postIds);
/** /**
...@@ -72,7 +72,7 @@ public interface AdminUserApi { ...@@ -72,7 +72,7 @@ public interface AdminUserApi {
* *
* @param ids 用户编号数组 * @param ids 用户编号数组
*/ */
@GetMapping("/valid") @GetMapping(PREFIX + "/valid")
void validUsers(Set<Long> ids); void validUsers(Set<Long> ids);
} }
...@@ -2,18 +2,25 @@ package cn.iocoder.yudao.module.system.api.permission; ...@@ -2,18 +2,25 @@ package cn.iocoder.yudao.module.system.api.permission;
import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO;
import cn.iocoder.yudao.module.system.service.permission.PermissionService; import cn.iocoder.yudao.module.system.service.permission.PermissionService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Collection; import java.util.Collection;
import java.util.Set; import java.util.Set;
import static cn.iocoder.yudao.module.system.enums.ApiConstants.VERSION;
/** /**
* 权限 API 实现类 * 权限 API 实现类
* *
* @author 芋道源码 * @author 芋道源码
*/ */
@Service @RestController // 提供 RESTful API 接口,给 Feign 调用
@DubboService(version = VERSION) // 提供 Dubbo RPC 接口,给 Dubbo Consumer 调用
@Validated
public class PermissionApiImpl implements PermissionApi { public class PermissionApiImpl implements PermissionApi {
@Resource @Resource
......
...@@ -4,20 +4,26 @@ import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; ...@@ -4,20 +4,26 @@ import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import cn.iocoder.yudao.module.system.convert.user.UserConvert; import cn.iocoder.yudao.module.system.convert.user.UserConvert;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import cn.iocoder.yudao.module.system.service.user.AdminUserService; import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
import static cn.iocoder.yudao.module.system.enums.ApiConstants.VERSION;
/** /**
* Admin 用户 API 实现类 * Admin 用户 API 实现类
* *
* @author 芋道源码 * @author 芋道源码
*/ */
@Service @RestController // 提供 RESTful API 接口,给 Feign 调用
@DubboService(version = VERSION) // 提供 Dubbo RPC 接口,给 Dubbo Consumer 调用
@Validated
public class AdminUserApiImpl implements AdminUserApi { public class AdminUserApiImpl implements AdminUserApi {
@Resource @Resource
...@@ -29,6 +35,12 @@ public class AdminUserApiImpl implements AdminUserApi { ...@@ -29,6 +35,12 @@ public class AdminUserApiImpl implements AdminUserApi {
return UserConvert.INSTANCE.convert4(user); return UserConvert.INSTANCE.convert4(user);
} }
@Override
public List<AdminUserRespDTO> getUsers(Collection<Long> ids) {
List<AdminUserDO> users = userService.getUsers(ids);
return UserConvert.INSTANCE.convertList4(users);
}
@Override @Override
public List<AdminUserRespDTO> getUsersByDeptIds(Collection<Long> deptIds) { public List<AdminUserRespDTO> getUsersByDeptIds(Collection<Long> deptIds) {
List<AdminUserDO> users = userService.getUsersByDeptIds(deptIds); List<AdminUserDO> users = userService.getUsersByDeptIds(deptIds);
...@@ -41,12 +53,6 @@ public class AdminUserApiImpl implements AdminUserApi { ...@@ -41,12 +53,6 @@ public class AdminUserApiImpl implements AdminUserApi {
return UserConvert.INSTANCE.convertList4(users); return UserConvert.INSTANCE.convertList4(users);
} }
@Override
public Map<Long, AdminUserRespDTO> getUserMap(Collection<Long> ids) {
Map<Long, AdminUserDO> userMap = userService.getUserMap(ids);
return UserConvert.INSTANCE.convertMap4(userMap);
}
@Override @Override
public void validUsers(Set<Long> ids) { public void validUsers(Set<Long> ids) {
userService.validUsers(ids); userService.validUsers(ids);
......
...@@ -53,6 +53,4 @@ public interface UserConvert { ...@@ -53,6 +53,4 @@ public interface UserConvert {
List<AdminUserRespDTO> convertList4(List<AdminUserDO> users); List<AdminUserRespDTO> convertList4(List<AdminUserDO> users);
Map<Long, AdminUserRespDTO> convertMap4(Map<Long, AdminUserDO> map);
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论