mirror of https://github.com/alibaba/nacos.git
[#13445] Maintainer Client support aliyun ram auth plugin. (#13456)
PUSH-CI / Build dist tar (push) Waiting to run
Details
PUSH-CI / Docker images (centos, 17) (push) Blocked by required conditions
Details
PUSH-CI / Deploy nacos (push) Blocked by required conditions
Details
PUSH-CI / Java e2e Test (push) Blocked by required conditions
Details
PUSH-CI / GO E2E Test (push) Blocked by required conditions
Details
PUSH-CI / Cpp E2E Test (push) Blocked by required conditions
Details
PUSH-CI / Csharp E2E Test (push) Blocked by required conditions
Details
PUSH-CI / Nodejs E2E Test (push) Blocked by required conditions
Details
PUSH-CI / Python E2E Test (push) Blocked by required conditions
Details
PUSH-CI / Clean (push) Blocked by required conditions
Details
Continuous Integration / ci (17, ubuntu-latest) (push) Has been cancelled
Details
PUSH-CI / Build dist tar (push) Waiting to run
Details
PUSH-CI / Docker images (centos, 17) (push) Blocked by required conditions
Details
PUSH-CI / Deploy nacos (push) Blocked by required conditions
Details
PUSH-CI / Java e2e Test (push) Blocked by required conditions
Details
PUSH-CI / GO E2E Test (push) Blocked by required conditions
Details
PUSH-CI / Cpp E2E Test (push) Blocked by required conditions
Details
PUSH-CI / Csharp E2E Test (push) Blocked by required conditions
Details
PUSH-CI / Nodejs E2E Test (push) Blocked by required conditions
Details
PUSH-CI / Python E2E Test (push) Blocked by required conditions
Details
PUSH-CI / Clean (push) Blocked by required conditions
Details
Continuous Integration / ci (17, ubuntu-latest) (push) Has been cancelled
Details
* Fix naming maintainer sdk auth plugin. * Fix config maintainer sdk auth plugin. * Add AI builder to RequestResource. * Set empty string replace null resource for config module. * Set empty string replace null resource for naming module. * Fix NPE for mcp create remote mcp server. * Support ai mcp request aliyun ram auth.
This commit is contained in:
parent
4b325c5814
commit
c5aebb0246
|
@ -20,6 +20,7 @@ import com.alibaba.nacos.api.PropertyKeyConst;
|
|||
import com.alibaba.nacos.api.exception.NacosException;
|
||||
import com.alibaba.nacos.client.auth.ram.identify.StsConfig;
|
||||
import com.alibaba.nacos.client.auth.ram.injector.AbstractResourceInjector;
|
||||
import com.alibaba.nacos.client.auth.ram.injector.AiResourceInjector;
|
||||
import com.alibaba.nacos.client.auth.ram.injector.ConfigResourceInjector;
|
||||
import com.alibaba.nacos.client.auth.ram.injector.LockResourceInjector;
|
||||
import com.alibaba.nacos.client.auth.ram.injector.NamingResourceInjector;
|
||||
|
@ -56,6 +57,7 @@ public class RamClientAuthServiceImpl extends AbstractClientAuthService {
|
|||
resourceInjectors.put(SignType.NAMING, new NamingResourceInjector());
|
||||
resourceInjectors.put(SignType.CONFIG, new ConfigResourceInjector());
|
||||
resourceInjectors.put(SignType.LOCK, new LockResourceInjector());
|
||||
resourceInjectors.put(SignType.AI, new AiResourceInjector());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
/*
|
||||
* Copyright 1999-2025 Alibaba Group Holding Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.alibaba.nacos.client.auth.ram.injector;
|
||||
|
||||
import com.alibaba.nacos.client.auth.ram.RamConstants;
|
||||
import com.alibaba.nacos.client.auth.ram.RamContext;
|
||||
import com.alibaba.nacos.client.auth.ram.identify.IdentifyConstants;
|
||||
import com.alibaba.nacos.client.auth.ram.identify.StsConfig;
|
||||
import com.alibaba.nacos.client.auth.ram.identify.StsCredential;
|
||||
import com.alibaba.nacos.client.auth.ram.identify.StsCredentialHolder;
|
||||
import com.alibaba.nacos.client.auth.ram.utils.CalculateV4SigningKeyUtil;
|
||||
import com.alibaba.nacos.client.auth.ram.utils.SpasAdapter;
|
||||
import com.alibaba.nacos.common.utils.StringUtils;
|
||||
import com.alibaba.nacos.plugin.auth.api.LoginIdentityContext;
|
||||
import com.alibaba.nacos.plugin.auth.api.RequestResource;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* AI module aliyun ram reousce injector.
|
||||
*
|
||||
* @author xiweng.yy
|
||||
*/
|
||||
public class AiResourceInjector extends AbstractResourceInjector {
|
||||
|
||||
private static final String ACCESS_KEY_HEADER = "Spas-AccessKey";
|
||||
|
||||
@Override
|
||||
public void doInject(RequestResource resource, RamContext context, LoginIdentityContext result) {
|
||||
if (!context.validate()) {
|
||||
return;
|
||||
}
|
||||
String accessKey = context.getAccessKey();
|
||||
String secretKey = context.getSecretKey();
|
||||
if (StsConfig.getInstance().isStsOn()) {
|
||||
StsCredential stsCredential = StsCredentialHolder.getInstance().getStsCredential();
|
||||
accessKey = stsCredential.getAccessKeyId();
|
||||
secretKey = stsCredential.getAccessKeySecret();
|
||||
result.setParameter(IdentifyConstants.SECURITY_TOKEN_HEADER, stsCredential.getSecurityToken());
|
||||
}
|
||||
result.setParameter(ACCESS_KEY_HEADER, accessKey);
|
||||
String signatureKey = secretKey;
|
||||
if (StringUtils.isNotEmpty(context.getRegionId())) {
|
||||
signatureKey = CalculateV4SigningKeyUtil.finalSigningKeyStringWithDefaultInfo(secretKey,
|
||||
context.getRegionId());
|
||||
result.setParameter(RamConstants.SIGNATURE_VERSION, RamConstants.V4);
|
||||
}
|
||||
Map<String, String> signHeaders = SpasAdapter.getSignHeaders(buildResourceString(resource), signatureKey);
|
||||
result.setParameters(signHeaders);
|
||||
}
|
||||
|
||||
private String buildResourceString(RequestResource resource) {
|
||||
return resource.getNamespace() + "+" + resource.getGroup();
|
||||
}
|
||||
}
|
|
@ -68,15 +68,14 @@ public class ConfigResourceInjector extends AbstractResourceInjector {
|
|||
}
|
||||
|
||||
private String getResource(String tenant, String group) {
|
||||
if (StringUtils.isNotBlank(tenant) && StringUtils.isNotBlank(group)) {
|
||||
if (StringUtils.isBlank(tenant)) {
|
||||
if (StringUtils.isBlank(group)) {
|
||||
return DEFAULT_RESOURCE;
|
||||
} else {
|
||||
return group;
|
||||
}
|
||||
} else {
|
||||
return tenant + "+" + group;
|
||||
}
|
||||
if (StringUtils.isNotBlank(group)) {
|
||||
return group;
|
||||
}
|
||||
if (StringUtils.isNotBlank(tenant)) {
|
||||
return tenant;
|
||||
}
|
||||
return DEFAULT_RESOURCE;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ import com.alibaba.nacos.api.ai.model.mcp.McpServerDetailInfo;
|
|||
import com.alibaba.nacos.api.ai.model.mcp.McpServerRemoteServiceConfig;
|
||||
import com.alibaba.nacos.api.ai.model.mcp.McpToolSpecification;
|
||||
import com.alibaba.nacos.api.ai.model.mcp.registry.ServerVersionDetail;
|
||||
import com.alibaba.nacos.api.common.Constants;
|
||||
import com.alibaba.nacos.api.exception.NacosException;
|
||||
import com.alibaba.nacos.api.model.Page;
|
||||
import com.alibaba.nacos.common.utils.StringUtils;
|
||||
|
@ -69,7 +70,7 @@ public interface McpMaintainerService {
|
|||
* @throws NacosException if fail to list mcp server
|
||||
*/
|
||||
default Page<McpServerBasicInfo> listMcpServer(String mcpName, int pageNo, int pageSize) throws NacosException {
|
||||
return listMcpServer("public", mcpName, pageNo, pageSize);
|
||||
return listMcpServer(Constants.DEFAULT_NAMESPACE_ID, mcpName, pageNo, pageSize);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -105,7 +106,7 @@ public interface McpMaintainerService {
|
|||
* @throws NacosException if fail to search mcp server
|
||||
*/
|
||||
default Page<McpServerBasicInfo> searchMcpServer(String mcpName, int pageNo, int pageSize) throws NacosException {
|
||||
return searchMcpServer("public", mcpName, pageNo, pageSize);
|
||||
return searchMcpServer(Constants.DEFAULT_NAMESPACE_ID, mcpName, pageNo, pageSize);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -140,7 +141,7 @@ public interface McpMaintainerService {
|
|||
* @throws NacosException if fail to get mcp server
|
||||
*/
|
||||
default McpServerDetailInfo getMcpServerDetail(String mcpName, String version) throws NacosException {
|
||||
return getMcpServerDetail("public", mcpName, version);
|
||||
return getMcpServerDetail(Constants.DEFAULT_NAMESPACE_ID, mcpName, version);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -252,7 +253,7 @@ public interface McpMaintainerService {
|
|||
*/
|
||||
default boolean createRemoteMcpServer(String mcpName, String version, String protocol,
|
||||
McpEndpointSpec endpointSpec) throws NacosException {
|
||||
return createRemoteMcpServer(mcpName, version, protocol, null, endpointSpec);
|
||||
return createRemoteMcpServer(mcpName, version, protocol, new McpServerRemoteServiceConfig(), endpointSpec);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -368,7 +369,7 @@ public interface McpMaintainerService {
|
|||
*/
|
||||
default boolean createMcpServer(String mcpName, McpServerBasicInfo serverSpec, McpToolSpecification toolSpec,
|
||||
McpEndpointSpec endpointSpec) throws NacosException {
|
||||
return createMcpServer("public", mcpName, serverSpec, toolSpec, endpointSpec);
|
||||
return createMcpServer(Constants.DEFAULT_NAMESPACE_ID, mcpName, serverSpec, toolSpec, endpointSpec);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -400,7 +401,7 @@ public interface McpMaintainerService {
|
|||
*/
|
||||
default boolean updateMcpServer(String mcpName, boolean isLatest, McpServerBasicInfo serverSpec, McpToolSpecification toolSpec,
|
||||
McpEndpointSpec endpointSpec) throws NacosException {
|
||||
return updateMcpServer("public", mcpName, isLatest, serverSpec, toolSpec, endpointSpec);
|
||||
return updateMcpServer(Constants.DEFAULT_NAMESPACE_ID, mcpName, isLatest, serverSpec, toolSpec, endpointSpec);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -447,7 +448,7 @@ public interface McpMaintainerService {
|
|||
* @throws NacosException if fail to delete mcp server.
|
||||
*/
|
||||
default boolean deleteMcpServer(String mcpName) throws NacosException {
|
||||
return deleteMcpServer("public", mcpName);
|
||||
return deleteMcpServer(Constants.DEFAULT_NAMESPACE_ID, mcpName);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
package com.alibaba.nacos.maintainer.client.ai;
|
||||
|
||||
import com.alibaba.nacos.api.ai.constant.AiConstants;
|
||||
import com.alibaba.nacos.api.ai.model.mcp.McpEndpointSpec;
|
||||
import com.alibaba.nacos.api.ai.model.mcp.McpServerBasicInfo;
|
||||
import com.alibaba.nacos.api.ai.model.mcp.McpServerDetailInfo;
|
||||
|
@ -27,10 +28,12 @@ import com.alibaba.nacos.api.model.v2.Result;
|
|||
import com.alibaba.nacos.common.http.HttpRestResult;
|
||||
import com.alibaba.nacos.common.utils.HttpMethod;
|
||||
import com.alibaba.nacos.common.utils.JacksonUtils;
|
||||
import com.alibaba.nacos.common.utils.StringUtils;
|
||||
import com.alibaba.nacos.maintainer.client.constants.Constants;
|
||||
import com.alibaba.nacos.maintainer.client.model.HttpRequest;
|
||||
import com.alibaba.nacos.maintainer.client.remote.ClientHttpProxy;
|
||||
import com.alibaba.nacos.maintainer.client.utils.ParamUtil;
|
||||
import com.alibaba.nacos.plugin.auth.api.RequestResource;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -46,37 +49,46 @@ public class NacosAiMaintainerServiceImpl implements AiMaintainerService {
|
|||
|
||||
private final ClientHttpProxy clientHttpProxy;
|
||||
|
||||
private static final String DEFAULT_NAMESPACE = "public";
|
||||
|
||||
public NacosAiMaintainerServiceImpl(Properties properties) throws NacosException {
|
||||
this.clientHttpProxy = new ClientHttpProxy(properties);
|
||||
ParamUtil.initSerialization();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<McpServerBasicInfo> listMcpServer(String namespaceId, String mcpName, int pageNo, int pageSize) throws NacosException {
|
||||
public Page<McpServerBasicInfo> listMcpServer(String namespaceId, String mcpName, int pageNo, int pageSize)
|
||||
throws NacosException {
|
||||
if (StringUtils.isBlank(namespaceId)) {
|
||||
namespaceId = AiConstants.Mcp.MCP_DEFAULT_NAMESPACE;
|
||||
}
|
||||
Map<String, String> params = new HashMap<>(3);
|
||||
params.put("pageNo", String.valueOf(pageNo));
|
||||
params.put("pageSize", String.valueOf(pageSize));
|
||||
params.put("search", "accurate");
|
||||
params.put("mcpName", mcpName);
|
||||
params.put("namespaceId", namespaceId);
|
||||
return getMcpServerBasicInfoPage(params);
|
||||
RequestResource resource = buildRequestResource(namespaceId, mcpName);
|
||||
return getMcpServerBasicInfoPage(params, resource);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Page<McpServerBasicInfo> searchMcpServer(String namespaceId, String mcpName, int pageNo, int pageSize) throws NacosException {
|
||||
public Page<McpServerBasicInfo> searchMcpServer(String namespaceId, String mcpName, int pageNo, int pageSize)
|
||||
throws NacosException {
|
||||
if (StringUtils.isBlank(namespaceId)) {
|
||||
namespaceId = AiConstants.Mcp.MCP_DEFAULT_NAMESPACE;
|
||||
}
|
||||
Map<String, String> params = new HashMap<>(4);
|
||||
params.put("pageNo", String.valueOf(pageNo));
|
||||
params.put("pageSize", String.valueOf(pageSize));
|
||||
params.put("search", "blur");
|
||||
params.put("mcpName", mcpName);
|
||||
params.put("namespaceId", namespaceId);
|
||||
return getMcpServerBasicInfoPage(params);
|
||||
RequestResource resource = buildRequestResource(namespaceId, mcpName);
|
||||
return getMcpServerBasicInfoPage(params, resource);
|
||||
}
|
||||
|
||||
private Page<McpServerBasicInfo> getMcpServerBasicInfoPage(Map<String, String> params) throws NacosException {
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
|
||||
private Page<McpServerBasicInfo> getMcpServerBasicInfoPage(Map<String, String> params, RequestResource resource)
|
||||
throws NacosException {
|
||||
HttpRequest httpRequest = buildHttpRequestBuilder(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.AI_MCP_ADMIN_PATH + "/list").setParamValue(params).build();
|
||||
HttpRestResult<String> restResult = clientHttpProxy.executeSyncHttpRequest(httpRequest);
|
||||
Result<Page<McpServerBasicInfo>> result = JacksonUtils.toObj(restResult.getData(),
|
||||
|
@ -86,12 +98,17 @@ public class NacosAiMaintainerServiceImpl implements AiMaintainerService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public McpServerDetailInfo getMcpServerDetail(String namespaceId, String mcpName, String version) throws NacosException {
|
||||
public McpServerDetailInfo getMcpServerDetail(String namespaceId, String mcpName, String version)
|
||||
throws NacosException {
|
||||
if (StringUtils.isBlank(namespaceId)) {
|
||||
namespaceId = AiConstants.Mcp.MCP_DEFAULT_NAMESPACE;
|
||||
}
|
||||
Map<String, String> params = new HashMap<>(1);
|
||||
params.put("mcpName", mcpName);
|
||||
params.put("version", version);
|
||||
params.put("namespaceId", namespaceId);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(namespaceId, mcpName);
|
||||
HttpRequest httpRequest = buildHttpRequestBuilder(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.AI_MCP_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> restResult = clientHttpProxy.executeSyncHttpRequest(httpRequest);
|
||||
Result<McpServerDetailInfo> result = JacksonUtils.toObj(restResult.getData(),
|
||||
|
@ -99,13 +116,17 @@ public class NacosAiMaintainerServiceImpl implements AiMaintainerService {
|
|||
});
|
||||
return result.getData();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean createMcpServer(String namespaceId, String mcpName, McpServerBasicInfo serverSpec, McpToolSpecification toolSpec,
|
||||
McpEndpointSpec endpointSpec) throws NacosException {
|
||||
public boolean createMcpServer(String namespaceId, String mcpName, McpServerBasicInfo serverSpec,
|
||||
McpToolSpecification toolSpec, McpEndpointSpec endpointSpec) throws NacosException {
|
||||
if (StringUtils.isBlank(namespaceId)) {
|
||||
namespaceId = AiConstants.Mcp.MCP_DEFAULT_NAMESPACE;
|
||||
}
|
||||
Map<String, String> params = buildFullParameters(serverSpec, toolSpec, endpointSpec);
|
||||
params.put("namespaceId", namespaceId);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.POST)
|
||||
RequestResource resource = buildRequestResource(namespaceId, mcpName);
|
||||
HttpRequest httpRequest = buildHttpRequestBuilder(resource).setHttpMethod(HttpMethod.POST)
|
||||
.setPath(Constants.AdminApiPath.AI_MCP_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> restResult = clientHttpProxy.executeSyncHttpRequest(httpRequest);
|
||||
Result<String> result = JacksonUtils.toObj(restResult.getData(), new TypeReference<Result<String>>() {
|
||||
|
@ -114,21 +135,25 @@ public class NacosAiMaintainerServiceImpl implements AiMaintainerService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean updateMcpServer(String namespaceId, String mcpName, boolean isLatest, McpServerBasicInfo serverSpec, McpToolSpecification toolSpec,
|
||||
McpEndpointSpec endpointSpec) throws NacosException {
|
||||
public boolean updateMcpServer(String namespaceId, String mcpName, boolean isLatest, McpServerBasicInfo serverSpec,
|
||||
McpToolSpecification toolSpec, McpEndpointSpec endpointSpec) throws NacosException {
|
||||
if (StringUtils.isBlank(namespaceId)) {
|
||||
namespaceId = AiConstants.Mcp.MCP_DEFAULT_NAMESPACE;
|
||||
}
|
||||
Map<String, String> params = buildFullParameters(serverSpec, toolSpec, endpointSpec);
|
||||
params.put("latest", String.valueOf(isLatest));
|
||||
params.put("namespaceId", namespaceId);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.PUT)
|
||||
RequestResource resource = buildRequestResource(namespaceId, mcpName);
|
||||
HttpRequest httpRequest = buildHttpRequestBuilder(resource).setHttpMethod(HttpMethod.PUT)
|
||||
.setPath(Constants.AdminApiPath.AI_MCP_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> restResult = clientHttpProxy.executeSyncHttpRequest(httpRequest);
|
||||
Result<String> result = JacksonUtils.toObj(restResult.getData(), new TypeReference<Result<String>>() {
|
||||
});
|
||||
return ErrorCode.SUCCESS.getCode().equals(result.getCode());
|
||||
}
|
||||
|
||||
private Map<String, String> buildFullParameters(McpServerBasicInfo serverSpec,
|
||||
McpToolSpecification toolSpec, McpEndpointSpec endpointSpec) {
|
||||
|
||||
private Map<String, String> buildFullParameters(McpServerBasicInfo serverSpec, McpToolSpecification toolSpec,
|
||||
McpEndpointSpec endpointSpec) {
|
||||
Map<String, String> params = new HashMap<>(4);
|
||||
params.put("mcpName", serverSpec.getName());
|
||||
params.put("serverSpecification", JacksonUtils.toJson(serverSpec));
|
||||
|
@ -143,14 +168,30 @@ public class NacosAiMaintainerServiceImpl implements AiMaintainerService {
|
|||
|
||||
@Override
|
||||
public boolean deleteMcpServer(String namespaceId, String mcpName) throws NacosException {
|
||||
if (StringUtils.isBlank(namespaceId)) {
|
||||
namespaceId = AiConstants.Mcp.MCP_DEFAULT_NAMESPACE;
|
||||
}
|
||||
Map<String, String> params = new HashMap<>(1);
|
||||
params.put("mcpName", mcpName);
|
||||
params.put("namespaceId", namespaceId);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.DELETE)
|
||||
RequestResource resource = buildRequestResource(namespaceId, mcpName);
|
||||
HttpRequest httpRequest = buildHttpRequestBuilder(resource).setHttpMethod(HttpMethod.DELETE)
|
||||
.setPath(Constants.AdminApiPath.AI_MCP_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> restResult = clientHttpProxy.executeSyncHttpRequest(httpRequest);
|
||||
Result<String> result = JacksonUtils.toObj(restResult.getData(), new TypeReference<Result<String>>() {
|
||||
});
|
||||
return ErrorCode.SUCCESS.getCode().equals(result.getCode());
|
||||
}
|
||||
|
||||
private RequestResource buildRequestResource(String namespaceId, String mcpName) {
|
||||
RequestResource.Builder builder = RequestResource.aiBuilder();
|
||||
builder.setNamespace(namespaceId);
|
||||
builder.setGroup(com.alibaba.nacos.api.common.Constants.DEFAULT_GROUP);
|
||||
builder.setResource(null == mcpName ? StringUtils.EMPTY : mcpName);
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
private HttpRequest.Builder buildHttpRequestBuilder(RequestResource resource) {
|
||||
return new HttpRequest.Builder().setResource(resource);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,6 +34,7 @@ import com.alibaba.nacos.common.utils.StringUtils;
|
|||
import com.alibaba.nacos.maintainer.client.constants.Constants;
|
||||
import com.alibaba.nacos.maintainer.client.core.AbstractCoreMaintainerService;
|
||||
import com.alibaba.nacos.maintainer.client.model.HttpRequest;
|
||||
import com.alibaba.nacos.plugin.auth.api.RequestResource;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
|
||||
import java.util.Collections;
|
||||
|
@ -59,7 +60,8 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("dataId", dataId);
|
||||
params.put("groupName", groupName);
|
||||
params.put("namespaceId", namespaceId);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(namespaceId, groupName, dataId);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.CONFIG_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<ConfigDetailInfo> result = JacksonUtils.toObj(httpRestResult.getData(),
|
||||
|
@ -98,7 +100,8 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("configTags", configTags);
|
||||
params.put("desc", desc);
|
||||
params.put("type", type);
|
||||
HttpRequest.Builder builder = new HttpRequest.Builder().setHttpMethod(HttpMethod.POST)
|
||||
RequestResource resource = buildRequestResource(namespaceId, groupName, dataId);
|
||||
HttpRequest.Builder builder = buildRequestWithResource(resource).setHttpMethod(HttpMethod.POST)
|
||||
.setPath(Constants.AdminApiPath.CONFIG_ADMIN_PATH).setParamValue(params);
|
||||
if (StringUtils.isNotBlank(betaIps)) {
|
||||
Map<String, String> headers = Collections.singletonMap("betaIps", betaIps);
|
||||
|
@ -117,7 +120,8 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("dataId", dataId);
|
||||
params.put("groupName", groupName);
|
||||
params.put("namespaceId", namespaceId);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.DELETE)
|
||||
RequestResource resource = buildRequestResource(namespaceId, groupName, dataId);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.DELETE)
|
||||
.setPath(Constants.AdminApiPath.CONFIG_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<Boolean> result = JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<Result<Boolean>>() {
|
||||
|
@ -136,8 +140,7 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
idStr.append(id);
|
||||
}
|
||||
params.put("ids", idStr.toString());
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.DELETE)
|
||||
HttpRequest httpRequest = buildRequestWithResource().setHttpMethod(HttpMethod.DELETE)
|
||||
.setPath(Constants.AdminApiPath.CONFIG_ADMIN_PATH + "/batch").setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<Boolean> result = JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<Result<Boolean>>() {
|
||||
|
@ -160,8 +163,8 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("appName", appName);
|
||||
params.put("pageNo", String.valueOf(pageNo));
|
||||
params.put("pageSize", String.valueOf(pageSize));
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(namespaceId, groupName, dataId);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.CONFIG_ADMIN_PATH + "/list").setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<Page<ConfigBasicInfo>> result = JacksonUtils.toObj(httpRestResult.getData(),
|
||||
|
@ -178,8 +181,8 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("groupName", groupName);
|
||||
params.put("namespaceId", namespaceId);
|
||||
params.put("aggregation", String.valueOf(aggregation));
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(namespaceId, groupName, dataId);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.CONFIG_ADMIN_PATH + "/listener").setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<ConfigListenerInfo> result = JacksonUtils.toObj(httpRestResult.getData(),
|
||||
|
@ -194,8 +197,8 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("dataId", dataId);
|
||||
params.put("groupName", groupName);
|
||||
params.put("namespaceId", namespaceId);
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.DELETE)
|
||||
RequestResource resource = buildRequestResource(namespaceId, groupName, dataId);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.DELETE)
|
||||
.setPath(Constants.AdminApiPath.CONFIG_ADMIN_PATH + "/beta").setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<Boolean> result = JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<Result<Boolean>>() {
|
||||
|
@ -209,8 +212,8 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("dataId", dataId);
|
||||
params.put("groupName", groupName);
|
||||
params.put("namespaceId", namespaceId);
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(namespaceId, groupName, dataId);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.CONFIG_ADMIN_PATH + "/beta").setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<ConfigGrayInfo> result = JacksonUtils.toObj(httpRestResult.getData(),
|
||||
|
@ -226,8 +229,8 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("namespaceId", namespaceId);
|
||||
params.put("srcUser", srcUser);
|
||||
params.put("policy", policy.toString());
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.POST)
|
||||
RequestResource resource = buildRequestResource(namespaceId, StringUtils.EMPTY, StringUtils.EMPTY);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.POST)
|
||||
.setPath(Constants.AdminApiPath.CONFIG_ADMIN_PATH + "/clone").setParamValue(params)
|
||||
.setBody(JacksonUtils.toJson(cloneInfos)).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
|
@ -246,8 +249,8 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("namespaceId", namespaceId);
|
||||
params.put("pageNo", String.valueOf(pageNo));
|
||||
params.put("pageSize", String.valueOf(pageSize));
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(namespaceId, groupName, dataId);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.CONFIG_HISTORY_ADMIN_PATH + "/list").setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<Page<ConfigHistoryBasicInfo>> result = JacksonUtils.toObj(httpRestResult.getData(),
|
||||
|
@ -264,8 +267,8 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("groupName", groupName);
|
||||
params.put("namespaceId", namespaceId);
|
||||
params.put("nid", String.valueOf(nid));
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(namespaceId, groupName, dataId);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.CONFIG_HISTORY_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<ConfigHistoryDetailInfo> result = JacksonUtils.toObj(httpRestResult.getData(),
|
||||
|
@ -282,8 +285,8 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("groupName", groupName);
|
||||
params.put("namespaceId", namespaceId);
|
||||
params.put("id", String.valueOf(id));
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(namespaceId, groupName, dataId);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.CONFIG_HISTORY_ADMIN_PATH + "/previous").setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<ConfigHistoryDetailInfo> result = JacksonUtils.toObj(httpRestResult.getData(),
|
||||
|
@ -296,8 +299,8 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
public List<ConfigBasicInfo> getConfigListByNamespace(String namespaceId) throws NacosException {
|
||||
Map<String, String> params = new HashMap<>(8);
|
||||
params.put("namespaceId", namespaceId);
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(namespaceId, StringUtils.EMPTY, StringUtils.EMPTY);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.CONFIG_HISTORY_ADMIN_PATH + "/configs").setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<List<ConfigBasicInfo>> result = JacksonUtils.toObj(httpRestResult.getData(),
|
||||
|
@ -308,7 +311,7 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
|
||||
@Override
|
||||
public String updateLocalCacheFromStore() throws NacosException {
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.POST)
|
||||
HttpRequest httpRequest = buildRequestWithResource().setHttpMethod(HttpMethod.POST)
|
||||
.setPath(Constants.AdminApiPath.CONFIG_OPS_ADMIN_PATH + "/localCache").build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<String> result = JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<Result<String>>() {
|
||||
|
@ -322,7 +325,7 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("logName", logName);
|
||||
params.put("logLevel", logLevel);
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.PUT)
|
||||
HttpRequest httpRequest = buildRequestWithResource().setHttpMethod(HttpMethod.PUT)
|
||||
.setPath(Constants.AdminApiPath.CONFIG_OPS_ADMIN_PATH + "/log").setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<String> result = JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<Result<String>>() {
|
||||
|
@ -338,8 +341,8 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("all", String.valueOf(all));
|
||||
params.put("namespaceId", namespaceId);
|
||||
params.put("aggregation", String.valueOf(aggregation));
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(namespaceId, StringUtils.EMPTY, StringUtils.EMPTY);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.CONFIG_LISTENER_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<ConfigListenerInfo> result = JacksonUtils.toObj(httpRestResult.getData(),
|
||||
|
@ -347,4 +350,21 @@ public class NacosConfigMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
});
|
||||
return result.getData();
|
||||
}
|
||||
|
||||
private HttpRequest.Builder buildRequestWithResource() {
|
||||
return new HttpRequest.Builder().setResource(
|
||||
RequestResource.configBuilder().setGroup(StringUtils.EMPTY).build());
|
||||
}
|
||||
|
||||
private HttpRequest.Builder buildRequestWithResource(RequestResource resource) {
|
||||
return new HttpRequest.Builder().setResource(resource);
|
||||
}
|
||||
|
||||
private RequestResource buildRequestResource(String namespaceId, String groupName, String dataId) {
|
||||
RequestResource.Builder builder = RequestResource.configBuilder();
|
||||
builder.setNamespace(namespaceId);
|
||||
builder.setGroup(groupName);
|
||||
builder.setResource(dataId);
|
||||
return builder.build();
|
||||
}
|
||||
}
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
package com.alibaba.nacos.maintainer.client.model;
|
||||
|
||||
import com.alibaba.nacos.plugin.auth.api.RequestResource;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -36,13 +38,16 @@ public class HttpRequest {
|
|||
|
||||
private String body;
|
||||
|
||||
private RequestResource resource;
|
||||
|
||||
public HttpRequest(String httpMethod, String path, Map<String, String> headers, Map<String, String> paramValues,
|
||||
String body) {
|
||||
String body, RequestResource resource) {
|
||||
this.httpMethod = httpMethod;
|
||||
this.path = path;
|
||||
this.headers = headers;
|
||||
this.paramValues = paramValues;
|
||||
this.body = body;
|
||||
this.resource = resource;
|
||||
}
|
||||
|
||||
public String getHttpMethod() {
|
||||
|
@ -85,6 +90,14 @@ public class HttpRequest {
|
|||
this.body = body;
|
||||
}
|
||||
|
||||
public RequestResource getResource() {
|
||||
return resource;
|
||||
}
|
||||
|
||||
public void setResource(RequestResource resource) {
|
||||
this.resource = resource;
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
|
||||
private String httpMethod;
|
||||
|
@ -97,6 +110,8 @@ public class HttpRequest {
|
|||
|
||||
private String body;
|
||||
|
||||
private RequestResource resource;
|
||||
|
||||
public Builder setHttpMethod(String httpMethod) {
|
||||
this.httpMethod = httpMethod;
|
||||
return this;
|
||||
|
@ -122,8 +137,13 @@ public class HttpRequest {
|
|||
return this;
|
||||
}
|
||||
|
||||
public Builder setResource(RequestResource resource) {
|
||||
this.resource = resource;
|
||||
return this;
|
||||
}
|
||||
|
||||
public HttpRequest build() {
|
||||
return new HttpRequest(httpMethod, path, headers, paramValues, body);
|
||||
return new HttpRequest(httpMethod, path, headers, paramValues, body, resource);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -43,6 +43,7 @@ import com.alibaba.nacos.maintainer.client.constants.Constants;
|
|||
import com.alibaba.nacos.maintainer.client.core.AbstractCoreMaintainerService;
|
||||
import com.alibaba.nacos.maintainer.client.model.HttpRequest;
|
||||
import com.alibaba.nacos.maintainer.client.utils.RequestUtil;
|
||||
import com.alibaba.nacos.plugin.auth.api.RequestResource;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -71,7 +72,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
public String createService(Service service) throws NacosException {
|
||||
service.validate();
|
||||
Map<String, String> params = RequestUtil.toParameters(service);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.POST)
|
||||
RequestResource resource = buildRequestResource(service);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.POST)
|
||||
.setPath(Constants.AdminApiPath.NAMING_SERVICE_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<String> result = JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<Result<String>>() {
|
||||
|
@ -83,7 +85,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
public String updateService(Service service) throws NacosException {
|
||||
service.validate();
|
||||
Map<String, String> params = RequestUtil.toParameters(service);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.PUT)
|
||||
RequestResource resource = buildRequestResource(service);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.PUT)
|
||||
.setPath(Constants.AdminApiPath.NAMING_SERVICE_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<String> result = JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<Result<String>>() {
|
||||
|
@ -95,7 +98,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
public String removeService(Service service) throws NacosException {
|
||||
service.validate();
|
||||
Map<String, String> params = RequestUtil.toParameters(service);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.DELETE)
|
||||
RequestResource resource = buildRequestResource(service);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.DELETE)
|
||||
.setPath(Constants.AdminApiPath.NAMING_SERVICE_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<String> result = JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<Result<String>>() {
|
||||
|
@ -107,7 +111,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
public ServiceDetailInfo getServiceDetail(Service service) throws NacosException {
|
||||
service.validate();
|
||||
Map<String, String> params = RequestUtil.toParameters(service);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(service);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.NAMING_SERVICE_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<ServiceDetailInfo> result = JacksonUtils.toObj(httpRestResult.getData(),
|
||||
|
@ -148,7 +153,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("ignoreEmptyService", String.valueOf(ignoreEmptyService));
|
||||
params.put("pageNo", String.valueOf(pageNo));
|
||||
params.put("pageSize", String.valueOf(pageSize));
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(namespaceId, null, null);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.NAMING_SERVICE_ADMIN_PATH + "/list").setParamValue(params).build();
|
||||
return getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
}
|
||||
|
@ -164,8 +170,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("pageNo", String.valueOf(pageNo));
|
||||
params.put("pageSize", String.valueOf(pageSize));
|
||||
params.put("aggregation", String.valueOf(aggregation));
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(service);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.NAMING_SERVICE_ADMIN_PATH + "/subscribers").setParamValue(params)
|
||||
.build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
|
@ -175,7 +181,7 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
|
||||
@Override
|
||||
public List<String> listSelectorTypes() throws NacosException {
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
HttpRequest httpRequest = buildRequestWithResource().setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.NAMING_SERVICE_ADMIN_PATH + "/selector/types").build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
return JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<List<String>>() {
|
||||
|
@ -187,7 +193,7 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
Map<String, String> params = new HashMap<>(8);
|
||||
params.put("onlyStatus", String.valueOf(onlyStatus));
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
HttpRequest httpRequest = buildRequestWithResource().setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.NAMING_OPS_ADMIN_PATH + "/metrics").setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<MetricsInfo> result = JacksonUtils.toObj(httpRestResult.getData(),
|
||||
|
@ -202,7 +208,7 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("logName", logName);
|
||||
params.put("logLevel", logLevel);
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.PUT)
|
||||
HttpRequest httpRequest = buildRequestWithResource().setHttpMethod(HttpMethod.PUT)
|
||||
.setPath(Constants.AdminApiPath.NAMING_OPS_ADMIN_PATH + "/log").setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<String> result = JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<Result<String>>() {
|
||||
|
@ -226,7 +232,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
PreservedMetadataKeys.IP_DELETE_TIMEOUT);
|
||||
}
|
||||
Map<String, String> params = RequestUtil.toParameters(service, instance);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.POST)
|
||||
RequestResource resource = buildRequestResource(service);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.POST)
|
||||
.setPath(Constants.AdminApiPath.NAMING_INSTANCE_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<String> result = JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<Result<String>>() {
|
||||
|
@ -248,7 +255,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
"If you want to de-register this ephemeral instance, please use the nacos-client which registered this instance.");
|
||||
}
|
||||
Map<String, String> params = RequestUtil.toParameters(service, instance);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.DELETE)
|
||||
RequestResource resource = buildRequestResource(service);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.DELETE)
|
||||
.setPath(Constants.AdminApiPath.NAMING_INSTANCE_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<String> result = JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<Result<String>>() {
|
||||
|
@ -262,7 +270,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
instance.validate();
|
||||
checkEphemeral(service, instance);
|
||||
Map<String, String> params = RequestUtil.toParameters(service, instance);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.PUT)
|
||||
RequestResource resource = buildRequestResource(service);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.PUT)
|
||||
.setPath(Constants.AdminApiPath.NAMING_INSTANCE_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<String> result = JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<Result<String>>() {
|
||||
|
@ -286,7 +295,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
}
|
||||
checkEphemeral(service, instances.get(0));
|
||||
Map<String, String> params = RequestUtil.toParameters(service, instances, newMetadata);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.PUT)
|
||||
RequestResource resource = buildRequestResource(service);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.PUT)
|
||||
.setPath(Constants.AdminApiPath.NAMING_INSTANCE_ADMIN_PATH + "/metadata/batch").setParamValue(params)
|
||||
.build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
|
@ -312,7 +322,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
}
|
||||
checkEphemeral(service, instances.get(0));
|
||||
Map<String, String> params = RequestUtil.toParameters(service, instances, newMetadata);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.DELETE)
|
||||
RequestResource resource = buildRequestResource(service);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.DELETE)
|
||||
.setPath(Constants.AdminApiPath.NAMING_INSTANCE_ADMIN_PATH + "/metadata/batch").setParamValue(params)
|
||||
.build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
|
@ -328,7 +339,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
instance.validate();
|
||||
checkEphemeral(service, instance);
|
||||
Map<String, String> params = RequestUtil.toParameters(service, instance);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.PUT)
|
||||
RequestResource resource = buildRequestResource(service);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.PUT)
|
||||
.setPath(Constants.AdminApiPath.NAMING_INSTANCE_ADMIN_PATH + "/partial").setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<String> result = JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<Result<String>>() {
|
||||
|
@ -349,7 +361,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("serviceName", service.getName());
|
||||
params.put("clusterName", clusterName);
|
||||
params.put("healthyOnly", String.valueOf(healthyOnly));
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(service);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.NAMING_INSTANCE_ADMIN_PATH + "/list").setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<List<Instance>> result = JacksonUtils.toObj(httpRestResult.getData(),
|
||||
|
@ -363,7 +376,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
service.validate();
|
||||
instance.validate();
|
||||
Map<String, String> params = RequestUtil.toParameters(service, instance);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(service);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.NAMING_INSTANCE_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<Instance> result = JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<Result<Instance>>() {
|
||||
|
@ -388,7 +402,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
LOGGER.warn("Only persistent instance with NONE health checker can be updated healthy statues.");
|
||||
params.put("ephemeral", String.valueOf(Boolean.FALSE));
|
||||
}
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.PUT)
|
||||
RequestResource resource = buildRequestResource(service);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.PUT)
|
||||
.setPath(Constants.AdminApiPath.NAMING_HEALTH_ADMIN_PATH + "/instance").setParamValue(params).build();
|
||||
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
|
@ -399,7 +414,7 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
|
||||
@Override
|
||||
public Map<String, AbstractHealthChecker> getHealthCheckers() throws NacosException {
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
HttpRequest httpRequest = buildRequestWithResource().setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.NAMING_HEALTH_ADMIN_PATH + "/checkers").build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
return JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<Map<String, AbstractHealthChecker>>() {
|
||||
|
@ -411,7 +426,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
service.validate();
|
||||
cluster.validate();
|
||||
Map<String, String> params = RequestUtil.toParameters(service, cluster);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.PUT)
|
||||
RequestResource resource = buildRequestResource(service);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.PUT)
|
||||
.setPath(Constants.AdminApiPath.NAMING_CLUSTER_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<String> result = JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<Result<String>>() {
|
||||
|
@ -421,7 +437,7 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
|
||||
@Override
|
||||
public List<String> getClientList() throws NacosException {
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
HttpRequest httpRequest = buildRequestWithResource().setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.NAMING_CLIENT_ADMIN_PATH + "/list").build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
return JacksonUtils.toObj(httpRestResult.getData(), new TypeReference<List<String>>() {
|
||||
|
@ -432,7 +448,7 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
public ClientSummaryInfo getClientDetail(String clientId) throws NacosException {
|
||||
Map<String, String> params = new HashMap<>(8);
|
||||
params.put("clientId", clientId);
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
HttpRequest httpRequest = buildRequestWithResource().setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.NAMING_CLIENT_ADMIN_PATH).setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
Result<ClientSummaryInfo> result = JacksonUtils.toObj(httpRestResult.getData(),
|
||||
|
@ -446,7 +462,7 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
Map<String, String> params = new HashMap<>(8);
|
||||
params.put("clientId", clientId);
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
HttpRequest httpRequest = buildRequestWithResource().setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.NAMING_CLIENT_ADMIN_PATH + "/publish/list").setParamValue(params)
|
||||
.build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
|
@ -461,7 +477,7 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
Map<String, String> params = new HashMap<>(8);
|
||||
params.put("clientId", clientId);
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
HttpRequest httpRequest = buildRequestWithResource().setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.NAMING_CLIENT_ADMIN_PATH + "/subscribe/list").setParamValue(params)
|
||||
.build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
|
@ -480,8 +496,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("serviceName", serviceName);
|
||||
params.put("ip", ip);
|
||||
params.put("port", String.valueOf(port));
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(namespaceId, groupName, serviceName);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.NAMING_CLIENT_ADMIN_PATH + "/service/publisher/list")
|
||||
.setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
|
@ -500,8 +516,8 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
params.put("serviceName", serviceName);
|
||||
params.put("ip", ip);
|
||||
params.put("port", String.valueOf(port));
|
||||
|
||||
HttpRequest httpRequest = new HttpRequest.Builder().setHttpMethod(HttpMethod.GET)
|
||||
RequestResource resource = buildRequestResource(namespaceId, groupName, serviceName);
|
||||
HttpRequest httpRequest = buildRequestWithResource(resource).setHttpMethod(HttpMethod.GET)
|
||||
.setPath(Constants.AdminApiPath.NAMING_CLIENT_ADMIN_PATH + "/service/subscriber/list")
|
||||
.setParamValue(params).build();
|
||||
HttpRestResult<String> httpRestResult = getClientHttpProxy().executeSyncHttpRequest(httpRequest);
|
||||
|
@ -510,4 +526,25 @@ public class NacosNamingMaintainerServiceImpl extends AbstractCoreMaintainerServ
|
|||
});
|
||||
return result.getData();
|
||||
}
|
||||
|
||||
private HttpRequest.Builder buildRequestWithResource() {
|
||||
return new HttpRequest.Builder().setResource(
|
||||
RequestResource.namingBuilder().setResource(StringUtils.EMPTY).build());
|
||||
}
|
||||
|
||||
private HttpRequest.Builder buildRequestWithResource(RequestResource resource) {
|
||||
return new HttpRequest.Builder().setResource(resource);
|
||||
}
|
||||
|
||||
private RequestResource buildRequestResource(Service service) {
|
||||
return buildRequestResource(service.getNamespaceId(), service.getGroupName(), service.getName());
|
||||
}
|
||||
|
||||
private RequestResource buildRequestResource(String namespaceId, String groupName, String serviceName) {
|
||||
RequestResource.Builder builder = RequestResource.namingBuilder();
|
||||
builder.setNamespace(namespaceId);
|
||||
builder.setGroup(groupName);
|
||||
builder.setResource(serviceName);
|
||||
return builder.build();
|
||||
}
|
||||
}
|
|
@ -73,7 +73,7 @@ public class ClientHttpProxy implements Closeable {
|
|||
|
||||
public ClientHttpProxy(Properties properties) throws NacosException {
|
||||
initServerListManager(properties);
|
||||
initClientAuthService();
|
||||
initClientAuthService(properties);
|
||||
initScheduledExecutor(properties);
|
||||
}
|
||||
|
||||
|
@ -82,9 +82,10 @@ public class ClientHttpProxy implements Closeable {
|
|||
serverListManager.start();
|
||||
}
|
||||
|
||||
private void initClientAuthService() {
|
||||
private void initClientAuthService(Properties properties) {
|
||||
clientAuthPluginManager = new ClientAuthPluginManager();
|
||||
clientAuthPluginManager.init(serverListManager.getServerList(), nacosRestTemplate);
|
||||
login(properties);
|
||||
}
|
||||
|
||||
private void initScheduledExecutor(Properties properties) {
|
||||
|
@ -166,7 +167,7 @@ public class ClientHttpProxy implements Closeable {
|
|||
.setReadTimeOutMillis(Long.valueOf(readTimeoutMs).intValue())
|
||||
.setConTimeOutMillis(Long.valueOf(connectTimeoutMs).intValue()).build();
|
||||
Header httpHeaders = Header.newInstance();
|
||||
addAuthHeader(httpHeaders);
|
||||
addAuthHeader(httpHeaders, request.getResource());
|
||||
if (headers != null) {
|
||||
httpHeaders.addAll(headers);
|
||||
}
|
||||
|
@ -191,10 +192,10 @@ public class ClientHttpProxy implements Closeable {
|
|||
}
|
||||
}
|
||||
|
||||
private void addAuthHeader(Header header) {
|
||||
private void addAuthHeader(Header header, RequestResource resource) {
|
||||
clientAuthPluginManager.getAuthServiceSpiImplSet().forEach(clientAuthService -> {
|
||||
LoginIdentityContext loginIdentityContext = clientAuthService.getLoginIdentityContext(
|
||||
new RequestResource());
|
||||
null == resource ? new RequestResource() : resource);
|
||||
for (String key : loginIdentityContext.getAllKey()) {
|
||||
header.addParam(key, loginIdentityContext.getParameter(key));
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ import com.alibaba.nacos.common.http.client.NacosRestTemplate;
|
|||
import com.alibaba.nacos.maintainer.client.address.DefaultServerListManager;
|
||||
import com.alibaba.nacos.maintainer.client.model.HttpRequest;
|
||||
import com.alibaba.nacos.maintainer.client.utils.ParamUtil;
|
||||
import com.alibaba.nacos.plugin.auth.api.RequestResource;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
@ -45,6 +46,8 @@ import static org.mockito.Mockito.when;
|
|||
|
||||
public class ClientHttpProxyTest {
|
||||
|
||||
private static final RequestResource REQUEST_RESOURCE = new RequestResource();
|
||||
|
||||
private ClientHttpProxy clientHttpProxy;
|
||||
|
||||
private DefaultServerListManager mockServerListManager;
|
||||
|
@ -90,7 +93,7 @@ public class ClientHttpProxyTest {
|
|||
mockResult.setData("Success");
|
||||
when(mockNacosRestTemplate.get(anyString(), any(), any(), any(), eq(String.class))).thenReturn(mockResult);
|
||||
|
||||
HttpRequest request = new HttpRequest("GET", "/test", new HashMap<>(), new HashMap<>(), null);
|
||||
HttpRequest request = new HttpRequest("GET", "/test", new HashMap<>(), new HashMap<>(), null, REQUEST_RESOURCE);
|
||||
|
||||
HttpRestResult<String> result = clientHttpProxy.executeSyncHttpRequest(request);
|
||||
|
||||
|
@ -115,7 +118,7 @@ public class ClientHttpProxyTest {
|
|||
when(mockNacosRestTemplate.get(anyString(), any(), any(), any(), eq(String.class))).thenReturn(
|
||||
mockFailureResult).thenReturn(mockSuccessResult);
|
||||
|
||||
HttpRequest request = new HttpRequest("GET", "/test", new HashMap<>(), new HashMap<>(), null);
|
||||
HttpRequest request = new HttpRequest("GET", "/test", new HashMap<>(), new HashMap<>(), null, REQUEST_RESOURCE);
|
||||
|
||||
HttpRestResult<String> result = clientHttpProxy.executeSyncHttpRequest(request);
|
||||
|
||||
|
@ -138,7 +141,7 @@ public class ClientHttpProxyTest {
|
|||
when(mockNacosRestTemplate.get(anyString(), any(), any(), any(), eq(String.class))).thenThrow(
|
||||
new RuntimeException("Mock")).thenReturn(mockSuccessResult);
|
||||
|
||||
HttpRequest request = new HttpRequest("GET", "/test", new HashMap<>(), new HashMap<>(), null);
|
||||
HttpRequest request = new HttpRequest("GET", "/test", new HashMap<>(), new HashMap<>(), null, REQUEST_RESOURCE);
|
||||
|
||||
HttpRestResult<String> result = clientHttpProxy.executeSyncHttpRequest(request);
|
||||
|
||||
|
@ -157,7 +160,7 @@ public class ClientHttpProxyTest {
|
|||
when(mockNacosRestTemplate.get(anyString(), any(), any(), any(), eq(String.class))).thenThrow(
|
||||
new RuntimeException("Mock"));
|
||||
|
||||
HttpRequest request = new HttpRequest("GET", "/test", new HashMap<>(), new HashMap<>(), null);
|
||||
HttpRequest request = new HttpRequest("GET", "/test", new HashMap<>(), new HashMap<>(), null, REQUEST_RESOURCE);
|
||||
|
||||
assertThrows(NacosException.class, () -> clientHttpProxy.executeSyncHttpRequest(request),
|
||||
"No available server after 3 retries, last tried server: localhost:8848");
|
||||
|
@ -175,7 +178,7 @@ public class ClientHttpProxyTest {
|
|||
when(mockNacosRestTemplate.get(anyString(), any(), any(), any(), eq(String.class))).thenReturn(
|
||||
mockFailureResult);
|
||||
|
||||
HttpRequest request = new HttpRequest("GET", "/test", new HashMap<>(), new HashMap<>(), null);
|
||||
HttpRequest request = new HttpRequest("GET", "/test", new HashMap<>(), new HashMap<>(), null, REQUEST_RESOURCE);
|
||||
|
||||
Exception exception = assertThrows(NacosException.class, () -> {
|
||||
clientHttpProxy.executeSyncHttpRequest(request);
|
||||
|
@ -197,7 +200,7 @@ public class ClientHttpProxyTest {
|
|||
when(mockNacosRestTemplate.get(anyString(), any(), any(), any(), eq(String.class))).thenReturn(
|
||||
mockFailureResult);
|
||||
|
||||
HttpRequest request = new HttpRequest("GET", "/test", new HashMap<>(), new HashMap<>(), null);
|
||||
HttpRequest request = new HttpRequest("GET", "/test", new HashMap<>(), new HashMap<>(), null, REQUEST_RESOURCE);
|
||||
|
||||
Exception exception = assertThrows(NacosException.class, () -> {
|
||||
clientHttpProxy.executeSyncHttpRequest(request);
|
||||
|
@ -222,7 +225,7 @@ public class ClientHttpProxyTest {
|
|||
when(mockNacosRestTemplate.get(anyString(), any(), any(), any(), eq(String.class))).thenReturn(
|
||||
mockFailureResult).thenReturn(mockSuccessResult);
|
||||
|
||||
HttpRequest request = new HttpRequest("GET", "/test", new HashMap<>(), new HashMap<>(), null);
|
||||
HttpRequest request = new HttpRequest("GET", "/test", new HashMap<>(), new HashMap<>(), null, REQUEST_RESOURCE);
|
||||
|
||||
HttpRestResult<String> result = clientHttpProxy.executeSyncHttpRequest(request);
|
||||
|
||||
|
@ -241,7 +244,8 @@ public class ClientHttpProxyTest {
|
|||
mockSuccessResult.setData("Success");
|
||||
when(mockNacosRestTemplate.postJson(anyString(), any(), any(), any(), eq(String.class))).thenReturn(
|
||||
mockSuccessResult);
|
||||
HttpRequest request = new HttpRequest("POST", "/test", new HashMap<>(), new HashMap<>(), "{\"key\":\"test\"}");
|
||||
HttpRequest request = new HttpRequest("POST", "/test", new HashMap<>(), new HashMap<>(), "{\"key\":\"test\"}",
|
||||
REQUEST_RESOURCE);
|
||||
HttpRestResult<String> result = clientHttpProxy.executeSyncHttpRequest(request);
|
||||
assertNotNull(result);
|
||||
assertEquals(200, result.getCode());
|
||||
|
@ -256,7 +260,8 @@ public class ClientHttpProxyTest {
|
|||
mockSuccessResult.setData("Success");
|
||||
when(mockNacosRestTemplate.postForm(anyString(), any(HttpClientConfig.class), any(), any(),
|
||||
eq(String.class))).thenReturn(mockSuccessResult);
|
||||
HttpRequest request = new HttpRequest("POST", "/test", new HashMap<>(), new HashMap<>(), null);
|
||||
HttpRequest request = new HttpRequest("POST", "/test", new HashMap<>(), new HashMap<>(), null,
|
||||
REQUEST_RESOURCE);
|
||||
HttpRestResult<String> result = clientHttpProxy.executeSyncHttpRequest(request);
|
||||
assertNotNull(result);
|
||||
assertEquals(200, result.getCode());
|
||||
|
@ -271,7 +276,7 @@ public class ClientHttpProxyTest {
|
|||
mockSuccessResult.setData("Success");
|
||||
when(mockNacosRestTemplate.putForm(anyString(), any(HttpClientConfig.class), any(), any(),
|
||||
eq(String.class))).thenReturn(mockSuccessResult);
|
||||
HttpRequest request = new HttpRequest("PUT", "/test", new HashMap<>(), new HashMap<>(), null);
|
||||
HttpRequest request = new HttpRequest("PUT", "/test", new HashMap<>(), new HashMap<>(), null, REQUEST_RESOURCE);
|
||||
HttpRestResult<String> result = clientHttpProxy.executeSyncHttpRequest(request);
|
||||
assertNotNull(result);
|
||||
assertEquals(200, result.getCode());
|
||||
|
@ -286,7 +291,8 @@ public class ClientHttpProxyTest {
|
|||
mockSuccessResult.setData("Success");
|
||||
when(mockNacosRestTemplate.delete(anyString(), any(HttpClientConfig.class), any(), any(),
|
||||
eq(String.class))).thenReturn(mockSuccessResult);
|
||||
HttpRequest request = new HttpRequest("DELETE", "/test", new HashMap<>(), new HashMap<>(), null);
|
||||
HttpRequest request = new HttpRequest("DELETE", "/test", new HashMap<>(), new HashMap<>(), null,
|
||||
REQUEST_RESOURCE);
|
||||
HttpRestResult<String> result = clientHttpProxy.executeSyncHttpRequest(request);
|
||||
assertNotNull(result);
|
||||
assertEquals(200, result.getCode());
|
||||
|
@ -296,7 +302,8 @@ public class ClientHttpProxyTest {
|
|||
@Test
|
||||
void testOtherHttpMethod() throws Exception {
|
||||
when(mockServerListManager.getCurrentServer()).thenReturn("http://127.0.0.1:8848");
|
||||
HttpRequest request = new HttpRequest("PATCH", "/test", new HashMap<>(), new HashMap<>(), null);
|
||||
HttpRequest request = new HttpRequest("PATCH", "/test", new HashMap<>(), new HashMap<>(), null,
|
||||
REQUEST_RESOURCE);
|
||||
assertThrows(NacosException.class, () -> clientHttpProxy.executeSyncHttpRequest(request));
|
||||
|
||||
}
|
||||
|
|
|
@ -105,6 +105,17 @@ public class RequestResource {
|
|||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create new AI request resource builder.
|
||||
*
|
||||
* @return ai request resource builder
|
||||
*/
|
||||
public static Builder aiBuilder() {
|
||||
Builder result = new Builder();
|
||||
result.setType(SignType.AI);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
|
||||
private String type;
|
||||
|
|
Loading…
Reference in New Issue