X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Faai%2Fsa%2Frest%2FAnalyzerApi.java;h=664124daecfb3fb48ebb413558aaf9452831421d;hb=f637a36c9df966c341727910e30241b63cc49c06;hp=8a95dc1afdb21efe6a376541b2a9fe24d34aa38a;hpb=d6348739c632fb69c8833078effbb902adc7f702;p=aai%2Fsearch-data-service.git 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 8a95dc1..664124d 100644 --- a/src/main/java/org/onap/aai/sa/rest/AnalyzerApi.java +++ b/src/main/java/org/onap/aai/sa/rest/AnalyzerApi.java @@ -1,4 +1,4 @@ -/** +/** * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ @@ -20,43 +20,48 @@ */ package org.onap.aai.sa.rest; -import org.onap.aai.sa.searchdbabstraction.elasticsearch.dao.ElasticSearchHttpController; -import org.onap.aai.sa.searchdbabstraction.logging.SearchDbMsgs; +import java.util.concurrent.atomic.AtomicBoolean; +import javax.servlet.http.HttpServletRequest; import org.onap.aai.cl.api.LogFields; import org.onap.aai.cl.api.LogLine; import org.onap.aai.cl.api.Logger; import org.onap.aai.cl.eelf.LoggerFactory; -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 javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.Response; - -@Path("/analyzers") +import org.onap.aai.sa.searchdbabstraction.elasticsearch.dao.ElasticSearchHttpController; +import org.onap.aai.sa.searchdbabstraction.logging.SearchDbMsgs; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@Component +@EnableWebSecurity +@RestController +@RequestMapping("/services/search-data-service/v1/analyzers/search") public class AnalyzerApi { private SearchServiceApi searchService = null; // Set up the loggers. private static Logger logger = LoggerFactory.getInstance().getLogger(IndexApi.class.getName()); - private static Logger auditLogger = LoggerFactory.getInstance() - .getAuditLogger(IndexApi.class.getName()); + private static Logger auditLogger = LoggerFactory.getInstance().getAuditLogger(IndexApi.class.getName()); - public AnalyzerApi(SearchServiceApi searchService) { + public AnalyzerApi( @Qualifier("searchServiceApi") SearchServiceApi searchService) { this.searchService = searchService; } - @GET - public Response processGet(@Context HttpServletRequest request, - @Context HttpHeaders headers, - ApiUtils apiUtils) { + @RequestMapping(method = RequestMethod.GET, consumes = {"application/json"}, produces = {"application/json"}) + public ResponseEntity processGet(HttpServletRequest request, @RequestHeader HttpHeaders headers, + ApiUtils apiUtils) { - Response.Status responseCode = Response.Status.INTERNAL_SERVER_ERROR; - String responseString = "Undefined error"; + HttpStatus responseCode = HttpStatus.INTERNAL_SERVER_ERROR; + String responseString; // Initialize the MDC Context for logging purposes. ApiUtils.initMdcContext(request, headers); @@ -65,45 +70,44 @@ public class AnalyzerApi { // any further. try { - if (!searchService.validateRequest(headers, request, - ApiUtils.Action.GET, ApiUtils.SEARCH_AUTH_POLICY_NAME)) { + if (!searchService.validateRequest(headers, request, ApiUtils.Action.GET, + ApiUtils.SEARCH_AUTH_POLICY_NAME)) { logger.warn(SearchDbMsgs.GET_ANALYZERS_FAILURE, "Authentication failure."); - return Response.status(Response.Status.FORBIDDEN).entity("Authentication failure.").build(); + return ResponseEntity.status(HttpStatus.FORBIDDEN).contentType(MediaType.APPLICATION_JSON) + .body("Authentication failure."); } } catch (Exception e) { logger.warn(SearchDbMsgs.GET_ANALYZERS_FAILURE, "Unexpected authentication failure - cause: " + e.getMessage()); - return Response.status(Response.Status.FORBIDDEN).entity("Authentication failure.").build(); + return ResponseEntity.status(HttpStatus.FORBIDDEN).contentType(MediaType.APPLICATION_JSON) + .body("Authentication failure."); } // Now, build the list of analyzers. try { - responseString = buildAnalyzerList(ElasticSearchHttpController.getInstance() - .getAnalysisConfig()); - responseCode = Response.Status.OK; - + responseString = buildAnalyzerList(ElasticSearchHttpController.getInstance().getAnalysisConfig()); + responseCode = HttpStatus.OK; } catch (Exception e) { - logger.warn(SearchDbMsgs.GET_ANALYZERS_FAILURE, "Unexpected failure retrieving analysis configuration - cause: " + e.getMessage()); responseString = "Failed to retrieve analysis configuration. Cause: " + e.getMessage(); } // Build the HTTP response. - Response response = Response.status(responseCode).entity(responseString).build(); + ResponseEntity response = + ResponseEntity.status(responseCode).contentType(MediaType.APPLICATION_JSON).body(responseString); // Generate our audit log. auditLogger.info(SearchDbMsgs.PROCESS_REST_REQUEST, - new LogFields() - .setField(LogLine.DefinedFields.RESPONSE_CODE, responseCode.getStatusCode()) - .setField(LogLine.DefinedFields.RESPONSE_DESCRIPTION, responseCode.getStatusCode()), + new LogFields().setField(LogLine.DefinedFields.RESPONSE_CODE, responseCode.value()) + .setField(LogLine.DefinedFields.RESPONSE_DESCRIPTION, responseCode.value()), (request != null) ? request.getMethod() : "Unknown", - (request != null) ? request.getRequestURL().toString() : "Unknown", - (request != null) ? request.getRemoteHost() : "Unknown", - Integer.toString(response.getStatus())); + (request != null) ? request.getRequestURL ().toString () : "Unknown", + (request != null) ? request.getRemoteHost () : "Unknown", + Integer.toString(response.getStatusCodeValue ())); // Clear the MDC context so that no other transaction inadvertently // uses our transaction id. @@ -112,16 +116,13 @@ public class AnalyzerApi { return response; } - /** - * This method takes a list of analyzer objects and generates a simple json - * structure to enumerate them. + * This method takes a list of analyzer objects and generates a simple json structure to enumerate them. * - *

Note, this includes only the aspects of the analyzer object that we want - * to make public to an external client. + *

+ * Note, this includes only the aspects of the analyzer object that we want to make public to an external client. * - * @param analysisConfig - The analysis configuration object to extract the - * analyzers from. + * @param analysisConfig - The analysis configuration object to extract the analyzers from. * @return - A json string enumerating the defined analyzers. */ private String buildAnalyzerList(AnalysisConfiguration analysisConfig) {