aboutsummaryrefslogtreecommitdiffstats
path: root/certServiceK8sExternalProvider/src/certserviceclient/cert_service_client_factory.go
diff options
context:
space:
mode:
Diffstat (limited to 'certServiceK8sExternalProvider/src/certserviceclient/cert_service_client_factory.go')
-rw-r--r--certServiceK8sExternalProvider/src/certserviceclient/cert_service_client_factory.go44
1 files changed, 33 insertions, 11 deletions
diff --git a/certServiceK8sExternalProvider/src/certserviceclient/cert_service_client_factory.go b/certServiceK8sExternalProvider/src/certserviceclient/cert_service_client_factory.go
index 198f2294..2c04b908 100644
--- a/certServiceK8sExternalProvider/src/certserviceclient/cert_service_client_factory.go
+++ b/certServiceK8sExternalProvider/src/certserviceclient/cert_service_client_factory.go
@@ -29,7 +29,8 @@ import (
"path"
)
-func CreateCertServiceClient(baseUrl string, caName string, keyPemBase64 []byte, certPemBase64 []byte, cacertPemBase64 []byte) (*CertServiceClientImpl, error) {
+func CreateCertServiceClient(baseUrl string, healthEndpoint string, certEndpoint string, caName string,
+ keyPemBase64 []byte, certPemBase64 []byte, cacertPemBase64 []byte) (*CertServiceClientImpl, error) {
cert, err := tls.X509KeyPair(certPemBase64, keyPemBase64)
if err != nil {
return nil, err
@@ -48,27 +49,48 @@ func CreateCertServiceClient(baseUrl string, caName string, keyPemBase64 []byte,
},
},
}
- certificationUrl, err := parseUrl(baseUrl, caName)
+ healthUrl, certificationUrl, err := validateAndParseUrls(baseUrl, healthEndpoint, certEndpoint, caName)
if err != nil {
return nil, err
}
client := CertServiceClientImpl{
- certificationUrl: certificationUrl.String(),
+ healthUrl: healthUrl,
+ certificationUrl: certificationUrl,
httpClient: httpClient,
}
return &client, nil
}
-func parseUrl(baseUrl string, caName string) (*url.URL, error) {
- parsedUrl, err := url.Parse(baseUrl)
- if err != nil {
- return nil, err
+func validateAndParseUrls(baseUrl string, healthEndpoint string, certEndpoint string, caName string) (string, string, error) {
+ if err := validateUrls(baseUrl, healthEndpoint, certEndpoint, caName); err != nil {
+ return "", "", err
+ }
+
+ certUrl, _ := url.Parse(baseUrl)
+ healthUrl, _ := url.Parse(baseUrl)
+
+ certUrl.Path = path.Join(certEndpoint, caName)
+ healthUrl.Path = path.Join(healthEndpoint)
+
+ return healthUrl.String(), certUrl.String(), nil
+}
+
+func validateUrls(baseUrl string, healthEndpoint string, certEndpoint string, caName string) error {
+ if _, err := url.Parse(baseUrl); err != nil {
+ return err
}
if caName == "" {
- return nil, fmt.Errorf("caName cannot be empty")
+ return fmt.Errorf("caName cannot be empty")
}
-
- parsedUrl.Path = path.Join(parsedUrl.Path, caName)
- return parsedUrl, nil
+ if _, err := url.Parse(caName); err != nil {
+ return err
+ }
+ if _, err := url.Parse(healthEndpoint); err != nil {
+ return err
+ }
+ if _, err := url.Parse(certEndpoint); err != nil {
+ return err
+ }
+ return nil
}