diff options
-rw-r--r-- | pom.xml | 40 | ||||
-rw-r--r-- | src/main/bin/start.sh | 16 | ||||
-rw-r--r-- | src/main/docker/Dockerfile | 9 | ||||
-rw-r--r-- | src/main/java/org/onap/aai/sa/Application.java | 1 | ||||
-rw-r--r-- | src/main/java/org/onap/aai/sa/rest/AnalyzerApi.java | 5 | ||||
-rw-r--r-- | src/main/java/org/onap/aai/sa/searchdbabstraction/JaxrsUserService.java | 49 | ||||
-rw-r--r-- | src/main/java/org/onap/aai/sa/searchdbabstraction/RestEchoService.java (renamed from src/main/java/org/onap/aai/sa/searchdbabstraction/JaxrsEchoService.java) | 23 | ||||
-rw-r--r-- | src/main/java/org/onap/aai/sa/searchdbabstraction/elasticsearch/dao/ElasticSearchHttpController.java | 18 | ||||
-rw-r--r-- | src/main/resources/application.properties | 1 | ||||
-rw-r--r-- | version.properties | 2 |
10 files changed, 60 insertions, 104 deletions
@@ -30,7 +30,7 @@ limitations under the License. </parent> <groupId>org.onap.aai</groupId> <artifactId>search-data-service</artifactId> - <version>1.3.0-SNAPSHOT</version> + <version>1.3.1-SNAPSHOT</version> <name>aai-search-data-service</name> <properties> @@ -125,12 +125,6 @@ limitations under the License. </dependency> <dependency> - <groupId>javax.ws.rs</groupId> - <artifactId>javax.ws.rs-api</artifactId> - <version>2.0</version> - </dependency> - - <dependency> <groupId>org.apache.directory.studio</groupId> <artifactId>org.apache.commons.lang</artifactId> <version>2.6</version> @@ -154,10 +148,31 @@ limitations under the License. <version>20180130</version> </dependency> - <dependency> + <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> - </dependency> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-jetty</artifactId> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter</artifactId> + <exclusions> + <exclusion> + <groupId>ch.qos.logback</groupId> + <artifactId>logback-classic</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-jersey</artifactId> + </dependency> <dependency> <groupId>org.springframework.boot</groupId> @@ -169,12 +184,7 @@ limitations under the License. <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> - - <dependency> - <groupId>org.eclipse.jetty</groupId> - <artifactId>jetty-security</artifactId> - </dependency> - + <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> diff --git a/src/main/bin/start.sh b/src/main/bin/start.sh index 3d6036f..69550c6 100644 --- a/src/main/bin/start.sh +++ b/src/main/bin/start.sh @@ -12,28 +12,14 @@ fi if [ -z "$KEY_STORE_PASSWORD" ]; then echo "KEY_STORE_PASSWORD must be set in order to start up process" exit 1 -else - ## Extract java jar to DEOBFUSCATE the password. - CURR_D=`pwd` - cd $BASEDIR - jar xf search-data-service-package.jar - sudo java -cp ./BOOT-INF/lib/jetty-util-9.4.8.v20171121.jar org.eclipse.jetty.util.security.Password $KEY_STORE_PASSWORD > pass.txt 2>> pass.txt - PASS=`sed "2q;d" pass.txt` - sudo rm pass.txt - cd $CURR_D fi -## tomcat_keystore to p12 -keytool -importkeystore -noprompt -deststorepass $PASS -destkeypass $PASS -srckeystore $BASEDIR/config/auth/tomcat_keystore -destkeystore $BASEDIR/config/auth/onap.p12 -deststoretype PKCS12 -srcstorepass $PASS - -## import into cacerts -sudo keytool -importkeystore -noprompt -deststorepass changeit -destkeypass changeit -destkeystore /$JAVA_HOME/jre/lib/security/cacerts -srckeystore $BASEDIR/config/auth/onap.p12 -srcstoretype PKCS12 -srcstorepass $PASS -alias tomcat - PROPS="-DAJSC_HOME=$AJSC_HOME" PROPS="$PROPS -DAJSC_CONF_HOME=$AJSC_CONF_HOME" PROPS="$PROPS -Dlogging.config=$BASEDIR/bundleconfig/etc/logback.xml" PROPS="$PROPS -DCONFIG_HOME=$CONFIG_HOME" PROPS="$PROPS -DKEY_STORE_PASSWORD=$KEY_STORE_PASSWORD" + JVM_MAX_HEAP=${MAX_HEAP:-1024} java $PROPS -jar $BASEDIR/search-data-service-package.jar
\ No newline at end of file diff --git a/src/main/docker/Dockerfile b/src/main/docker/Dockerfile index 8578ef6..27073a5 100644 --- a/src/main/docker/Dockerfile +++ b/src/main/docker/Dockerfile @@ -22,6 +22,15 @@ COPY bundleconfig-local/etc/logback.xml $MICRO_HOME/bundleconfig/etc RUN chmod 755 $BIN_HOME/* RUN ln -s /logs $MICRO_HOME/logs +# Create the aai user +RUN mkdir /opt/aaihome && \ + groupadd -g 492381 aaiadmin && \ + useradd -r -u 341790 -g 492381 -ms /bin/bash -d /opt/aaihome/aaiadmin aaiadmin && \ + chown -R aaiadmin:aaiadmin $MICRO_HOME +RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers +RUN sudo usermod -a -G sudo aaiadmin +USER aaiadmin + EXPOSE 9509 9509 CMD ["/opt/app/search-data-service/bin/start.sh"] diff --git a/src/main/java/org/onap/aai/sa/Application.java b/src/main/java/org/onap/aai/sa/Application.java index 69dab1e..03f8690 100644 --- a/src/main/java/org/onap/aai/sa/Application.java +++ b/src/main/java/org/onap/aai/sa/Application.java @@ -21,7 +21,6 @@ package org.onap.aai.sa;
import org.eclipse.jetty.util.security.Password;
-import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
diff --git a/src/main/java/org/onap/aai/sa/rest/AnalyzerApi.java b/src/main/java/org/onap/aai/sa/rest/AnalyzerApi.java index 8db9a42..86be0fd 100644 --- a/src/main/java/org/onap/aai/sa/rest/AnalyzerApi.java +++ b/src/main/java/org/onap/aai/sa/rest/AnalyzerApi.java @@ -30,11 +30,8 @@ import org.onap.aai.sa.rest.AnalyzerSchema; import java.util.concurrent.atomic.AtomicBoolean; import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.core.Context; -import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; diff --git a/src/main/java/org/onap/aai/sa/searchdbabstraction/JaxrsUserService.java b/src/main/java/org/onap/aai/sa/searchdbabstraction/JaxrsUserService.java deleted file mode 100644 index 5452ce3..0000000 --- a/src/main/java/org/onap/aai/sa/searchdbabstraction/JaxrsUserService.java +++ /dev/null @@ -1,49 +0,0 @@ -/** - * ============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.sa.searchdbabstraction; - -import java.util.HashMap; -import java.util.Map; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; - -@Path("/user") -public class JaxrsUserService { - - private static final Map<String, String> userIdToNameMap; - - static { - userIdToNameMap = new HashMap<String, String>(); - userIdToNameMap.put("dw113c", "Doug Wait"); - userIdToNameMap.put("so401q", "Stuart O'Day"); - } - - @GET - @Path("/{userId}") - @Produces("text/plain") - public String lookupUser(@PathParam("userId") String userId) { - String name = userIdToNameMap.get(userId); - return name != null ? name : "unknown id"; - } - -}
\ No newline at end of file diff --git a/src/main/java/org/onap/aai/sa/searchdbabstraction/JaxrsEchoService.java b/src/main/java/org/onap/aai/sa/searchdbabstraction/RestEchoService.java index 7334fd9..1cbebc9 100644 --- a/src/main/java/org/onap/aai/sa/searchdbabstraction/JaxrsEchoService.java +++ b/src/main/java/org/onap/aai/sa/searchdbabstraction/RestEchoService.java @@ -20,17 +20,20 @@ */ package org.onap.aai.sa.searchdbabstraction; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; + + +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; /** * Exposes REST endpoints for a simple echo service. */ -@Path("/jaxrs-services") -public class JaxrsEchoService { +@RestController +@RequestMapping("/services/search-data-service/v1") +public class RestEchoService { /** * REST endpoint for a simple echo service. @@ -38,11 +41,9 @@ public class JaxrsEchoService { * @param input - The value to be echoed back. * @return - The input value. */ - @GET - @Path("/echo/{input}") - @Produces("text/plain") - public String ping(@PathParam("input") String input) { + @RequestMapping(value = "/echo/{input}", method = {RequestMethod.GET}) + public String ping(@PathVariable("input") String input) { return "[Search Database Abstraction Micro Service] - Echo Service: " + input + "."; } -}
\ No newline at end of file +} diff --git a/src/main/java/org/onap/aai/sa/searchdbabstraction/elasticsearch/dao/ElasticSearchHttpController.java b/src/main/java/org/onap/aai/sa/searchdbabstraction/elasticsearch/dao/ElasticSearchHttpController.java index 019d867..626ea8c 100644 --- a/src/main/java/org/onap/aai/sa/searchdbabstraction/elasticsearch/dao/ElasticSearchHttpController.java +++ b/src/main/java/org/onap/aai/sa/searchdbabstraction/elasticsearch/dao/ElasticSearchHttpController.java @@ -79,7 +79,9 @@ import java.util.Arrays; import java.util.List; import java.util.Properties; import java.util.concurrent.atomic.AtomicBoolean; -import javax.ws.rs.core.Response.Status; + +import org.springframework.http.HttpStatus; + /** @@ -440,7 +442,7 @@ public class ElasticSearchHttpController implements DocumentStoreInterface { if ((indexExistsResult.getResultCode() < 200) || (indexExistsResult.getResultCode() >= 300)) { DocumentOperationResult opResult = new DocumentOperationResult(); - opResult.setResultCode(Status.NOT_FOUND.getStatusCode()); + opResult.setResultCode(HttpStatus.NOT_FOUND.value()); opResult.setResult("Document Index '" + indexName + "' does not exist."); opResult.setFailureCause("Document Index '" + indexName + "' does not exist."); return opResult; @@ -461,13 +463,13 @@ public class ElasticSearchHttpController implements DocumentStoreInterface { DocumentOperationResult opResult = checkDocumentExistence(indexName, document.getId()); - if (opResult.getResultCode() != Status.NOT_FOUND.getStatusCode()) { - if (opResult.getResultCode() == Status.OK.getStatusCode()) { + if (opResult.getResultCode() != HttpStatus.NOT_FOUND.value()) { + if (opResult.getResultCode() == HttpStatus.CONFLICT.value()) { opResult.setFailureCause("A document with the same id already exists."); } else { opResult.setFailureCause("Failed to verify a document with the specified id does not already exist."); } - opResult.setResultCode(Status.CONFLICT.getStatusCode()); + opResult.setResultCode(HttpStatus.CONFLICT.value()); return opResult; } @@ -626,7 +628,7 @@ public class ElasticSearchHttpController implements DocumentStoreInterface { if ((indexExistsResult.getResultCode() < 200) || (indexExistsResult.getResultCode() >= 300)) { DocumentOperationResult opResult = new DocumentOperationResult(); - opResult.setResultCode(Status.NOT_FOUND.getStatusCode()); + opResult.setResultCode(HttpStatus.NOT_FOUND.value()); opResult.setResult("Document Index '" + indexName + "' does not exist."); opResult.setFailureCause("Document Index '" + indexName + "' does not exist."); return opResult; @@ -979,8 +981,8 @@ public class ElasticSearchHttpController implements DocumentStoreInterface { throw new DocumentStoreOperationException("Failed getting the response body payload.", e); } - if (resultCode == Status.CONFLICT.getStatusCode()) { - opResult.setResultCode(Status.PRECONDITION_FAILED.getStatusCode()); + if (resultCode == HttpStatus.CONFLICT.value()) { + opResult.setResultCode(HttpStatus.PRECONDITION_FAILED.value()); } else { opResult.setResultCode(resultCode); } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 6106535..20dc028 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -2,3 +2,4 @@ server.ssl.key-store=/opt/app/search-data-service/config/auth/tomcat_keystore server.ssl.enabled=true
server.port=9509
server.ssl.client-auth=need
+server.ssl.enabled-protocols=TLSv1.1,TLSv1.2
diff --git a/version.properties b/version.properties index a254b21..fb21064 100644 --- a/version.properties +++ b/version.properties @@ -4,7 +4,7 @@ major=1 minor=3 -patch=0 +patch=1 base_version=${major}.${minor}.${patch} |