226a319a7c92bb2a9ac9c5a7360d2021b9fdb270
[dcaegen2/platform.git] / mod / bpgenerator / onap / src / main / java / org / onap / blueprintgenerator / service / common / ExternalCertificateParametersFactoryService.java
1 /*
2  *
3  *  * ============LICENSE_START=======================================================
4  *  *  org.onap.dcae
5  *  *  ================================================================================
6  *  *  Copyright (c) 2020  AT&T Intellectual Property. All rights reserved.
7  *  *  Copyright (c) 2020  Nokia. All rights reserved.
8  *  *  ================================================================================
9  *  *  Licensed under the Apache License, Version 2.0 (the "License");
10  *  *  you may not use this file except in compliance with the License.
11  *  *  You may obtain a copy of the License at
12  *  *
13  *  *       http://www.apache.org/licenses/LICENSE-2.0
14  *  *
15  *  *  Unless required by applicable law or agreed to in writing, software
16  *  *  distributed under the License is distributed on an "AS IS" BASIS,
17  *  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  *  *  See the License for the specific language governing permissions and
19  *  *  limitations under the License.
20  *  *  ============LICENSE_END=========================================================
21  *
22  *
23  */
24
25 package org.onap.blueprintgenerator.service.common;
26
27 import org.onap.blueprintgenerator.constants.Constants;
28 import org.onap.blueprintgenerator.model.common.ExternalCertificateParameters;
29 import org.onap.blueprintgenerator.service.base.BlueprintHelperService;
30 import org.springframework.beans.factory.annotation.Autowired;
31 import org.springframework.stereotype.Service;
32
33 import java.util.LinkedHashMap;
34 import java.util.Map;
35
36 /**
37  * @author : Ravi Mantena
38  * @date 10/16/2020 Application: ONAP - Blueprint Generator Common ONAP Service used by ONAP and
39  * DMAAP Blueprint to add Common ONAP Service to add External Certificate Parameters Factory
40  */
41 @Service
42 public class ExternalCertificateParametersFactoryService
43     extends ExternalCertificateDataFactoryService {
44
45     @Autowired
46     private BlueprintHelperService blueprintHelperService;
47
48     /**
49      * Creates external certificate parameters
50      *
51      * @return
52      */
53     public ExternalCertificateParameters create() {
54         ExternalCertificateParameters externalCertificateParameters =
55             new ExternalCertificateParameters();
56         externalCertificateParameters.setCommonName(
57             createPrefixedGetInput(Constants.COMMON_NAME_FIELD));
58         externalCertificateParameters.setSans(createPrefixedGetInput(Constants.SANS_FIELD));
59         return externalCertificateParameters;
60     }
61
62     /**
63      * Creates input list for external certificate parameters factory
64      *
65      * @return
66      */
67     public Map<String, LinkedHashMap<String, Object>> createInputList() {
68         Map<String, LinkedHashMap<String, Object>> retInputs = new LinkedHashMap<>();
69
70         LinkedHashMap<String, Object> commonNameInputMap =
71             blueprintHelperService.createStringInput(
72                 "Common name which should be present in certificate.",
73                 Constants.DEFAULT_COMMON_NAME);
74         retInputs.put(addPrefix(Constants.COMMON_NAME_FIELD), commonNameInputMap);
75
76         LinkedHashMap<String, Object> sansInputMap =
77             blueprintHelperService.createStringInput(
78                 "\"List of Subject Alternative Names (SANs) which should be present in certificate. "
79                     + "Delimiter - , Should contain a common_name value and other FQDNs under which the given "
80                     + "component is accessible.\"",
81                 Constants.DEFAULT_SANS);
82         retInputs.put(addPrefix(Constants.SANS_FIELD), sansInputMap);
83
84         return retInputs;
85     }
86 }