diff options
author | 2018-01-30 17:29:36 -0500 | |
---|---|---|
committer | 2018-02-01 15:10:02 -0500 | |
commit | 21a8761f684745bb300e075c7e98ad897ace9eed (patch) | |
tree | 6d585c3fe39fbb42a314941dbc8646e6ccf188cf /ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service | |
parent | 3af8af1310d5a27cb58be29505573f0bbdc1717c (diff) |
Security/ Package Name changes
Issue-ID: PORTAL-174, PORTAL-157, PORTAL-156, PORTAL-148, PORTAL-145,
PORTAL-140, PORTAL-133, PORTAL-121, PORTAL-111, PORTAL-88
Includes security fixes, Role Centralization, replace certain ECOMP
occurrences etc
Change-Id: I3c8b706709c6b92e646e3cbe50c2d660e8a46ef4
Signed-off-by: st782s <statta@research.att.com>
Diffstat (limited to 'ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service')
8 files changed, 0 insertions, 1337 deletions
diff --git a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/InitializationService.java b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/InitializationService.java deleted file mode 100644 index a6e9fcbf..00000000 --- a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/InitializationService.java +++ /dev/null @@ -1,44 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.widget.service; - -public interface InitializationService { - - void initialize(); - -} diff --git a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/MicroserviceService.java b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/MicroserviceService.java deleted file mode 100644 index 377ed53c..00000000 --- a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/MicroserviceService.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.widget.service; - -import org.openecomp.portalapp.widget.domain.MicroserviceData; -import org.openecomp.portalapp.widget.domain.MicroserviceParameter; - -/** - * TODO: moved all microservice-related code (domain, controller, service) - * from ecomp portal Backend to widget microservice - */ -public interface MicroserviceService { - - Long saveMicroserivce(MicroserviceData newService); - - void saveMicroserviceParameter(MicroserviceParameter newParameter); - - Long getMicroserviceIdByName(String newServiceName); -} diff --git a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/StorageService.java b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/StorageService.java deleted file mode 100644 index 7d1fab9b..00000000 --- a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/StorageService.java +++ /dev/null @@ -1,71 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.widget.service; - -import java.io.File; -import java.io.UnsupportedEncodingException; - -import org.openecomp.portalapp.widget.domain.ValidationRespond; -import org.openecomp.portalapp.widget.domain.WidgetCatalog; -import org.openecomp.portalapp.widget.domain.WidgetFile; -import org.springframework.web.multipart.MultipartFile; - -public interface StorageService { - - void deleteWidgetFile(long widgetId); - - WidgetFile getWidgetFile(long widgetId); - - String getWidgetMarkup(long widgetId) throws UnsupportedEncodingException; - - String getWidgetController(long widgetId) throws UnsupportedEncodingException; - - String getWidgetFramework(long widgetId) throws UnsupportedEncodingException; - - String getWidgetCSS(long widgetId) throws UnsupportedEncodingException; - - ValidationRespond checkZipFile(MultipartFile file); - - void save(MultipartFile file, WidgetCatalog newWidget, long widgetId); - - void initSave(File file, WidgetCatalog newWidget, long widgetId); - - void update(MultipartFile file, WidgetCatalog newWidget, long widgetId); - - byte[] getWidgetCatalogContent(long widgetId) throws Exception; -} diff --git a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/WidgetCatalogService.java b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/WidgetCatalogService.java deleted file mode 100644 index c8670baf..00000000 --- a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/WidgetCatalogService.java +++ /dev/null @@ -1,65 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.widget.service; - -import java.util.List; - -import org.openecomp.portalapp.widget.domain.WidgetCatalog; - -public interface WidgetCatalogService { - - List<WidgetCatalog> getWidgetCatalog(); - - List<WidgetCatalog> getUserWidgetCatalog(String loginName); - - WidgetCatalog getWidgetCatalog(Long widgetCatalogId); - - void deleteWidgetCatalog(long WidgetCatalogId); - - long saveWidgetCatalog(WidgetCatalog newWidgetCatalog); - - void updateWidgetCatalog(Long widgetCatalogId, WidgetCatalog newWidgetCatalog); - - Long getServiceIdByWidget(Long widgetCatalogId); - - boolean getWidgetIdByName(String newWidgetName); - - List<WidgetCatalog> getWidgetsByServiceId(Long serviceId); - - -} diff --git a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/impl/InitializationServiceImpl.java b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/impl/InitializationServiceImpl.java deleted file mode 100644 index 4b0c04f4..00000000 --- a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/impl/InitializationServiceImpl.java +++ /dev/null @@ -1,170 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.widget.service.impl; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.HashSet; - -import javax.transaction.Transactional; - -import org.openecomp.portalapp.widget.domain.MicroserviceData; -import org.openecomp.portalapp.widget.domain.MicroserviceParameter; -import org.openecomp.portalapp.widget.domain.RoleApp; -import org.openecomp.portalapp.widget.domain.WidgetCatalog; -import org.openecomp.portalapp.widget.service.InitializationService; -import org.openecomp.portalapp.widget.service.MicroserviceService; -import org.openecomp.portalapp.widget.service.StorageService; -import org.openecomp.portalapp.widget.service.WidgetCatalogService; -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.Service; - -/** - * Uploads widget zip archives to Portal. - */ -@Service("initService") -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -public class InitializationServiceImpl implements InitializationService { - - private static final String BASIC_AUTH = "Basic Authentication"; - private static final String PARAMETER_KEY = "resourceType"; - private static final Logger logger = LoggerFactory.getLogger(InitializationServiceImpl.class); - - @Autowired - WidgetCatalogService widgetCatalogService; - - @Autowired - StorageService storageService; - - @Autowired - MicroserviceService microserviceService; - - @Value("${account.user.name}") - String account_user; - - @Value("${account.user.password}") - String account_password; - - @Value("${initialization.widgetData.url}") - String widgetData_url; - - @Override - public void initialize() { - initCommonWidget("News"); - initCommonWidget("Events"); - initCommonWidget("Resources"); - } - - private void initCommonWidget(String name) { - - final String newServiceName = name + " Microservice"; - - Long serviceId = microserviceService.getMicroserviceIdByName(newServiceName); - - if (serviceId == null) { - MicroserviceData newService = new MicroserviceData(); - newService.setName(newServiceName); - newService.setDesc(name); - newService.setAppId(1); - newService.setUrl(widgetData_url); - newService.setSecurityType(BASIC_AUTH); - newService.setUsername(account_user); - newService.setPassword(account_password); - newService.setActive("Y"); - serviceId = microserviceService.saveMicroserivce(newService); - - MicroserviceParameter parameter = new MicroserviceParameter(); - parameter.setServiceId(serviceId); - parameter.setPara_key(PARAMETER_KEY); - String parameter_value = null; - switch (name.toLowerCase()) { - case "news": - parameter_value = "NEWS"; - break; - case "events": - parameter_value = "EVENTS"; - break; - case "resources": - parameter_value = "IMPORTANTRESOURCES"; - break; - } - parameter.setPara_value(parameter_value); - microserviceService.saveMicroserviceParameter(parameter); - } - - if (!widgetCatalogService.getWidgetIdByName(name)) { - WidgetCatalog newWidget = new WidgetCatalog(); - newWidget.setName(name); - newWidget.setDesc(name); - newWidget.setAllowAllUser("1"); - String fileLocation = name.toLowerCase() + "-widget.zip"; - newWidget.setFileLocation(fileLocation); - newWidget.setServiceId(serviceId); - newWidget.setWidgetRoles(new HashSet<RoleApp>()); - long widgetId = widgetCatalogService.saveWidgetCatalog(newWidget); - - File tmpZipFile = new File("/tmp/" + fileLocation); - InputStream fileInputStream = null; - OutputStream outputStream = null; - try { - fileInputStream = this.getClass().getClassLoader().getResourceAsStream(fileLocation); - outputStream = new FileOutputStream(tmpZipFile); - int read = 0; - byte[] bytes = new byte[4096]; - while ((read = fileInputStream.read(bytes)) != -1) { - outputStream.write(bytes, 0, read); - } - outputStream.close(); - fileInputStream.close(); - } catch (Exception e) { - logger.error( - "Exception occurred while performing InitializationServiceImpl.initCommonWidget in widget microservices. Details:", e); - } - storageService.initSave(tmpZipFile, newWidget, widgetId); - tmpZipFile.delete(); - } - } -} diff --git a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/impl/MicroserviceServiceImpl.java b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/impl/MicroserviceServiceImpl.java deleted file mode 100644 index bb1e5f6f..00000000 --- a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/impl/MicroserviceServiceImpl.java +++ /dev/null @@ -1,123 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.widget.service.impl; - -import java.util.List; - -import javax.transaction.Transactional; - -import org.hibernate.Criteria; -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.hibernate.Transaction; -import org.hibernate.criterion.Restrictions; -import org.openecomp.portalapp.widget.domain.MicroserviceData; -import org.openecomp.portalapp.widget.domain.MicroserviceParameter; -import org.openecomp.portalapp.widget.service.MicroserviceService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; - -/** - * TODO: moved all microservice-related code (domain, controller, service) - * from ecomp portal Backend to widget microservice - */ -@Service("microserviceService") -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -public class MicroserviceServiceImpl implements MicroserviceService{ - - private static final Logger logger = LoggerFactory.getLogger(MicroserviceServiceImpl.class); - - @Autowired - private SessionFactory sessionFactory; - - @Override - public Long saveMicroserivce(MicroserviceData newService) { - try{ - logger.debug("MicroserviceServiceImpl.saveMicroserivce: microservice={}", newService); - Session session = sessionFactory.openSession(); - Transaction tx = session.beginTransaction(); - session.save(newService); - tx.commit(); - session.flush(); - session.close(); - } - catch(Exception e){ - logger.error("Exception occurred while performing MicroserviceServiceImpl.saveMicroserivce in widget microservices. Details:" + e.getMessage()); - } - return newService.getId(); - } - - @Override - public void saveMicroserviceParameter(MicroserviceParameter newParameter) { - try{ - logger.debug("MicroserviceServiceImpl.saveMicroserviceData: microservice={}", newParameter); - Session session = sessionFactory.openSession(); - Transaction tx = session.beginTransaction(); - session.save(newParameter); - tx.commit(); - session.flush(); - session.close(); - } - catch(Exception e){ - logger.error("Exception occurred while performing MicroserviceServiceImpl.saveMicroserviceData in widget microservices. Details:" + e.getMessage()); - } - } - - @SuppressWarnings("unchecked") - @Override - public Long getMicroserviceIdByName(String newServiceName) { - - Session session = sessionFactory.openSession(); - Criteria criteria = session.createCriteria(MicroserviceData.class) - .add(Restrictions.eq("name", newServiceName)) - .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); - - List<MicroserviceData> services = criteria.list(); - logger.debug("MicroserviceServiceImpl.getMicroserviceByName: result={}", services); - session.flush(); - session.close(); - - return (services.size() > 0) ? services.get(0).getId() : null; - } - -} diff --git a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/impl/StorageServiceImpl.java b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/impl/StorageServiceImpl.java deleted file mode 100644 index 2f7206ea..00000000 --- a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/impl/StorageServiceImpl.java +++ /dev/null @@ -1,530 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.widget.service.impl; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.UnsupportedEncodingException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.zip.ZipEntry; -import java.util.zip.ZipOutputStream; - -import org.hibernate.Criteria; -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.hibernate.Transaction; -import org.hibernate.criterion.Restrictions; -import org.openecomp.portalapp.widget.constant.WidgetConstant; -import org.openecomp.portalapp.widget.domain.ValidationRespond; -import org.openecomp.portalapp.widget.domain.WidgetCatalog; -import org.openecomp.portalapp.widget.domain.WidgetFile; -import org.openecomp.portalapp.widget.excetpion.StorageException; -import org.openecomp.portalapp.widget.service.StorageService; -import org.openecomp.portalapp.widget.service.WidgetCatalogService; -import org.openecomp.portalapp.widget.utils.UnzipUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.multipart.MultipartFile; - -@Service -public class StorageServiceImpl implements StorageService { - - private static final Logger logger = LoggerFactory.getLogger(StorageServiceImpl.class); - - @Autowired - private SessionFactory sessionFactory; - - @Autowired - WidgetCatalogService widgetCatalogService; - - @Override - @Transactional - public void deleteWidgetFile(long widgetId) { - WidgetFile widgetFile = getWidgetFile(widgetId); - logger.debug("StorageServiceImpl.deleteWidgetFile: deleting widget file {}", widgetId); - if (widgetFile == null) { - logger.debug( - "StorageServiceImpl.deleteWidgetFile: No widget file found in database while performing StorageServiceImpl.deleteWidgetFile."); - return; - } - Session session = sessionFactory.getCurrentSession(); - Transaction tx = session.beginTransaction(); - session.delete(widgetFile); - tx.commit(); - } - - @Override - @SuppressWarnings("unchecked") - @Transactional - public WidgetFile getWidgetFile(long widgetId) { - logger.debug("StorageServiceImpl.getWidgetFile: getting widget file {}", widgetId); - WidgetFile widgetFile = null; - Session session = sessionFactory.openSession(); - Criteria criteria = session.createCriteria(WidgetFile.class); - criteria.add(Restrictions.eq("widgetId", widgetId)); - List<WidgetFile> widgetFiles = criteria.list(); - session.flush(); - session.close(); - if (widgetFiles.size() > 0) - widgetFile = widgetFiles.get(0); - return widgetFile; - } - - @Override - public ValidationRespond checkZipFile(MultipartFile file) { - StringBuilder error_msg = new StringBuilder(); - UnzipUtil unzipper = new UnzipUtil(); - Map<String, byte[]> map; - File convFile; - boolean isValid = true; - if (!file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf('.')).equals(".zip")) { - isValid = false; - error_msg.append(WidgetConstant.VALIDATION_MESSAGE_ZIP); - logger.error("StorageServiceImpl.checkZipFile: invalid file format"); - } - try { - if (file.isEmpty()) { - logger.error( - "StorageServiceImpl.checkZipFile: Failed to store empty file " + file.getOriginalFilename()); - throw new StorageException( - "StorageServiceImpl.checkZipFile: Failed to store empty file " + file.getOriginalFilename()); - } - String fileLocation = file.getOriginalFilename(); - logger.debug("StorageServiceImpl.checkZipFile: store the widget to:" + fileLocation); - convFile = new File(fileLocation); - FileOutputStream fos = new FileOutputStream(convFile); - fos.write(file.getBytes()); - fos.close(); - map = unzipper.unzip_db(fileLocation, ".", "tempWidgets"); - convFile.delete(); - } catch (IOException e) { - logger.error("StorageServiceImpl.checkZipFile: Failed to store file " + file.getOriginalFilename(), e); - throw new StorageException( - "torageServiceImpl.checkZipFile: Failed to store file " + file.getOriginalFilename(), e); - } - - for (byte[] b : map.values()) { - if (isValid && b == null) { - isValid = false; - error_msg.append(WidgetConstant.VALIDATION_MESSAGE_FILES); - break; - } - } - return new ValidationRespond(isValid, error_msg.toString()); - } - - @Override - @Transactional - public void save(MultipartFile file, WidgetCatalog newWidget, long widgetId) { - - UnzipUtil unzipper = new UnzipUtil(); - Map<String, byte[]> map; - File convFile; - try { - if (file.isEmpty()) { - logger.error("Failed to store empty file " + file.getOriginalFilename()); - throw new StorageException("Failed to store empty file " + file.getOriginalFilename()); - } - String fileLocation = file.getOriginalFilename(); - logger.debug("StorageServiceImpl.save: store the widget to:" + fileLocation); - convFile = new File(fileLocation); - FileOutputStream fos = new FileOutputStream(convFile); - fos.write(file.getBytes()); - fos.close(); - map = unzipper.unzip_db(fileLocation, ".", "tempWidgets"); - convFile.delete(); - } catch (IOException e) { - logger.error("StorageServiceImpl.save: Failed to store file " + file.getOriginalFilename(), e); - throw new StorageException("Failed to store file " + file.getOriginalFilename(), e); - } - saveHelper(newWidget, widgetId, map); - } - - @Override - @Transactional - public void initSave(File file, WidgetCatalog newWidget, long widgetId) { - - UnzipUtil unzipper = new UnzipUtil(); - Map<String, byte[]> map; - - try { - String fileLocation = file.getPath(); - logger.debug("StorageServiceImpl.save: store the widget to:" + fileLocation); - map = unzipper.unzip_db(fileLocation, ".", "tempWidgets"); - } catch (IOException e) { - logger.error("StorageServiceImpl.save: Failed to store file " + file.getName(), e); - throw new StorageException("Failed to store file " + file.getName(), e); - } - - saveHelper(newWidget, widgetId, map); - } - - /** - * Helper method for saving widget files (controller.js, framework.js, - * markup.html and style.css) to ep_widget_catalog_files table in database - * - * @param newWidget - * @param widgetId - * @param map - */ - private void saveHelper(WidgetCatalog newWidget, long widgetId, Map<String, byte[]> map) { - - logger.debug("Going to save widget " + newWidget); - WidgetFile widgetFile = new WidgetFile(); - widgetFile.setName(newWidget.getName()); - widgetFile.setWidgetId(widgetId); - - InputStream fileInputStream = this.getClass().getClassLoader().getResourceAsStream("framework-template.js"); - - String sb = null; - try { - byte[] bytes = new byte[fileInputStream.available()]; - fileInputStream.read(bytes); - sb = new String(bytes, "UTF-8"); - } catch (IOException e) { - logger.error("StorageServiceImpl.save: Failed to load framework-template.js file ", e); - e.printStackTrace(); - } finally { - if (fileInputStream != null) { - try { - fileInputStream.close(); - } catch (IOException e) { - logger.error("StorageServiceImpl.update: Failed to close the fileInputStream ", e); - } - } - } - - String namespace = "Portal" + widgetId + "Widget"; - String controllerName = "Portal" + widgetId + "Ctrl"; - String cssName = "portal" + widgetId + "-css-ready"; - String colorArg1 = "color: #fff"; - String framework = sb.replaceAll("ARGUMENT1", namespace).replaceAll("ARGUMENT2", controllerName) - .replaceAll("ARGUMENT3", cssName).replaceAll("CSS_ARG1", colorArg1) - .replaceAll("MICROSERVICE_ID", newWidget.getServiceId().toString()) - .replaceAll("WIDGET_ID", Long.toString(widgetId)); - - widgetFile.setFramework(framework.getBytes()); - - final byte[] controllerLoc = map.get(WidgetConstant.WIDGET_CONTROLLER_LOCATION); - if (controllerLoc == null || controllerLoc.length == 0) - throw new IllegalArgumentException( - "Map is missing required key " + WidgetConstant.WIDGET_CONTROLLER_LOCATION); - String javascript = new String(controllerLoc); - String functionHeader = javascript.substring(javascript.indexOf("function"), javascript.indexOf(")") + 1); - String functionName = functionHeader.substring(functionHeader.indexOf(" "), functionHeader.indexOf("(")).trim(); - javascript = javascript.replaceFirst(functionName, controllerName); - String functionParam = functionHeader.substring(functionHeader.indexOf("(") + 1, functionHeader.indexOf(")")); - List<String> paramList = Arrays.asList(functionParam.split(",")); - - int left_bracket_index = javascript.indexOf("{") + 1; - String widgetData = namespace + "=" + namespace + "||{};" + "var res = " + namespace + ".widgetData;"; - javascript = javascript.substring(0, left_bracket_index) + widgetData - + javascript.substring(left_bracket_index); - - StringBuilder injectStr = new StringBuilder().append("["); - for (int i = 0; i < paramList.size(); i++) { - if (i == paramList.size() - 1) - injectStr.append("'" + paramList.get(i).trim() + "'];"); - else - injectStr.append("'" + paramList.get(i).trim() + "',"); - } - javascript = namespace + ".controller = " + javascript + ";" + namespace + ".controller.$inject = " - + injectStr.toString(); - - String html = new String(map.get(WidgetConstant.WIDGET_MARKUP_LOCATION)).replaceFirst(functionName, - controllerName); - ; - - Pattern cssPattern = Pattern.compile("#.*-css-ready"); - Matcher cssMatcher = cssPattern.matcher(new String(map.get(WidgetConstant.WIDGET_STYLE_LOCATION))); - if (cssMatcher.find()) { - widgetFile.setCss(new String(map.get(WidgetConstant.WIDGET_STYLE_LOCATION)) - .replace(cssMatcher.group(0), "#" + cssName).getBytes()); - } - - widgetFile.setMarkup(html.getBytes()); - widgetFile.setController(javascript.getBytes()); - Session session = sessionFactory.openSession(); - session.save(widgetFile); - session.flush(); - session.close(); - // sessionFactory.getCurrentSession().save(widgetFile); - logger.debug( - "StorageServiceImpl.save: saved fraemwork.js controller.js, markup.html and style.css files to the database for widget {}", - widgetId); - - } - - @Override - public void update(MultipartFile file, WidgetCatalog newWidget, long widgetId) { - UnzipUtil unzipper = new UnzipUtil(); - Map<String, byte[]> map; - File convFile; - try { - if (file.isEmpty()) { - logger.error("StorageServiceImpl.update: Failed to store empty file " + file.getOriginalFilename()); - throw new StorageException("Failed to store empty file " + file.getOriginalFilename()); - } - String fileLocation = file.getOriginalFilename(); - logger.debug("StorageServiceImpl.update: store the widget to:" + fileLocation); - convFile = new File(fileLocation); - FileOutputStream fos = new FileOutputStream(convFile); - fos.write(file.getBytes()); - fos.close(); - map = unzipper.unzip_db(fileLocation, ".", "tempWidgets"); - convFile.delete(); - } catch (IOException e) { - logger.error("StorageServiceImpl.update: Failed to store file " + file.getOriginalFilename(), e); - throw new StorageException("StorageServiceImpl.update: Failed to store file " + file.getOriginalFilename(), - e); - } - WidgetFile widgetFile = getWidgetFile(widgetId); - - InputStream fileInputStream = this.getClass().getClassLoader().getResourceAsStream("framework-template.js"); - String sb = null; - try { - byte[] bytes = new byte[fileInputStream.available()]; - fileInputStream.read(bytes); - sb = new String(bytes, "UTF-8"); - } catch (IOException e) { - logger.error("StorageServiceImpl.save: Failed to load framework-template.js file ", e); - e.printStackTrace(); - } finally { - if (fileInputStream != null) { - try { - fileInputStream.close(); - } catch (IOException e) { - logger.error("StorageServiceImpl.update: Failed to close the fileInputStream ", e); - e.printStackTrace(); - } - } - } - - String namespace = "Portal" + widgetId + "Widget"; - String controllerName = "Portal" + widgetId + "Ctrl"; - String cssName = "portal" + widgetId + "-css-ready"; - String colorArg1 = "color: #fff"; - String framework = sb.replaceAll("ARGUMENT1", namespace).replaceAll("ARGUMENT2", controllerName) - .replaceAll("ARGUMENT3", cssName).replaceAll("CSS_ARG1", colorArg1) - .replaceAll("MICROSERVICE_ID", newWidget.getServiceId().toString()) - .replaceAll("WIDGET_ID", Long.toString(widgetId)); - widgetFile.setFramework(framework.getBytes()); - - String javascript = new String(map.get(WidgetConstant.WIDGET_CONTROLLER_LOCATION)); - String functionHeader = javascript.substring(javascript.indexOf("function"), javascript.indexOf(")") + 1); - String functionName = functionHeader.substring(functionHeader.indexOf(" "), functionHeader.indexOf("(")).trim(); - javascript = javascript.replaceFirst(functionName, controllerName); - String functionParam = functionHeader.substring(functionHeader.indexOf("(") + 1, functionHeader.indexOf(")")); - List<String> paramList = Arrays.asList(functionParam.split(",")); - - int left_bracket_index = javascript.indexOf("{") + 1; - String widgetData = namespace + "=" + namespace + "||{};" + "var res = " + namespace + ".widgetData;"; - javascript = javascript.substring(0, left_bracket_index) + widgetData - + javascript.substring(left_bracket_index); - - StringBuilder injectStr = new StringBuilder().append("["); - for (int i = 0; i < paramList.size(); i++) { - if (i == paramList.size() - 1) - injectStr.append("'" + paramList.get(i).trim() + "'];"); - else - injectStr.append("'" + paramList.get(i).trim() + "',"); - } - javascript = namespace + ".controller = " + javascript + ";" + namespace + ".controller.$inject = " - + injectStr.toString(); - - String html = new String(map.get(WidgetConstant.WIDGET_MARKUP_LOCATION)).replaceFirst(functionName, - controllerName); - ; - - Pattern cssPattern = Pattern.compile("#.*-css-ready"); - Matcher cssMatcher = cssPattern.matcher(new String(map.get(WidgetConstant.WIDGET_STYLE_LOCATION))); - if (cssMatcher.find()) { - widgetFile.setCss(new String(map.get(WidgetConstant.WIDGET_STYLE_LOCATION)) - .replace(cssMatcher.group(0), "#" + cssName).getBytes()); - } - - widgetFile.setMarkup(html.getBytes()); - widgetFile.setController(javascript.getBytes()); - // widgetFile.setCss(map.get(WidgetConstant.WIDGET_STYLE_LOCATION)); - Session session = sessionFactory.openSession(); - Transaction tx = session.beginTransaction(); - session.update(widgetFile); - tx.commit(); - session.flush(); - session.close(); - logger.debug( - "StorageServiceImpl.save: updated fraemwork.js controller.js, markup.html and style.css files to the database for widget {}", - widgetId); - } - - @Override - @SuppressWarnings("unchecked") - @Transactional - public String getWidgetMarkup(long widgetId) throws UnsupportedEncodingException { - String markup = null; - Session session = sessionFactory.getCurrentSession(); - Criteria criteria = session.createCriteria(WidgetFile.class); - criteria.add(Restrictions.eq("widgetId", widgetId)); - List<WidgetFile> widgetFile = criteria.list(); - logger.debug("StorageServiceImpl.getWidgetMarkup: getting widget markup result={}", widgetFile); - - if (widgetFile.size() > 0) - markup = new String(widgetFile.get(0).getMarkup(), "UTF-8"); - return markup; - } - - @Override - @SuppressWarnings("unchecked") - @Transactional - public String getWidgetController(long widgetId) throws UnsupportedEncodingException { - String controller = null; - Session session = sessionFactory.getCurrentSession(); - Criteria criteria = session.createCriteria(WidgetFile.class); - criteria.add(Restrictions.eq("widgetId", widgetId)); - List<WidgetFile> widgetFile = criteria.list(); - logger.debug("StorageServiceImpl.getWidgetController: getting widget controller result={}", widgetFile); - - if (widgetFile.size() > 0) - controller = new String(widgetFile.get(0).getController(), "UTF-8"); - return controller; - } - - @Override - @SuppressWarnings("unchecked") - @Transactional - public String getWidgetFramework(long widgetId) throws UnsupportedEncodingException { - String framework = null; - Session session = sessionFactory.getCurrentSession(); - Criteria criteria = session.createCriteria(WidgetFile.class); - criteria.add(Restrictions.eq("widgetId", widgetId)); - List<WidgetFile> widgetFile = criteria.list(); - logger.debug("StorageServiceImpl.getWidgetFramework: getting widget framework result={}", widgetFile); - - if (widgetFile.size() > 0) - framework = new String(widgetFile.get(0).getFramework(), "UTF-8"); - return framework; - } - - @Override - @SuppressWarnings("unchecked") - @Transactional - public String getWidgetCSS(long widgetId) throws UnsupportedEncodingException { - String css = null; - Session session = sessionFactory.getCurrentSession(); - Criteria criteria = session.createCriteria(WidgetFile.class); - criteria.add(Restrictions.eq("widgetId", widgetId)); - List<WidgetFile> widgetFile = criteria.list(); - logger.debug("StorageServiceImpl.getWidgetCSS: getting widget css result={}", widgetFile); - - if (widgetFile.size() > 0) - css = new String(widgetFile.get(0).getCss(), "UTF-8"); - return css; - } - - @Override - @Transactional - public byte[] getWidgetCatalogContent(long widgetId) throws Exception { - - WidgetCatalog widget = widgetCatalogService.getWidgetCatalog(widgetId); - String namespace = "Portal" + widgetId + "Widget"; - String controllerName = "Portal" + widgetId + "Ctrl"; - String cssName = "portal" + widgetId + "-css-ready"; - - String styles = getWidgetCSS(widgetId).replaceAll(cssName, widget.getName() + "-css-ready"); - File f = File.createTempFile("temp", ".zip"); - ZipOutputStream out = new ZipOutputStream(new FileOutputStream(f)); - ZipEntry e = new ZipEntry(widget.getName() + "/styles/styles.css"); - out.putNextEntry(new ZipEntry(widget.getName() + "/")); - out.putNextEntry(new ZipEntry(widget.getName() + "/styles/")); - out.putNextEntry(e); - byte[] data = styles.getBytes(); - out.write(data, 0, data.length); - - String widgetData = namespace + "=" + namespace + "||{};" + "var res = " + namespace + ".widgetData;"; - String javascript = getWidgetController(widgetId).replace(widgetData, "").replace(namespace + ".controller =", - ""); - - String functionHeader = javascript.substring(javascript.indexOf("function"), javascript.indexOf(")") + 1); - javascript = javascript.replaceFirst(controllerName, widget.getName() + "Ctrl"); - String functionParam = functionHeader.substring(functionHeader.indexOf("(") + 1, functionHeader.indexOf(")")); - StringBuilder injectStr = new StringBuilder().append("["); - List<String> paramList = Arrays.asList(functionParam.split(",")); - for (int i = 0; i < paramList.size(); i++) { - if (i == paramList.size() - 1) - injectStr.append("'" + paramList.get(i).trim() + "'];"); - else - injectStr.append("'" + paramList.get(i).trim() + "',"); - } - javascript = javascript.replace(";" + namespace + ".controller.$inject = " + injectStr.toString(), ""); - - e = new ZipEntry(widget.getName() + "/js/controller.js"); - out.putNextEntry(new ZipEntry(widget.getName() + "/js/")); - out.putNextEntry(e); - data = javascript.getBytes(); - out.write(data, 0, data.length); - - String html = getWidgetMarkup(widgetId).replaceFirst(controllerName, widget.getName() + "Ctrl"); - - // new - // String(map.get(WidgetConstant.WIDGET_MARKUP_LOCATION)).replaceFirst(functionName, - // controllerName);; - - e = new ZipEntry(widget.getName() + "/markup/markup.html"); - out.putNextEntry(new ZipEntry(widget.getName() + "/markup/")); - out.putNextEntry(e); - data = html.getBytes(); - out.write(data, 0, data.length); - out.closeEntry(); - out.close(); - byte[] result = Files.readAllBytes(Paths.get(f.getPath())); - f.delete(); - return result; - } - -} diff --git a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/impl/WidgetCatalogServiceImpl.java b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/impl/WidgetCatalogServiceImpl.java deleted file mode 100644 index 3becc779..00000000 --- a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/openecomp/portalapp/widget/service/impl/WidgetCatalogServiceImpl.java +++ /dev/null @@ -1,280 +0,0 @@ -/*- - * ============LICENSE_START========================================== - * ONAP Portal - * =================================================================== - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * =================================================================== - * - * Unless otherwise specified, all software contained herein is licensed - * under the Apache License, Version 2.0 (the “License”); - * you may not use this software 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. - * - * Unless otherwise specified, all documentation contained herein is licensed - * under the Creative Commons License, Attribution 4.0 Intl. (the “License”); - * you may not use this documentation except in compliance with the License. - * You may obtain a copy of the License at - * - * https://creativecommons.org/licenses/by/4.0/ - * - * Unless required by applicable law or agreed to in writing, documentation - * 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============================================ - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.portalapp.widget.service.impl; - -import java.util.List; -import java.util.Set; - -import javax.transaction.Transactional; - -import org.hibernate.Criteria; -import org.hibernate.Query; -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.hibernate.Transaction; -import org.hibernate.criterion.Restrictions; -import org.openecomp.portalapp.widget.domain.MicroserviceData; -import org.openecomp.portalapp.widget.domain.RoleApp; -import org.openecomp.portalapp.widget.domain.WidgetCatalog; -import org.openecomp.portalapp.widget.service.WidgetCatalogService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.EnableAspectJAutoProxy; -import org.springframework.stereotype.Service; - -@Service("widgetCatalogService") -@Transactional -@org.springframework.context.annotation.Configuration -@EnableAspectJAutoProxy -public class WidgetCatalogServiceImpl implements WidgetCatalogService { - - private static final Logger logger = LoggerFactory.getLogger(WidgetCatalogServiceImpl.class); - - @Autowired - private SessionFactory sessionFactory; - - @SuppressWarnings("unchecked") - @Override - @Transactional - public List<WidgetCatalog> getWidgetCatalog(){ - Session session = sessionFactory.getCurrentSession(); - Criteria criteria = session.createCriteria(WidgetCatalog.class) - .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); - List<WidgetCatalog> widgets = criteria.list(); - logger.debug("WidgetCatalogServiceImpl.getWidgetCatalog: result={}", widgets); - return widgets; - } - - @SuppressWarnings("unchecked") - @Transactional - public List<WidgetCatalog> getUserWidgetCatalog(String loginName){ - Session session = sessionFactory.getCurrentSession(); - StringBuilder sql = new StringBuilder() - - - .append(" select userWidgets.widget_id, userWidgets.wdg_name, userWidgets.wdg_desc, b.x, b.status_cd, b.y, b.height, b.width from ") - .append(" ( ") - .append(" select distinct w.widget_id, w.wdg_name, w.wdg_desc from ") - .append(" ep_widget_catalog w, ") - .append(" ep_widget_catalog_role wr, ") - .append(" fn_user_role ur, ") - .append(" fn_app app, ") - .append(" fn_user u ") - .append(" where ") - .append(" w.widget_id = wr.WIDGET_ID and ") - .append(" ur.app_id = app.app_id and ") - .append(" app.enabled = 'Y' and ") - .append(" wr.role_id = ur.role_id and ") - .append(" ur.user_id = u.user_id and ") - .append(" u.login_id = '" + loginName + "' and (w.all_user_flag = 'N' or w.all_user_flag is null) ") - .append(" ") - .append(" union all ") - .append(" ") - .append(" ") - .append(" select distinct w.widget_id, w.wdg_name, w.wdg_desc from ") - .append(" ep_widget_catalog w ") - .append(" where w.all_user_flag = 'Y' ") - .append(" ") - .append(" ) userWidgets ") - .append(" ") - .append(" left join ") - .append(" ") - .append(" ( ") - .append(" select case when pers.user_id is null then sel.user_id else pers.user_id end as 'user_id', case when sel.widget_id is null then ") - .append(" pers.widget_id else sel.widget_id end as 'widget_id', pers.x, sel.status_cd, pers.y, pers.height, pers.width ") - .append(" from (select * from ep_pers_user_widget_placement where user_id = (select user_id from fn_user where login_id = '" + loginName + "')) pers ") - .append(" left outer join ") - .append(" (select * from ep_pers_user_widget_sel where user_id = (select user_id from fn_user where login_id = '" + loginName + "')) sel ") - .append(" on (pers.user_id = sel.user_id and pers.widget_id = sel.widget_id) ") - .append(" ") - .append(" union ") - .append(" ") - .append(" select case when pers.user_id is null then sel.user_id else pers.user_id end as 'user_id', case when sel.widget_id is null ") - .append(" then pers.widget_id else sel.widget_id end as 'widget_id', pers.x, sel.status_cd, pers.y, pers.height, pers.width ") - .append(" from (select * from ep_pers_user_widget_placement where user_id = (select user_id from fn_user where login_id = '" + loginName + "')) pers ") - .append(" right outer join ") - .append(" (select * from ep_pers_user_widget_sel where user_id = (select user_id from fn_user where login_id = '" + loginName + "')) sel ") - .append(" on (pers.user_id = sel.user_id and pers.widget_id = sel.widget_id) ") - .append(" ") - .append(" order by user_id, widget_id ") - .append(" )b ") - .append(" on ") - .append(" (userWidgets.widget_id = b.widget_id) order by b.x; "); - - - - Query query = session.createSQLQuery(sql.toString()); - List<WidgetCatalog> widgets = query.list(); - logger.debug("WidgetCatalogServiceImpl.getUserWidgetCatalog: result size={}", widgets); - return widgets; - } - - @Override - public WidgetCatalog getWidgetCatalog(Long widgetCatalogId) { - Session session = sessionFactory.getCurrentSession(); - Transaction tx = session.beginTransaction(); - WidgetCatalog widget = (WidgetCatalog) session.get(WidgetCatalog.class, widgetCatalogId); - tx.commit(); - logger.debug("WidgetCatalogServiceImpl.getWidgetCatalog: getting widget={}", widget); - return widget; - } - - @Override - public void deleteWidgetCatalog(long widgetCatalogId) { - logger.debug("WidgetCatalogServiceImpl.deleteWidgetCatalog: deleting the widget with widgetId={}", widgetCatalogId); - WidgetCatalog widget = getWidgetCatalog(widgetCatalogId); - if (widget == null){ - logger.error("No widget found in database while performing WidgetCatalogServiceImpl.deleteWidgetCatalog."); - return; - } - Session session = sessionFactory.getCurrentSession(); - Transaction tx = session.beginTransaction(); - Query query = session.createSQLQuery("delete from ep_pers_user_widget_sel where widget_id = :widgetId ").setParameter("widgetId", widgetCatalogId); - query.executeUpdate(); - query = session.createSQLQuery("delete from ep_pers_user_widget_placement where widget_id = :widgetId ").setParameter("widgetId", widgetCatalogId); - query.executeUpdate(); - query = session.createSQLQuery("delete from ep_widget_catalog_files where widget_id = :widgetId ").setParameter("widgetId", widgetCatalogId); - query.executeUpdate(); - query = session.createSQLQuery("delete from ep_widget_catalog_parameter where widget_id = :widgetId ").setParameter("widgetId", widgetCatalogId); - query.executeUpdate(); - session.delete(widget); - tx.commit(); - } - - @Override - public long saveWidgetCatalog(WidgetCatalog newWidgetCatalog) { - - try{ - if(newWidgetCatalog.getAllowAllUser().equals("1")) - newWidgetCatalog.setAllowAllUser("Y"); - else - newWidgetCatalog.setAllowAllUser("N"); - - logger.debug("WidgetCatalogServiceImpl.saveWidgetCatalog: widget={}", newWidgetCatalog); - Session session = sessionFactory.openSession(); - Transaction tx = session.beginTransaction(); - session.save(newWidgetCatalog); - tx.commit(); - session.flush(); - session.close(); - updateAppId(newWidgetCatalog.getId(), newWidgetCatalog.getWidgetRoles()); - } - catch(Exception e){ - logger.error("Exception occurred while performing WidgetCatalogServiceImpl.saveWidgetCatalog in widget microservices. Details:" + e.getMessage()); - } - return newWidgetCatalog.getId(); - } - - @Override - public void updateWidgetCatalog(Long widgetCatalogId, WidgetCatalog newWidgetCatalog) { - logger.debug("WidgetCatalogServiceImpl.updateWidgetCatalog: widget={}", newWidgetCatalog); - WidgetCatalog oldWidget = getWidgetCatalog(widgetCatalogId); - try{ - if (newWidgetCatalog.getAllowAllUser().equals("1")) - newWidgetCatalog.setAllowAllUser("Y"); - else - newWidgetCatalog.setAllowAllUser("N"); - - newWidgetCatalog.setId(widgetCatalogId); - newWidgetCatalog.setServiceId(oldWidget.getServiceId()); - Session session = sessionFactory.openSession(); - Transaction tx = session.beginTransaction(); - session.update(newWidgetCatalog); - tx.commit(); - session.flush(); - session.close(); - updateAppId(newWidgetCatalog.getId(), newWidgetCatalog.getWidgetRoles()); - }catch(Exception e){ - logger.error("Exception occurred while performing WidgetCatalogServiceImpl.updateWidgetCatalog in widget microservices. Details:" + e.getMessage()); - } - - } - - @Override - public Long getServiceIdByWidget(Long widgetCatalogId) { - Session session = sessionFactory.getCurrentSession(); - WidgetCatalog widget = (WidgetCatalog) session.get(WidgetCatalog.class, widgetCatalogId); - logger.debug("WidgetCatalogServiceImpl.getServiceIdByWidget: result={}", widget); - return widget.getServiceId(); - } - - @Override - public List<WidgetCatalog> getWidgetsByServiceId(Long serviceId) { - Session session = sessionFactory.getCurrentSession(); - Criteria criteria = session.createCriteria(WidgetCatalog.class) - .add(Restrictions.eq("serviceId", serviceId)) - .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); - List<WidgetCatalog> widgets = criteria.list(); - logger.debug("WidgetCatalogServiceImpl.getWidgetCatalog: result={}", widgets); - return widgets; - } - - - - - - private void updateAppId(long widgetId, Set<RoleApp> roles){ - Session session = sessionFactory.openSession(); - for(RoleApp role: roles){ - String sql = "UPDATE ep_widget_catalog_role SET app_id = " + role.getApp().getAppId() + " WHERE widget_id = " + widgetId + " AND ROLE_ID = " + role.getRoleId() ; - Query query = session.createSQLQuery(sql); - query.executeUpdate(); - } - session.flush(); - session.close(); - } - - @Override - public boolean getWidgetIdByName(String newWidgetName) { - Session session = sessionFactory.openSession(); - Criteria criteria = session.createCriteria(WidgetCatalog.class) - .add(Restrictions.eq("name", newWidgetName)) - .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); - - List<MicroserviceData> widgets = criteria.list(); - logger.debug("WidgetCatalogServiceImpl.getWidgetIdByName: result={}", widgets); - session.flush(); - session.close(); - - return (widgets.size() > 0) ? true : false; - } - - -} - |