008ff3f829d46e23a08fcdfa1cecaa3bb6941f59
[aai/gizmo.git] / src / main / java / org / onap / crud / CrudApplication.java
1 /**
2  * ============LICENSE_START=======================================================
3  * org.onap.aai
4  * ================================================================================
5  * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
6  * Copyright © 2017-2018 Amdocs
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *       http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21 package org.onap.crud;
22
23 import java.util.HashMap;
24 import java.util.Map;
25 import javax.annotation.PostConstruct;
26 import org.eclipse.jetty.util.security.Password;
27 import org.springframework.beans.factory.annotation.Autowired;
28 import org.springframework.boot.autoconfigure.SpringBootApplication;
29 import org.springframework.boot.builder.SpringApplicationBuilder;
30 import org.springframework.boot.web.support.SpringBootServletInitializer;
31 import org.springframework.context.annotation.ImportResource;
32 import org.springframework.core.env.Environment;
33
34 /**
35  * Crud application class - SpringApplication.run
36  */
37 @SpringBootApplication
38 @ImportResource({"file:${SERVICE_BEANS}/*.xml"})
39 public class CrudApplication extends SpringBootServletInitializer{// NOSONAR
40     @Autowired
41     private Environment env;
42     
43     public static void main(String[] args) {// NOSONAR
44         String keyStorePassword = System.getProperty("KEY_STORE_PASSWORD");
45         if(keyStorePassword==null || keyStorePassword.isEmpty()){
46           throw new RuntimeException("Env property KEY_STORE_PASSWORD not set");
47         }
48         Map<String, Object> props = new HashMap<>();
49         props.put("server.ssl.key-store-password", Password.deobfuscate(keyStorePassword));
50         new CrudApplication().configure(new SpringApplicationBuilder(CrudApplication.class).properties(props)).run(args);
51     }
52     
53     /**
54      * Set required trust store system properties using values from application.properties
55      */
56     @PostConstruct
57     public void setSystemProperties() {
58         String trustStorePath = env.getProperty("server.ssl.key-store");
59         if (trustStorePath != null) {
60             String trustStorePassword = env.getProperty("server.ssl.key-store-password");
61
62             if (trustStorePassword != null) {
63                 System.setProperty("javax.net.ssl.trustStore", trustStorePath);
64                 System.setProperty("javax.net.ssl.trustStorePassword", trustStorePassword);
65             } else {
66                 throw new IllegalArgumentException("Env property server.ssl.key-store-password not set");
67             }
68         }
69     }
70 }