diff options
author | 2017-08-23 18:27:19 -0400 | |
---|---|---|
committer | 2017-08-23 21:12:56 -0400 | |
commit | 978dbcf0a196acbafad72fe1e2478ec0e384f02f (patch) | |
tree | 17e1ceaa4a12a599320cbb317947e990bf1a5383 /ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/controller | |
parent | bc7350dce5b7b1dcd1c472a3922b42c4ea99809d (diff) |
Deliver centralized role management feature
Repair multiple defects also.
Revise deployment to use docker-compose.
Remove all zip archives.
Issue: PORTAL-21, PORTAL-25, PORTAL-28, PORTAL-52, PORTAL-69,
PORTAL-74, PORTAL-76, PORTAL-80, PORTAL-82
Change-Id: Ie72fec7d35ba78beb162bba6ed27b2caee340c61
Signed-off-by: Christopher Lott (cl778h) <clott@research.att.com>
Diffstat (limited to 'ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/controller')
3 files changed, 375 insertions, 0 deletions
diff --git a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/controller/DatabaseFileUploadController.java b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/controller/DatabaseFileUploadController.java new file mode 100644 index 00000000..ec32e42f --- /dev/null +++ b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/controller/DatabaseFileUploadController.java @@ -0,0 +1,79 @@ +package org.openecomp.portalapp.widget.controller; + +import java.io.UnsupportedEncodingException; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.openecomp.portalapp.widget.service.StorageService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +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.ResponseBody; + +@Controller +public class DatabaseFileUploadController { + + @Autowired + private StorageService storageService; + + private static final Logger logger = LoggerFactory.getLogger(DatabaseFileUploadController.class); + + @ResponseBody + @RequestMapping(value = "/microservices/markup/{widgetId}", method = RequestMethod.GET) + public String getWidgetMarkup(HttpServletRequest request, HttpServletResponse response, @PathVariable("widgetId") long widgetId){ + String markup = null; + try{ + logger.debug("DatabaseFileUploadController.getWidgetMarkup: getting markup.html for widget with widgetId = {}" , widgetId); + markup = storageService.getWidgetMarkup(widgetId); + }catch(Exception e){ + logger.error("Exception occurred while performing DatabaseFileUploadController.getWidgetMarkup in widget microservices. Details:" + e.getMessage()); + } + return markup; + } + + @ResponseBody + @RequestMapping(value = "/microservices/{widgetId}/controller.js", method = RequestMethod.GET) + public String getWidgetController(HttpServletRequest request, HttpServletResponse response, @PathVariable("widgetId") long widgetId){ + String controller = null; + try{ + logger.debug("DatabaseFileUploadController.getWidgetController: getting controller.js for widget with widgetId = {}" , widgetId); + controller = storageService.getWidgetController(widgetId); + }catch(Exception e){ + logger.error("Exception occurred while performing DatabaseFileUploadController.getWidgetController in widget microservices. Details:" + e.getMessage()); + } + return controller; + } + + @ResponseBody + @RequestMapping(value = "/microservices/{widgetId}/framework.js", method = RequestMethod.GET) + public String getWidgetFramework(HttpServletRequest request, HttpServletResponse response, + @PathVariable("widgetId") long widgetId){ + String framework = null; + try{ + logger.debug("DatabaseFileUploadController.getWidgetFramework: getting framework.js for widget with widgetId = {}" , widgetId); + framework = storageService.getWidgetFramework(widgetId); + }catch(Exception e){ + logger.error("Exception occurred while performing DatabaseFileUploadController.getWidgetFramework in widget microservices. Details:" + e.getMessage()); + } + return framework; + } + + @ResponseBody + @RequestMapping(value = "/microservices/{widgetId}/styles.css", method = RequestMethod.GET) + public String getWidgetCSS(HttpServletRequest request, HttpServletResponse response, + @PathVariable("widgetId") long widgetId){ + String css = null; + try { + logger.debug("DatabaseFileUploadController.getWidgetCSS: getting styles.css for widget with widgetId = {}" , widgetId); + css = storageService.getWidgetCSS(widgetId); + } catch (UnsupportedEncodingException e) { + logger.error("Exception occurred while performing DatabaseFileUploadController.getWidgetCSS in widget microservices. Details:" + e.getMessage()); + } + return css; + } +} diff --git a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/controller/HealthController.java b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/controller/HealthController.java new file mode 100644 index 00000000..fc324ab1 --- /dev/null +++ b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/controller/HealthController.java @@ -0,0 +1,35 @@ +package org.openecomp.portalapp.widget.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class HealthController { + + @RequestMapping(value = { "/health" }, method = RequestMethod.GET, produces = "application/json") + public HealthStatus getWidgetCatalog(HttpServletRequest request, HttpServletResponse response) { + return new HealthStatus("ok"); + } + + class HealthStatus { + private String status; + + public HealthStatus(String status){ + this.status = status; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + + } +}
\ No newline at end of file diff --git a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/controller/WidgetsCatalogController.java b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/controller/WidgetsCatalogController.java new file mode 100644 index 00000000..1af5a3cc --- /dev/null +++ b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/controller/WidgetsCatalogController.java @@ -0,0 +1,261 @@ +package org.openecomp.portalapp.widget.controller; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.openecomp.portalapp.widget.domain.ValidationRespond; +import org.openecomp.portalapp.widget.domain.WidgetCatalog; +import org.openecomp.portalapp.widget.service.StorageService; +import org.openecomp.portalapp.widget.service.WidgetCatalogService; +import org.openecomp.portalapp.widget.utils.AuthorizationUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +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.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.multipart.MultipartFile; + +import com.fasterxml.jackson.databind.ObjectMapper; + +@Controller +@org.springframework.context.annotation.Configuration +@EnableAspectJAutoProxy +public class WidgetsCatalogController { + + @Value("${server.port}") + String port; + @Value("${server.contextPath}") + String context; + + @Value("${security.user.name}") + String security_user; + @Value("${security.user.password}") + String security_pass; + + @Autowired + WidgetCatalogService widgetCatalogService; + + @Autowired + StorageService storageService; + + @Autowired + RestTemplate restTemplate; + + AuthorizationUtil util = new AuthorizationUtil(); + + private static final Logger logger = LoggerFactory.getLogger(WidgetsCatalogController.class); + + @ResponseBody + @RequestMapping(value = { "/microservices/widgetCatalog" }, method = RequestMethod.GET, produces = "application/json") + public List<WidgetCatalog> getWidgetCatalog(HttpServletRequest request, HttpServletResponse response + ,@RequestHeader(value="Authorization") String auth) throws IOException{ + + List<WidgetCatalog> widgetCatalog = null; + if(!util.authorization(auth, security_user, security_pass)){ + response.sendError(HttpServletResponse.SC_UNAUTHORIZED); + logger.error("Basic Authentication Error while performing WidgetsCatalogController.getWidgetCatalog in widget microserivce. Please check your username and password."); + return widgetCatalog; + } + try { + widgetCatalog = widgetCatalogService.getWidgetCatalog(); + logger.debug("WidgetsCatalogController.getWidgetCatalog: getting widget list {}", widgetCatalog); + } catch (Exception e) { + logger.error("Exception occurred while performing WidgetsCatalogController.getWidgetCatalog in widget microservices. Details:" + e.getMessage()); + } + return widgetCatalog; + } + + @ResponseBody + @RequestMapping(value = { "/microservices/widgetCatalog/{loginName}" }, method = RequestMethod.GET, produces = "application/json") + public List<WidgetCatalog> getUserWidgetCatalog(HttpServletRequest request, HttpServletResponse response, + @PathVariable("loginName") String loginName, @RequestHeader(value="Authorization") String auth) throws IOException { + List<WidgetCatalog> widgetCatalog = null; + if(!util.authorization(auth, security_user, security_pass)){ + response.sendError(HttpServletResponse.SC_UNAUTHORIZED); + logger.error("Basic Authentication Error while performing WidgetsCatalogController.getUserWidgetCatalog in widget microserivce. Please check your username and password."); + return widgetCatalog; + } + try { + widgetCatalog = widgetCatalogService.getUserWidgetCatalog(loginName); + logger.debug("WidgetsCatalogController.getUserWidgetCatalog: getting widget list {}", widgetCatalog); + } catch (Exception e) { + logger.error("Exception occurred while performing WidgetsCatalogController.getUserWidgetCatalog in widget microservices. Details:" + e.getMessage()); + } + return widgetCatalog; + } + + @ResponseBody + @RequestMapping(value = { "/microservices/widgetCatalog/{widgetId}" }, method = RequestMethod.PUT, produces = "application/json") + public void updateWidgetCatalog(HttpServletRequest request, HttpServletResponse response, + @RequestBody WidgetCatalog newWidgetCatalog, @PathVariable("widgetId") long widgetId, + @RequestHeader(value="Authorization") String auth) throws IOException { + + if(!util.authorization(auth, security_user, security_pass)){ + response.sendError(HttpServletResponse.SC_UNAUTHORIZED); + logger.error("Basic Authentication Error while performing WidgetsCatalogController.updateWidgetCatalog in widget microserivce. Please check your username and password."); + return; + } + try { + widgetCatalogService.updateWidgetCatalog(widgetId, newWidgetCatalog); + logger.debug("WidgetsCatalogController.updateWidgetCatalog: updating widget {}", newWidgetCatalog); + } catch (Exception e) { + logger.error("Exception occurred while performing WidgetsCatalogController.updateWidgetCatalog in widget microservices. Details:" + e.getMessage()); + e.printStackTrace(); + } + } + + @ResponseBody + @RequestMapping(value = { "/microservices/widgetCatalog" }, method = RequestMethod.POST, produces = "application/json") + public ValidationRespond saveWidgetCatalog(HttpServletRequest request, HttpServletResponse response, @RequestHeader(value="Authorization") String auth, + @RequestParam("file") MultipartFile file, @RequestParam("widget") String widget) throws IOException { + + ValidationRespond respond = null; + if(!util.authorization(auth, security_user, security_pass)){ + response.sendError(HttpServletResponse.SC_UNAUTHORIZED); + logger.error("Basic Authentication Error while performing WidgetsCatalogController.saveWidgetCatalog in widget microserivce. Please check your username and password."); + return new ValidationRespond(false, "Basic Authentication Error, please check your username and password."); + } + try { + //check the zip file structure first + respond = storageService.checkZipFile(file); + + if(respond.isValid()){ + //save the widget catalog + WidgetCatalog newWidget = new ObjectMapper().readValue(widget, WidgetCatalog.class); + + long widgetId = widgetCatalogService.saveWidgetCatalog(newWidget); + logger.debug("WidgetsCatalogController.saveWidgetCatalog: saving widget={}", newWidget); + //save the widget zip file ; + storageService.save(file, newWidget, widgetId); + } + + } catch (Exception e) { + logger.error("Exception occurred while performing WidgetsCatalogController.saveWidgetCatalog in widget microservices. Details:", e); + } + return respond; + } + + @ResponseBody + @RequestMapping(value = { "/microservices/widgetCatalog/{widgetId}" }, method = RequestMethod.POST, produces = "application/json") + public ValidationRespond updateWidgetCatalogwithFiles(HttpServletRequest request, HttpServletResponse response, @RequestHeader(value="Authorization") String auth, + @RequestParam("file") MultipartFile file, @RequestParam("widget") String widget, @PathVariable("widgetId") long widgetId) throws IOException { + System.out.println("microserivces updating with files" + widgetId); + ValidationRespond respond = null; + if(!util.authorization(auth, security_user, security_pass)){ + response.sendError(HttpServletResponse.SC_UNAUTHORIZED); + logger.error("Basic Authentication Error while performing WidgetsCatalogController.saveWidgetCatalog in widget microserivce. Please check your username and password."); + return new ValidationRespond(false, "Basic Authentication Error, please check your username and password."); + } + try { + //check the zip file structure first + respond = storageService.checkZipFile(file); + if(respond.isValid()){ + //update the widget catalog + WidgetCatalog newWidget = new ObjectMapper().readValue(widget, WidgetCatalog.class); + widgetCatalogService.updateWidgetCatalog(widgetId, newWidget); + logger.debug("WidgetsCatalogController.saveWidgetCatalog: updating widget with widgetId={}", widgetId); + //update the widget zip file + storageService.update(file, newWidget, widgetId); + } + } catch (Exception e) { + logger.error("Exception occurred while performing WidgetsCatalogController.saveWidgetCatalog in widget microservices. Details:" + e.getMessage()); + e.printStackTrace(); + } + return respond; + } + + @ResponseBody + @RequestMapping(value = { "/microservices/widgetCatalog/{widgetId}" }, method = { + RequestMethod.DELETE }, produces = "application/json") + public void deleteOnboardingWidget(HttpServletRequest request, HttpServletResponse response, + @PathVariable("widgetId") long widgetId, @RequestHeader(value="Authorization") String auth) throws IOException{ + if(!util.authorization(auth, security_user, security_pass)){ + response.sendError(HttpServletResponse.SC_UNAUTHORIZED); + logger.error("Basic Authentication Error while performing WidgetsCatalogController.deleteOnboardingWidget in widget microserivce. Please check your username and password."); + return; + } + try { + logger.debug("WidgetsCatalogController.deleteOnboardingWidget: deleting widget {}", widgetId); + //WidgetCatalog widget = widgetCatalogService.getWidgetCatalog(widgetId); + widgetCatalogService.deleteWidgetCatalog(widgetId); + storageService.deleteWidgetFile(widgetId); + } catch (Exception e) { + logger.error("Exception occurred while performing WidgetsCatalogController.deleteOnboardingWidget in widget microservices. Details:" + e.getMessage()); + } + } + + @ResponseBody + @RequestMapping(value = { "/microservices/widgetCatalog/parameters/{widgetId}" }, method = RequestMethod.GET, produces = "application/json") + public Long getServiceIdByWidget(HttpServletRequest request, HttpServletResponse response, + @PathVariable("widgetId") Long widgetId, @RequestHeader(value="Authorization") String auth) throws IOException { + + Long serviceId = null; + if(!util.authorization(auth, security_user, security_pass)){ + response.sendError(HttpServletResponse.SC_UNAUTHORIZED); + logger.error("Basic Authentication Error while performing WidgetsCatalogController.getServiceIdByWidget in widget microserivce. Please check your username and password."); + return serviceId; + } + try{ + logger.debug("WidgetsCatalogController.getServiceIdByWidget: getting service Id for widget {}", widgetId); + serviceId = widgetCatalogService.getServiceIdByWidget(widgetId); + }catch(Exception e){ + logger.error("Exception occurred while performing WidgetsCatalogController.getServiceIdByWidget in widget microservices. Details:" + e.getMessage()); + } + return serviceId; + } + + + @ResponseBody + @RequestMapping(value = { "/microservices/widgetCatalog/service/{serviceId}" }, method = RequestMethod.GET, produces = "application/json") + public List<WidgetCatalog> getWidgetByServiceId(HttpServletRequest request, HttpServletResponse response, + @PathVariable("serviceId") Long serviceId, @RequestHeader(value="Authorization") String auth) throws IOException { + List<WidgetCatalog> list = new ArrayList<WidgetCatalog>(); + if(!util.authorization(auth, security_user, security_pass)){ + response.sendError(HttpServletResponse.SC_UNAUTHORIZED); + logger.error("Basic Authentication Error while performing WidgetsCatalogController.getWidgetByServiceId in widget microserivce. Please check your username and password."); + return null; + } + try{ + logger.debug("WidgetsCatalogController.getWidgetByServiceId: getting service Id for widget {}", serviceId); + list = widgetCatalogService.getWidgetsByServiceId(serviceId); + }catch(Exception e){ + logger.error("Exception occurred while performing WidgetsCatalogController.getWidgetByServiceId in widget microservices. Details:" + e.getMessage()); + } + return list; + } + + + @ResponseBody + @RequestMapping(value = { "/microservices/download/{widgetId}" }, method = RequestMethod.GET, produces = "application/json") + public byte[] getWidgetZipFile(HttpServletRequest request, HttpServletResponse response, + @PathVariable("widgetId") long widgetId, @RequestHeader(value="Authorization") String auth) throws Exception { + byte[] byteFile = null; + if(!util.authorization(auth, security_user, security_pass)){ + response.sendError(HttpServletResponse.SC_UNAUTHORIZED); + logger.error("Basic Authentication Error while performing WidgetsCatalogController.getWidgetZipFile in widget microserivce. Please check your username and password."); + return byteFile; + } + try { + byteFile = storageService.getWidgetCatalogContent(widgetId); + logger.debug("WidgetsCatalogController.getWidgetZipFile: getting widget zip file for widget with id {}", widgetId); + } catch (Exception e) { + logger.error("Exception occurred while performing WidgetsCatalogController.getWidgetZipFile in widget microservices. Details:" + e.getMessage()); + } + return byteFile; + } + + +}
\ No newline at end of file |