diff --git a/clients/naming_client/naming_grpc/naming_grpc_proxy.go b/clients/naming_client/naming_grpc/naming_grpc_proxy.go index 9bfaf5d3..a41b4555 100644 --- a/clients/naming_client/naming_grpc/naming_grpc_proxy.go +++ b/clients/naming_client/naming_grpc/naming_grpc_proxy.go @@ -18,7 +18,6 @@ package naming_grpc import ( "context" - "github.com/nacos-group/nacos-sdk-go/v2/common/security" "time" "github.com/nacos-group/nacos-sdk-go/v2/clients/naming_client/naming_cache" @@ -29,6 +28,7 @@ import ( "github.com/nacos-group/nacos-sdk-go/v2/common/remote/rpc" "github.com/nacos-group/nacos-sdk-go/v2/common/remote/rpc/rpc_request" "github.com/nacos-group/nacos-sdk-go/v2/common/remote/rpc/rpc_response" + "github.com/nacos-group/nacos-sdk-go/v2/common/security" "github.com/nacos-group/nacos-sdk-go/v2/inner/uuid" "github.com/nacos-group/nacos-sdk-go/v2/model" "github.com/nacos-group/nacos-sdk-go/v2/util" diff --git a/common/constant/const.go b/common/constant/const.go index 4b8c36bc..c04eb75a 100644 --- a/common/constant/const.go +++ b/common/constant/const.go @@ -27,84 +27,95 @@ const ( UNKNOWN_KMS_VERSION KMSVersion = "UNKNOWN_KMS_VERSION" ) const ( - KEY_USERNAME = "username" - KEY_PASSWORD = "password" - KEY_ENDPOINT = "endpoint" - KEY_NAME_SPACE = "namespace" - KEY_ACCESS_KEY = "accessKey" - KEY_SECRET_KEY = "secretKey" - KEY_SERVER_ADDR = "serverAddr" - KEY_CONTEXT_PATH = "contextPath" - KEY_ENCODE = "encode" - KEY_DATA_ID = "dataId" - KEY_GROUP = "group" - KEY_TENANT = "tenant" - KEY_DESC = "desc" - KEY_APP_NAME = "appName" - KEY_CONTENT = "content" - KEY_TIMEOUT_MS = "timeoutMs" - KEY_LISTEN_INTERVAL = "listenInterval" - KEY_SERVER_CONFIGS = "serverConfigs" - KEY_CLIENT_CONFIG = "clientConfig" - KEY_TOKEN = "token" - KEY_ACCESS_TOKEN = "accessToken" - KEY_TOKEN_TTL = "tokenTtl" - KEY_GLOBAL_ADMIN = "globalAdmin" - KEY_TOKEN_REFRESH_WINDOW = "tokenRefreshWindow" - WEB_CONTEXT = "/nacos" - CONFIG_BASE_PATH = "/v1/cs" - CONFIG_PATH = CONFIG_BASE_PATH + "/configs" - CONFIG_AGG_PATH = "/datum.do" - CONFIG_LISTEN_PATH = CONFIG_BASE_PATH + "/configs/listener" - SERVICE_BASE_PATH = "/v1/ns" - SERVICE_PATH = SERVICE_BASE_PATH + "/instance" - SERVICE_INFO_PATH = SERVICE_BASE_PATH + "/service" - SERVICE_SUBSCRIBE_PATH = SERVICE_PATH + "/list" - NAMESPACE_PATH = "/v1/console/namespaces" - SPLIT_CONFIG = string(rune(1)) - SPLIT_CONFIG_INNER = string(rune(2)) - KEY_LISTEN_CONFIGS = "Listening-Configs" - KEY_SERVICE_NAME = "serviceName" - KEY_IP = "ip" - KEY_PORT = "port" - KEY_WEIGHT = "weight" - KEY_ENABLE = "enable" - KEY_HEALTHY = "healthy" - KEY_METADATA = "metadata" - KEY_CLUSTER_NAME = "clusterName" - KEY_CLUSTER = "cluster" - KEY_BEAT = "beat" - KEY_DOM = "dom" - DEFAULT_CONTEXT_PATH = "/nacos" - CLIENT_VERSION = "Nacos-Go-Client:v2.2.7" - REQUEST_DOMAIN_RETRY_TIME = 3 - SERVICE_INFO_SPLITER = "@@" - CONFIG_INFO_SPLITER = "@@" - DEFAULT_NAMESPACE_ID = "public" - DEFAULT_GROUP = "DEFAULT_GROUP" - NAMING_INSTANCE_ID_SPLITTER = "#" - DefaultClientErrorCode = "SDK.NacosError" - DEFAULT_SERVER_SCHEME = "http" - HTTPS_SERVER_SCHEME = "https" - LABEL_SOURCE = "source" - LABEL_SOURCE_SDK = "sdk" - LABEL_MODULE = "module" - LABEL_MODULE_CONFIG = "config" - LABEL_MODULE_NAMING = "naming" - RESPONSE_CODE_SUCCESS = 200 - UN_REGISTER = 301 - KEEP_ALIVE_TIME = 5 - DEFAULT_TIMEOUT_MILLS = 3000 - ALL_SYNC_INTERNAL = 5 * time.Minute - CLIENT_APPNAME_HEADER = "Client-AppName" - APPNAME_HEADER = "AppName" - CLIENT_REQUEST_TS_HEADER = "Client-RequestTS" - CLIENT_REQUEST_TOKEN_HEADER = "Client-RequestToken" - EX_CONFIG_INFO = "exConfigInfo" - CHARSET_KEY = "charset" - LOG_FILE_NAME = "nacos-sdk.log" - HTTPS_SERVER_PORT = 443 - GRPC = "grpc" - RpcPortOffset = 1000 - MSE_KMSv1_DEFAULT_KEY_ID = "alias/acs/mse" + KEY_USERNAME = "username" + KEY_PASSWORD = "password" + KEY_ENDPOINT = "endpoint" + KEY_NAME_SPACE = "namespace" + KEY_ACCESS_KEY = "accessKey" + KEY_SECRET_KEY = "secretKey" + KEY_SERVER_ADDR = "serverAddr" + KEY_CONTEXT_PATH = "contextPath" + KEY_ENCODE = "encode" + KEY_DATA_ID = "dataId" + KEY_GROUP = "group" + KEY_TENANT = "tenant" + KEY_DESC = "desc" + KEY_APP_NAME = "appName" + KEY_CONTENT = "content" + KEY_TIMEOUT_MS = "timeoutMs" + KEY_LISTEN_INTERVAL = "listenInterval" + KEY_SERVER_CONFIGS = "serverConfigs" + KEY_CLIENT_CONFIG = "clientConfig" + KEY_TOKEN = "token" + KEY_ACCESS_TOKEN = "accessToken" + KEY_TOKEN_TTL = "tokenTtl" + KEY_GLOBAL_ADMIN = "globalAdmin" + KEY_TOKEN_REFRESH_WINDOW = "tokenRefreshWindow" + WEB_CONTEXT = "/nacos" + CONFIG_BASE_PATH = "/v1/cs" + CONFIG_PATH = CONFIG_BASE_PATH + "/configs" + CONFIG_AGG_PATH = "/datum.do" + CONFIG_LISTEN_PATH = CONFIG_BASE_PATH + "/configs/listener" + SERVICE_BASE_PATH = "/v1/ns" + SERVICE_PATH = SERVICE_BASE_PATH + "/instance" + SERVICE_INFO_PATH = SERVICE_BASE_PATH + "/service" + SERVICE_SUBSCRIBE_PATH = SERVICE_PATH + "/list" + NAMESPACE_PATH = "/v1/console/namespaces" + SPLIT_CONFIG = string(rune(1)) + SPLIT_CONFIG_INNER = string(rune(2)) + KEY_LISTEN_CONFIGS = "Listening-Configs" + KEY_SERVICE_NAME = "serviceName" + KEY_IP = "ip" + KEY_PORT = "port" + KEY_WEIGHT = "weight" + KEY_ENABLE = "enable" + KEY_HEALTHY = "healthy" + KEY_METADATA = "metadata" + KEY_CLUSTER_NAME = "clusterName" + KEY_CLUSTER = "cluster" + KEY_BEAT = "beat" + KEY_DOM = "dom" + DEFAULT_CONTEXT_PATH = "/nacos" + CLIENT_VERSION = "Nacos-Go-Client:v2.2.7" + REQUEST_DOMAIN_RETRY_TIME = 3 + SERVICE_INFO_SPLITER = "@@" + CONFIG_INFO_SPLITER = "@@" + DEFAULT_NAMESPACE_ID = "public" + DEFAULT_GROUP = "DEFAULT_GROUP" + NAMING_INSTANCE_ID_SPLITTER = "#" + DefaultClientErrorCode = "SDK.NacosError" + DEFAULT_SERVER_SCHEME = "http" + HTTPS_SERVER_SCHEME = "https" + LABEL_SOURCE = "source" + LABEL_SOURCE_SDK = "sdk" + LABEL_MODULE = "module" + LABEL_MODULE_CONFIG = "config" + LABEL_MODULE_NAMING = "naming" + RESPONSE_CODE_SUCCESS = 200 + UN_REGISTER = 301 + KEEP_ALIVE_TIME = 5 + DEFAULT_TIMEOUT_MILLS = 3000 + ALL_SYNC_INTERNAL = 5 * time.Minute + CLIENT_APPNAME_HEADER = "Client-AppName" + APPNAME_HEADER = "AppName" + CLIENT_REQUEST_TS_HEADER = "Client-RequestTS" + CLIENT_REQUEST_TOKEN_HEADER = "Client-RequestToken" + EX_CONFIG_INFO = "exConfigInfo" + CHARSET_KEY = "charset" + LOG_FILE_NAME = "nacos-sdk.log" + HTTPS_SERVER_PORT = 443 + GRPC = "grpc" + RpcPortOffset = 1000 + MSE_KMSv1_DEFAULT_KEY_ID = "alias/acs/mse" + CONFIG_PUBLISH_REQUEST_NAME = "ConfigPublishRequest" + CONFIG_QUERY_REQUEST_NAME = "ConfigQueryRequest" + CONFIG_REMOVE_REQUEST_NAME = "ConfigRemoveRequest" + INSTANCE_REQUEST_NAME = "InstanceRequest" + BATCH_INSTANCE_REQUEST_NAME = "BatchInstanceRequest" + SERVICE_LIST_REQUEST_NAME = "ServiceListRequest" + SERVICE_QUERY_REQUEST_NAME = "ServiceQueryRequest" + SUBSCRIBE_SERVICE_REQUEST_NAME = "SubscribeServiceRequest" + NOTIFY_SUBSCRIBE_REQUEST_NAME = "NotifySubscribeRequest" + CONFIG_BATCH_LISTEN_REQUEST_NAME = "ConfigBatchListenRequest" + CONFIG_CHANGE_NOTIFY_REQUEST_NAME = "ConfigChangeNotifyRequest" ) diff --git a/common/nacos_server/nacos_server_test.go b/common/nacos_server/nacos_server_test.go index 704198e6..6363f941 100644 --- a/common/nacos_server/nacos_server_test.go +++ b/common/nacos_server/nacos_server_test.go @@ -18,9 +18,10 @@ package nacos_server import ( "context" + "testing" + "github.com/nacos-group/nacos-sdk-go/v2/common/http_agent" "github.com/nacos-group/nacos-sdk-go/v2/common/security" - "testing" "github.com/nacos-group/nacos-sdk-go/v2/common/constant" "github.com/stretchr/testify/assert" @@ -70,7 +71,7 @@ func TestNacosServer_InjectSignForNamingHttp_NoAk(t *testing.T) { t.FailNow() } - param := make(map[string]string) + param := make(map[string]string, 4) param["serviceName"] = "s-0" param["groupName"] = "g-0" server.InjectSecurityInfo(param, security.BuildNamingResource(param["namespaceId"], param["groupName"], param["serviceName"])) @@ -89,7 +90,7 @@ func TestNacosServer_InjectSignForNamingHttp_WithGroup(t *testing.T) { t.FailNow() } - param := make(map[string]string) + param := make(map[string]string, 4) param["serviceName"] = "s-0" param["groupName"] = "g-0" server.InjectSecurityInfo(param, security.BuildNamingResource(param["namespaceId"], param["groupName"], param["serviceName"])) @@ -109,7 +110,7 @@ func TestNacosServer_InjectSignForNamingHttp_WithoutGroup(t *testing.T) { t.FailNow() } - param := make(map[string]string) + param := make(map[string]string, 4) param["serviceName"] = "s-0" server.InjectSecurityInfo(param, security.BuildNamingResource(param["namespaceId"], param["groupName"], param["serviceName"])) assert.Equal(t, "123", param["ak"]) @@ -129,7 +130,7 @@ func TestNacosServer_InjectSignForNamingHttp_WithoutServiceName(t *testing.T) { t.FailNow() } - param := make(map[string]string) + param := make(map[string]string, 4) param["groupName"] = "g-0" server.InjectSecurityInfo(param, security.BuildNamingResource(param["namespaceId"], param["groupName"], param["serviceName"])) assert.Equal(t, "123", param["ak"]) @@ -149,7 +150,7 @@ func TestNacosServer_InjectSignForNamingHttp_WithoutServiceNameAndGroup(t *testi t.FailNow() } - param := make(map[string]string) + param := make(map[string]string, 4) server.InjectSecurityInfo(param, security.BuildNamingResource(param["namespaceId"], param["serviceName"], param["groupName"])) assert.Equal(t, "123", param["ak"]) assert.NotContains(t, param["data"], "@@") diff --git a/common/remote/rpc/rpc_request/config_request.go b/common/remote/rpc/rpc_request/config_request.go index 49343587..14562d9b 100644 --- a/common/remote/rpc/rpc_request/config_request.go +++ b/common/remote/rpc/rpc_request/config_request.go @@ -16,7 +16,10 @@ package rpc_request -import "github.com/nacos-group/nacos-sdk-go/v2/model" +import ( + "github.com/nacos-group/nacos-sdk-go/v2/common/constant" + "github.com/nacos-group/nacos-sdk-go/v2/model" +) type ConfigRequest struct { *Request @@ -51,7 +54,7 @@ func (r *ConfigRequest) GetTenant() string { return r.Tenant } -//request of listening a batch of configs. +// request of listening a batch of configs. type ConfigBatchListenRequest struct { *ConfigRequest Listen bool `json:"listen"` @@ -67,7 +70,7 @@ func NewConfigBatchListenRequest(cacheLen int) *ConfigBatchListenRequest { } func (r *ConfigBatchListenRequest) GetRequestType() string { - return "ConfigBatchListenRequest" + return constant.CONFIG_BATCH_LISTEN_REQUEST_NAME } type ConfigChangeNotifyRequest struct { @@ -79,7 +82,7 @@ func NewConfigChangeNotifyRequest(group, dataId, tenant string) *ConfigChangeNot } func (r *ConfigChangeNotifyRequest) GetRequestType() string { - return "ConfigChangeNotifyRequest" + return constant.CONFIG_CHANGE_NOTIFY_REQUEST_NAME } type ConfigQueryRequest struct { @@ -92,7 +95,7 @@ func NewConfigQueryRequest(group, dataId, tenant string) *ConfigQueryRequest { } func (r *ConfigQueryRequest) GetRequestType() string { - return "ConfigQueryRequest" + return constant.CONFIG_QUERY_REQUEST_NAME } type ConfigPublishRequest struct { @@ -108,7 +111,7 @@ func NewConfigPublishRequest(group, dataId, tenant, content, casMd5 string) *Con } func (r *ConfigPublishRequest) GetRequestType() string { - return "ConfigPublishRequest" + return constant.CONFIG_PUBLISH_REQUEST_NAME } type ConfigRemoveRequest struct { @@ -120,5 +123,5 @@ func NewConfigRemoveRequest(group, dataId, tenant string) *ConfigRemoveRequest { } func (r *ConfigRemoveRequest) GetRequestType() string { - return "ConfigRemoveRequest" + return constant.CONFIG_REMOVE_REQUEST_NAME } diff --git a/common/remote/rpc/rpc_request/naming_request.go b/common/remote/rpc/rpc_request/naming_request.go index c54e943f..0f5bc12b 100644 --- a/common/remote/rpc/rpc_request/naming_request.go +++ b/common/remote/rpc/rpc_request/naming_request.go @@ -21,6 +21,7 @@ import ( "strconv" "time" + "github.com/nacos-group/nacos-sdk-go/v2/common/constant" "github.com/nacos-group/nacos-sdk-go/v2/model" ) @@ -68,7 +69,7 @@ func NewInstanceRequest(namespace, serviceName, groupName, Type string, instance } func (r *InstanceRequest) GetRequestType() string { - return "InstanceRequest" + return constant.INSTANCE_REQUEST_NAME } type BatchInstanceRequest struct { @@ -86,7 +87,7 @@ func NewBatchInstanceRequest(namespace, serviceName, groupName, Type string, ins } func (r *BatchInstanceRequest) GetRequestType() string { - return "BatchInstanceRequest" + return constant.BATCH_INSTANCE_REQUEST_NAME } type NotifySubscriberRequest struct { @@ -95,7 +96,7 @@ type NotifySubscriberRequest struct { } func (r *NotifySubscriberRequest) GetRequestType() string { - return "NotifySubscriberRequest" + return constant.NOTIFY_SUBSCRIBE_REQUEST_NAME } type ServiceListRequest struct { @@ -115,7 +116,7 @@ func NewServiceListRequest(namespace, serviceName, groupName string, pageNo, pag } func (r *ServiceListRequest) GetRequestType() string { - return "ServiceListRequest" + return constant.SERVICE_LIST_REQUEST_NAME } type SubscribeServiceRequest struct { @@ -133,7 +134,7 @@ func NewSubscribeServiceRequest(namespace, serviceName, groupName, clusters stri } func (r *SubscribeServiceRequest) GetRequestType() string { - return "SubscribeServiceRequest" + return constant.SUBSCRIBE_SERVICE_REQUEST_NAME } type ServiceQueryRequest struct { @@ -153,5 +154,5 @@ func NewServiceQueryRequest(namespace, serviceName, groupName, cluster string, h } func (r *ServiceQueryRequest) GetRequestType() string { - return "ServiceQueryRequest" + return constant.SERVICE_QUERY_REQUEST_NAME } diff --git a/common/security/nacos_auth_client.go b/common/security/nacos_auth_client.go index 8f7d133d..35011e2d 100644 --- a/common/security/nacos_auth_client.go +++ b/common/security/nacos_auth_client.go @@ -50,7 +50,7 @@ func (ac *NacosAuthClient) GetAccessToken() string { } func (ac *NacosAuthClient) GetSecurityInfo(resource RequestResource) map[string]string { - var securityInfo = make(map[string]string) + var securityInfo = make(map[string]string, 4) v := ac.accessToken.Load() if v != nil { securityInfo[constant.KEY_ACCESS_TOKEN] = v.(string) diff --git a/common/security/ram_auth_client.go b/common/security/ram_auth_client.go index bc5483ab..0750137c 100644 --- a/common/security/ram_auth_client.go +++ b/common/security/ram_auth_client.go @@ -45,8 +45,8 @@ func NewRamAuthClient(clientCfg constant.ClientConfig) *RamAuthClient { }, } injectors := map[string]ResourceInjector{ - "naming": &NamingResourceInjector{}, - "config": &ConfigResourceInjector{}, + REQUEST_TYPE_NAMING: &NamingResourceInjector{}, + REQUEST_TYPE_CONFIG: &ConfigResourceInjector{}, } return &RamAuthClient{ clientConfig: clientCfg, @@ -74,7 +74,7 @@ func (rac *RamAuthClient) Login() (bool, error) { } func (rac *RamAuthClient) GetSecurityInfo(resource RequestResource) map[string]string { - var securityInfo = make(map[string]string) + var securityInfo = make(map[string]string, 4) if rac.matchedProvider == nil { return securityInfo } diff --git a/common/security/resource_injector.go b/common/security/resource_injector.go index b05897e5..15796d85 100644 --- a/common/security/resource_injector.go +++ b/common/security/resource_injector.go @@ -39,7 +39,7 @@ func (n *NamingResourceInjector) doInject(resource RequestResource, ramContext R } func (n *NamingResourceInjector) calculateSignature(resource RequestResource, secretKey string, ramContext RamContext) map[string]string { - var result = make(map[string]string) + var result = make(map[string]string, 4) signData := n.getSignData(n.getGroupedServiceName(resource)) signature, err := Sign(signData, secretKey) if err != nil { @@ -81,7 +81,7 @@ func (c *ConfigResourceInjector) doInject(resource RequestResource, ramContext R } func (c *ConfigResourceInjector) calculateSignature(resource RequestResource, secretKey string, ramContext RamContext) map[string]string { - var result = make(map[string]string) + var result = make(map[string]string, 4) resourceName := c.getResourceName(resource) signHeaders := c.getSignHeaders(resourceName, secretKey) for k, v := range signHeaders { @@ -98,7 +98,7 @@ func (c *ConfigResourceInjector) getResourceName(resource RequestResource) strin } } func (c *ConfigResourceInjector) getSignHeaders(resource, secretKey string) map[string]string { - header := make(map[string]string) + header := make(map[string]string, 4) timeStamp := fmt.Sprintf("%d", time.Now().UnixMilli()) header[TIMESTAMP_HEADER] = timeStamp if secretKey != "" { diff --git a/common/security/security_proxy.go b/common/security/security_proxy.go index d0b333a7..60adf1b2 100644 --- a/common/security/security_proxy.go +++ b/common/security/security_proxy.go @@ -33,93 +33,58 @@ type RequestResource struct { resource string } +const ( + REQUEST_TYPE_CONFIG = "config" + REQUEST_TYPE_NAMING = "naming" +) + func BuildConfigResourceByRequest(request rpc_request.IRequest) RequestResource { - if request.GetRequestType() == "ConfigQueryRequest" { + if request.GetRequestType() == constant.CONFIG_QUERY_REQUEST_NAME { configQueryRequest := request.(*rpc_request.ConfigQueryRequest) - return RequestResource{ - requestType: "config", - namespace: configQueryRequest.Tenant, - group: configQueryRequest.Group, - resource: configQueryRequest.DataId, - } + return BuildConfigResource(configQueryRequest.Tenant, configQueryRequest.Group, configQueryRequest.DataId) } - if request.GetRequestType() == "ConfigPublishRequest" { + if request.GetRequestType() == constant.CONFIG_PUBLISH_REQUEST_NAME { configPublishRequest := request.(*rpc_request.ConfigPublishRequest) - return RequestResource{ - requestType: "config", - namespace: configPublishRequest.Tenant, - group: configPublishRequest.Group, - resource: configPublishRequest.DataId, - } + return BuildConfigResource(configPublishRequest.Tenant, configPublishRequest.Group, configPublishRequest.DataId) } if request.GetRequestType() == "ConfigRemoveRequest" { configRemoveRequest := request.(*rpc_request.ConfigRemoveRequest) - return RequestResource{ - requestType: "config", - namespace: configRemoveRequest.Tenant, - group: configRemoveRequest.Group, - resource: configRemoveRequest.DataId, - } + return BuildConfigResource(configRemoveRequest.Tenant, configRemoveRequest.Group, configRemoveRequest.DataId) } return RequestResource{ - requestType: "config", + requestType: REQUEST_TYPE_CONFIG, } } func BuildNamingResourceByRequest(request rpc_request.IRequest) RequestResource { - if request.GetRequestType() == "InstanceRequest" { + if request.GetRequestType() == constant.INSTANCE_REQUEST_NAME { instanceRequest := request.(*rpc_request.InstanceRequest) - return RequestResource{ - requestType: "naming", - namespace: instanceRequest.Namespace, - group: instanceRequest.GroupName, - resource: instanceRequest.ServiceName, - } + return BuildNamingResource(instanceRequest.Namespace, instanceRequest.GroupName, instanceRequest.ServiceName) } - if request.GetRequestType() == "BatchInstanceRequest" { + if request.GetRequestType() == constant.BATCH_INSTANCE_REQUEST_NAME { batchInstanceRequest := request.(*rpc_request.BatchInstanceRequest) - return RequestResource{ - requestType: "naming", - namespace: batchInstanceRequest.Namespace, - group: batchInstanceRequest.GroupName, - resource: batchInstanceRequest.ServiceName, - } + return BuildNamingResource(batchInstanceRequest.Namespace, batchInstanceRequest.GroupName, batchInstanceRequest.ServiceName) } - if request.GetRequestType() == "ServiceListRequest" { + if request.GetRequestType() == constant.SERVICE_LIST_REQUEST_NAME { serviceListRequest := request.(*rpc_request.ServiceListRequest) - return RequestResource{ - requestType: "naming", - namespace: serviceListRequest.Namespace, - group: serviceListRequest.GroupName, - resource: serviceListRequest.ServiceName, - } + return BuildNamingResource(serviceListRequest.Namespace, serviceListRequest.GroupName, serviceListRequest.ServiceName) } - if request.GetRequestType() == "ServiceQueryRequest" { + if request.GetRequestType() == constant.SERVICE_QUERY_REQUEST_NAME { serviceQueryRequest := request.(*rpc_request.ServiceQueryRequest) - return RequestResource{ - requestType: "naming", - namespace: serviceQueryRequest.Namespace, - group: serviceQueryRequest.GroupName, - resource: serviceQueryRequest.ServiceName, - } + return BuildNamingResource(serviceQueryRequest.Namespace, serviceQueryRequest.GroupName, serviceQueryRequest.ServiceName) } - if request.GetRequestType() == "SubscribeServiceRequest" { + if request.GetRequestType() == constant.SUBSCRIBE_SERVICE_REQUEST_NAME { subscribeServiceRequest := request.(*rpc_request.SubscribeServiceRequest) - return RequestResource{ - requestType: "naming", - namespace: subscribeServiceRequest.Namespace, - group: subscribeServiceRequest.GroupName, - resource: subscribeServiceRequest.ServiceName, - } + return BuildNamingResource(subscribeServiceRequest.Namespace, subscribeServiceRequest.GroupName, subscribeServiceRequest.ServiceName) } return RequestResource{ - requestType: "naming", + requestType: REQUEST_TYPE_NAMING, } } func BuildConfigResource(tenant, group, dataId string) RequestResource { return RequestResource{ - requestType: "config", + requestType: REQUEST_TYPE_CONFIG, namespace: tenant, group: group, resource: dataId, @@ -128,7 +93,7 @@ func BuildConfigResource(tenant, group, dataId string) RequestResource { func BuildNamingResource(namespace, group, serviceName string) RequestResource { return RequestResource{ - requestType: "naming", + requestType: REQUEST_TYPE_NAMING, namespace: namespace, group: group, resource: serviceName, @@ -155,7 +120,7 @@ func (sp *SecurityProxy) Login() { } func (sp *SecurityProxy) GetSecurityInfo(resource RequestResource) map[string]string { - var securityInfo = make(map[string]string) + var securityInfo = make(map[string]string, 4) for _, client := range sp.Clients { info := client.GetSecurityInfo(resource) if info != nil { @@ -175,8 +140,7 @@ func (sp *SecurityProxy) UpdateServerList(serverList []constant.ServerConfig) { func (sp *SecurityProxy) AutoRefresh(ctx context.Context) { go func() { - var timer *time.Timer - timer = time.NewTimer(time.Second * time.Duration(5)) + var timer = time.NewTimer(time.Second * time.Duration(5)) defer timer.Stop() for { select { @@ -192,7 +156,7 @@ func (sp *SecurityProxy) AutoRefresh(ctx context.Context) { func NewSecurityProxy(clientCfg constant.ClientConfig, serverCfgs []constant.ServerConfig, agent http_agent.IHttpAgent) SecurityProxy { var securityProxy = SecurityProxy{} - securityProxy.Clients = make([]AuthClient, 0) + securityProxy.Clients = make([]AuthClient, 2) securityProxy.Clients = append(securityProxy.Clients, NewNacosAuthClient(clientCfg, serverCfgs, agent)) securityProxy.Clients = append(securityProxy.Clients, NewRamAuthClient(clientCfg)) return securityProxy