import java.io.File;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+import javax.annotation.PostConstruct;
import javax.servlet.ServletContext;
+import org.apache.commons.lang3.StringUtils;
+import org.onap.portalsdk.core.domain.App;
+import org.onap.portalsdk.core.service.DataAccessService;
import org.onap.portalsdk.core.util.SystemProperties;
import org.onap.vid.aai.AaiClient;
import org.onap.vid.aai.AaiClientInterface;
import org.onap.vid.client.SyncRestClient;
import org.onap.vid.logging.VidLoggingInterceptor;
import org.onap.vid.properties.AsdcClientConfiguration;
+import org.onap.vid.properties.Features;
import org.onap.vid.properties.VidProperties;
import org.onap.vid.scheduler.SchedulerService;
import org.onap.vid.scheduler.SchedulerServiceImpl;
import org.onap.vid.utils.JoshworksJacksonObjectMapper;
import org.onap.vid.utils.Logging;
import org.onap.vid.utils.SystemPropertiesWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class WebConfig implements WebMvcConfigurer {
- /**
- * Gets the object mapper.
- *
- * @return the object mapper
- */
+ @Autowired DataAccessService dataAccessService;
+ @Autowired FeatureManager featureManager;
+ String portalAppPassword = System.getenv(VidProperties.PORTAL_APP_PASSWORD_ENVIRONMENT_VARIABLE_NAME);
+
+ @PostConstruct
+ public void persistPortalAppPassword() {
+ if (featureManager.isActive(Features.FLAG_GUILIN_CONFIG_PORTAL_APP_PASSWORD)) {
+ if (StringUtils.isEmpty(portalAppPassword)) {
+ return;
+ }
+
+ // Read self app object (i.e. where id=1) from database as AppServiceImpl.getDefaultApp() does
+ App defaultApp = (App) dataAccessService.getDomainObject(App.class, 1L, null);
+
+ if (defaultApp == null || StringUtils.equals(defaultApp.getAppPassword(), portalAppPassword)) {
+ return;
+ }
+
+ defaultApp.setAppPassword(portalAppPassword);
+ dataAccessService.saveDomainObject(defaultApp, null);
+ }
+ }
+
+
@Bean
public com.fasterxml.jackson.databind.ObjectMapper getObjectMapper() {
return new com.fasterxml.jackson.databind.ObjectMapper().registerModule(new KotlinModule());