Adding support for Spring-Boot SSL 83/39783/2
authorda490c <dave.adams@amdocs.com>
Wed, 28 Mar 2018 18:31:48 +0000 (14:31 -0400)
committerda490c <dave.adams@amdocs.com>
Wed, 28 Mar 2018 18:41:07 +0000 (14:41 -0400)
Issue-ID: AAI-599
Change-Id: I55ea44c3af3631b9ff3ae72e65f663870a199973
Signed-off-by: da490c <dave.adams@amdocs.com>
pom.xml
sparkybe-onap-application/src/main/config/ajsc-override-web.xml [deleted file]
sparkybe-onap-application/src/main/config/runner-web.xml [deleted file]
sparkybe-onap-application/src/main/docker/Dockerfile
sparkybe-onap-application/src/main/java/org/onap/aai/sparky/Application.java
sparkybe-onap-application/src/main/java/org/onap/aai/sparky/config/SparkyConfigLoader.java [moved from sparkybe-onap-application/src/main/java/org/onap/aai/sparky/config/PropertyConfigLoader.java with 91% similarity]
sparkybe-onap-application/src/main/java/org/onap/aai/sparky/config/SparkyHttpConfigLoader.java [new file with mode: 0644]
sparkybe-onap-application/src/main/java/org/onap/aai/sparky/config/SparkySpringXmlConfiguration.java
sparkybe-onap-application/src/main/java/org/onap/aai/sparky/config/SparkySslConfigLoader.java [new file with mode: 0644]
sparkybe-onap-application/src/main/scripts/start.sh
version.properties [new file with mode: 0644]

diff --git a/pom.xml b/pom.xml
index ced2b31..c869787 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -7,6 +7,7 @@
     <artifactId>sparky-be</artifactId>
     <version>1.2.0-SNAPSHOT</version>
     <packaging>pom</packaging>
+    <name>aai-sparky-be</name>
 
        <modules>
                <module>sparkybe-onap-service/pom.xml</module>
diff --git a/sparkybe-onap-application/src/main/config/ajsc-override-web.xml b/sparkybe-onap-application/src/main/config/ajsc-override-web.xml
deleted file mode 100644 (file)
index b8ff7da..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2016 AT&T Intellectual Property. All rights reserved. -->
-<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
-       metadata-complete="false" version="3.0">
-    
-       <servlet-mapping>
-               <servlet-name>PortalRestAPIProxy</servlet-name>
-               <url-pattern>/api/v2/*</url-pattern>
-       </servlet-mapping>      
-       
-
-</web-app>
\ No newline at end of file
diff --git a/sparkybe-onap-application/src/main/config/runner-web.xml b/sparkybe-onap-application/src/main/config/runner-web.xml
deleted file mode 100644 (file)
index ca0c5e2..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2016 AT&T Intellectual Property. All rights reserved. -->
-<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
-       metadata-complete="false" version="3.0">
-
-        <servlet>
-               <servlet-name>PortalRestAPIProxy</servlet-name>
-               <servlet-class>org.openecomp.portalsdk.core.onboarding.crossapi.PortalRestAPIProxy</servlet-class>
-       </servlet>  
-       
-
-       
-</web-app>
index d98110c..f5e620c 100644 (file)
@@ -16,15 +16,22 @@ RUN export JAVA_HOME
 # Build up the deployment folder structure
 RUN mkdir -p $MICRO_HOME
 RUN mkdir -p $BIN_HOME
+RUN mkdir -p $MICRO_HOME/lib/
+RUN mkdir -p $MICRO_HOME/static/services/aai/webapp/
 
-# copy swm/package/nix/dist_files/appl/sparky-be/${project.version}/ $MICRO_HOME/
-RUN ls -la $BIN_HOME/
+ADD *.jar $MICRO_HOME/lib/
+ADD scripts/* $MICRO_HOME/bin/
+COPY static/ $MICRO_HOME/static/services/aai/webapp/
+
+RUN chmod 755 $MICRO_HOME/bin/*
+RUN chmod 755 $MICRO_HOME/lib/*
+RUN chmod 755 $MICRO_HOME/static/*
+
+#RUN ls -la $BIN_HOME/
 
-#RUN chmod 755 $BIN_HOME/*
 RUN ln -s /logs $MICRO_HOME/logs
 
 EXPOSE 8000 8000
-
-CMD tail -F -n0 /etc/hosts
-#CMD /opt/app/sparky/bin/start.sh
-#CMD top
+EXPOSE 9517 9517
+    
+CMD ["/opt/app/sparky/bin/start.sh"]
\ No newline at end of file
index 548a48b..693617b 100644 (file)
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
-/**
- * This copy of Woodstox XML processor is licensed under the
- * Apache (Software) License, version 2.0 ("the License").
- * See the License for details about distribution rights, and the
- * specific rights regarding derivate works.
- *
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/
- *
- * A copy is also included in the downloadable source code package
- * containing Woodstox, in file "ASL2.0", under the same directory
- * as this file.
- */
 package org.onap.aai.sparky;
 
-import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.servlet.CamelHttpTransportServlet;
-import org.apache.camel.model.rest.RestBindingMode;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.web.servlet.ServletRegistrationBean;
-import org.springframework.boot.web.support.SpringBootServletInitializer;
-import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
-import org.springframework.stereotype.Component;
 
 @SpringBootApplication
-public class Application  /*extends SpringBootServletInitializer */ {
+public class Application {
   
-  private @Autowired AutowireCapableBeanFactory beanFactory;
-
   public static void main(String[] args) {
 
-    ApplicationContext applicationContext = SpringApplication.run(Application.class, args);
-
-    /*for (String name : applicationContext.getBeanDefinitionNames()) {
-      System.out.println(name);
-    }*/
+    SpringApplication.run(Application.class, args);
 
   }
-  
- /* @Component
-  class RestApi extends RouteBuilder {
-
-      @Override
-      public void configure() {
-        
-      //restConfiguration().component("restlet").contextPath("/rs").bindingMode(RestBindingMode.json);
-        
-
-          /*rest("/books").description("Books REST service")
-              .get("/").description("The list of all the books")
-                  .route().routeId("books-api")
-                  .bean(Database.class, "findBooks")
-                  .endRest()
-              .get("order/{id}").description("Details of an order by id")
-                  .route().routeId("order-api")
-                  .bean(Database.class, "findOrder(${header.id})");*/
-   /*   }
-  }*/
-  
-
-  /*
-   * TODO:  we need to figure out the initialization required for our restlets
-   */
-      
-      /*@Bean
-      public ServletRegistrationBean restletBootstrapInitialization() {
-          
-          SpringServerServlet serverServlet = new SpringServerServlet();
-          ServletRegistrationBean regBean = new ServletRegistrationBean( serverServlet, "/rest/*");
-          
-          
-          Map<String,String> params = new HashMap<String,String>();
-          
-          params.put("org.restlet.component", "restletComponent");
-          
-          regBean.setInitParameters(params);
-          
-          return regBean;
-      }*/
-      
-      
      
   /*
    * This initialization code enabled access to aai-ui-proxy-processor
@@ -117,36 +47,6 @@ public class Application  /*extends SpringBootServletInitializer */ {
     return servlet;
   }
 
- /* @Bean
-  public EmbeddedServletContainerFactory servletContainerFactory() {
-    return new TomcatEmbeddedServletContainerFactory() {
-      
-      /*
-       * Stackoverflow solution for adding a WAR into our embedded tomcat runtime
-       * https://stackoverflow.com/questions/31374726/spring-boot-how-to-add-another-war-files-to-the-embedded-tomcat
-       */
-      
-
-  /*    @Override
-      protected TomcatEmbeddedServletContainer getTomcatEmbeddedServletContainer(Tomcat tomcat) {
-        // Ensure that the webapps directory exists
-        System.out.println("catalina base = " + tomcat.getServer().getCatalinaBase());
-        new File(tomcat.getServer().getCatalinaBase(), "webapps").mkdirs();
-
-        try {
-          Context context = tomcat.addWebapp("/services/aai/webapp", "X:\\2018_dev\\OSEAAI\\NUC-7257-spring-boot-conversion\\onap_sparky-be\\src\\main\\resources\\extApps\\aai.war");
-
-          // Allow the webapp to load classes from your fat jar
-          context.setParentClassLoader(getClass().getClassLoader());
-        } catch (ServletException ex) {
-          throw new IllegalStateException("Failed to add webapp", ex);
-        }
-        return super.getTomcatEmbeddedServletContainer(tomcat);
-      }
-
-    };
-  }*/
-
   /**
    * bind LoginFilter 
    */
@@ -24,7 +24,8 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.PropertySource;
 
 @Configuration
-@PropertySource("file:${CONFIG_HOME}/config/sparky-application.properties")
-public class PropertyConfigLoader {
-
+@PropertySource("file:${CONFIG_HOME}/sparky-application.properties")
+public class SparkyConfigLoader {
+  
+  
 }
diff --git a/sparkybe-onap-application/src/main/java/org/onap/aai/sparky/config/SparkyHttpConfigLoader.java b/sparkybe-onap-application/src/main/java/org/onap/aai/sparky/config/SparkyHttpConfigLoader.java
new file mode 100644 (file)
index 0000000..4c1d541
--- /dev/null
@@ -0,0 +1,32 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2018 Amdocs
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.aai.sparky.config;
+
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+
+@Configuration
+@ConditionalOnProperty(value="sparky.ssl.enabled", havingValue = "true")
+@PropertySource("file:${CONFIG_HOME}/sparky-ssl-config.properties")
+public class SparkyHttpConfigLoader {
+
+}
index 79656d5..dbbe61d 100644 (file)
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
-/**
- * This copy of Woodstox XML processor is licensed under the
- * Apache (Software) License, version 2.0 ("the License").
- * See the License for details about distribution rights, and the
- * specific rights regarding derivate works.
- *
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/
- *
- * A copy is also included in the downloadable source code package
- * containing Woodstox, in file "ASL2.0", under the same directory
- * as this file.
- */
+
 package org.onap.aai.sparky.config;
 
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.ImportResource;
 
 @Configuration
-@ImportResource({"file:${CONFIG_HOME}/dynamic/spring-beans/*.xml"})
-public class SparkySpringXmlConfiguration {}
+@ImportResource({"file:${CONFIG_HOME}/spring-beans/*.xml"})
+public class SparkySpringXmlConfiguration {}
\ No newline at end of file
diff --git a/sparkybe-onap-application/src/main/java/org/onap/aai/sparky/config/SparkySslConfigLoader.java b/sparkybe-onap-application/src/main/java/org/onap/aai/sparky/config/SparkySslConfigLoader.java
new file mode 100644 (file)
index 0000000..c493f64
--- /dev/null
@@ -0,0 +1,32 @@
+/**
+ * ============LICENSE_START=======================================================
+ * org.onap.aai
+ * ================================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2018 Amdocs
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.aai.sparky.config;
+
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+
+@Configuration
+@ConditionalOnProperty(value="sparky.ssl.enabled", havingValue = "false")
+@PropertySource("file:${CONFIG_HOME}/sparky-http-config.properties")
+public class SparkySslConfigLoader {
+
+}
index 514d7c5..0db0d37 100644 (file)
@@ -1,59 +1,10 @@
 #!/bin/sh
 
-BASEDIR="/opt/app/sparky"
-MICRO_HOME="$BASEDIR"
-CONFIG_HOME=${MICRO_HOME}/config
+APP_HOME="/opt/app/sparky"
+CONFIG_HOME=${APP_HOME}/appconfig
 
-if [ -z "$CONFIG_HOME" ]; then
-       echo "CONFIG_HOME must be set in order to start up process"
-       exit 1
-fi
-PROPS="-DCONFIG_HOME=${CONFIG_HOME}"
-
-#echo $CLASSPATH
+PROPS="-DAPP_HOME=${APP_HOME} -DCONFIG_HOME=${CONFIG_HOME}"
 
 set -x
-exec java -Xms1024m -Xmx4096m $PROPS -jar ${MICRO_HOME}/sparky-be.jar --spring.config.name=sparky-be-application  
-
-
-
-
-#if [ -z "$KEY_STORE_PASSWORD" ]; then
-#      echo "KEY_STORE_PASSWORD must be set in order to start up process"
-#      exit 1
-#else
-#        sed -i /"KEY_STORE_PASSWORD"/d $AJSC_CONF_HOME/etc/sysprops/sys-props.properties
-#      echo "KEY_STORE_PASSWORD=$KEY_STORE_PASSWORD" >> $AJSC_CONF_HOME/etc/sysprops/sys-props.properties
-#fi
-
-#if [ -z "$KEY_MANAGER_PASSWORD" ]; then
-#      echo "KEY_MANAGER_PASSWORD must be set in order to start up process"
-#      exit 1
-#else
-#        sed -i /"KEY_MANAGER_PASSWORD"/d $AJSC_CONF_HOME/etc/sysprops/sys-props.properties
-#      echo "KEY_MANAGER_PASSWORD=$KEY_MANAGER_PASSWORD" >> $AJSC_CONF_HOME/etc/sysprops/sys-props.properties
-#fi
-
-#CLASSPATH="$AJSC_HOME/lib/ajsc-runner-2.0.0.jar"
-#CLASSPATH="$CLASSPATH:$AJSC_HOME/extJars/"
-#CLASSPATH="$CLASSPATH:$CONFIG_HOME/portal/"
-#PROPS="-DAJSC_HOME=$AJSC_HOME"
-#PROPS="$PROPS -DAJSC_CONF_HOME=$BASEDIR/bundleconfig/"
-#PROPS="$PROPS -Dlogback.configurationFile=$BASEDIR/bundleconfig/etc/logback.xml"
-#PROPS="$PROPS -DAJSC_SHARED_CONFIG=$AJSC_CONF_HOME"
-#PROPS="$PROPS -DAJSC_EXTERNAL_LIB_FOLDERS=$AJSC_HOME/commonLibs"
-#PROPS="$PROPS -DAJSC_EXTERNAL_PROPERTIES_FOLDERS=$AJSC_HOME/ajsc-shared-config/etc"
-#PROPS="$PROPS -DAJSC_SERVICE_NAMESPACE=ajsc-tier-support-ui"
-#PROPS="$PROPS -DAJSC_SERVICE_VERSION=v1"
-#PROPS="$PROPS -DSOACLOUD_SERVICE_VERSION=0.0.0"
-#PROPS="$PROPS -Dserver.port=8000"
-#PROPS="$PROPS -DCONFIG_HOME=$CONFIG_HOME"
-
-#echo $CLASSPATH
+java -Xms1024m -Xmx4096m $PROPS -jar ${APP_HOME}/lib/sparkybe-onap-application*.jar --sparky.ssl.enabled=${UI_SSL_ENABLED}
 
-#if [ "$UI_HTTPS_PORT" ]; then
-#      /usr/lib/jvm/java-8-openjdk-amd64/bin/java -Xms1024m -Xmx4096m  $PROPS -classpath $CLASSPATH com.att.ajsc.runner.Runner context=/ sslport=$UI_HTTPS_PORT
-#elif [ "$UI_HTTP_PORT" ]; then
-#      /usr/lib/jvm/java-8-openjdk-amd64/bin/java -Xms1024m -Xmx4096m  $PROPS -classpath $CLASSPATH com.att.ajsc.runner.Runner context=/ port=$UI_HTTP_PORT
-#fi
diff --git a/version.properties b/version.properties
new file mode 100644 (file)
index 0000000..faf06bb
--- /dev/null
@@ -0,0 +1,13 @@
+# Versioning variables
+# Note that these variables cannot be structured (e.g. : version.release or version.snapshot etc... )
+# because they are used in Jenkins, whose plug-in doesn't support
+
+major=1
+minor=2
+patch=0
+
+base_version=${major}.${minor}.${patch}
+
+# Release must be completed with git revision # in Jenkins
+release_version=${base_version}
+snapshot_version=${base_version}-SNAPSHOT