diff options
author | 2025-02-04 08:07:50 +0100 | |
---|---|---|
committer | 2025-02-04 11:00:36 +0100 | |
commit | f0aaa98a50edbc8b44a8b14c8c21287e623b6ff0 (patch) | |
tree | a90c93578138797bc3f59fb1f08b9ed5d6d3a77d /src/main/java | |
parent | 8b002a9cf36de2e65f82d5c9999200246d48af33 (diff) |
Use 1.15.5 aai-common release
Issue-ID: AAI-4119
Change-Id: I392037529a8e377cf319981772255d417addac6f
Signed-off-by: Fiete Ostkamp <Fiete.Ostkamp@telekom.de>
Diffstat (limited to 'src/main/java')
36 files changed, 229 insertions, 529 deletions
diff --git a/src/main/java/org/onap/aai/GraphAdminApp.java b/src/main/java/org/onap/aai/GraphAdminApp.java index 74328ac..0a5d33d 100644 --- a/src/main/java/org/onap/aai/GraphAdminApp.java +++ b/src/main/java/org/onap/aai/GraphAdminApp.java @@ -22,7 +22,6 @@ package org.onap.aai; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.onap.aai.aailog.logs.AaiDebugLog; -import org.onap.aai.restclient.PropertyPasswordConfiguration; import org.onap.aai.dbmap.AAIGraph; import org.onap.aai.exceptions.AAIException; import org.onap.aai.logging.ErrorLogHelper; @@ -116,7 +115,6 @@ public class GraphAdminApp { try { SpringApplication app = new SpringApplication(GraphAdminApp.class); app.setRegisterShutdownHook(true); - app.addInitializers(new PropertyPasswordConfiguration()); env = app.run(args).getEnvironment(); } diff --git a/src/main/java/org/onap/aai/config/JettyPasswordDecoder.java b/src/main/java/org/onap/aai/config/AuthProperties.java index 944f951..72053cd 100644 --- a/src/main/java/org/onap/aai/config/JettyPasswordDecoder.java +++ b/src/main/java/org/onap/aai/config/AuthProperties.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * org.onap.aai * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. + * Copyright © 2025 Deutsche Telekom. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,17 +17,28 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.aai.config; -import org.eclipse.jetty.util.security.Password; +import java.util.List; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +import lombok.Data; + +@Data +@Configuration +@ConfigurationProperties(prefix = "aai.basic-auth") +public class AuthProperties { + + boolean enabled = true; -public class JettyPasswordDecoder implements PasswordDecoder { + List<User> users; - @Override - public String decode(String input) { - if (input.startsWith("OBF:")) { - return Password.deobfuscate(input); - } - return Password.deobfuscate("OBF:" + input); - } + @Data + public static class User { + private String username; + private String password; + } } diff --git a/src/main/java/org/onap/aai/config/PasswordDecoder.java b/src/main/java/org/onap/aai/config/PasswordDecoder.java deleted file mode 100644 index 0dcb845..0000000 --- a/src/main/java/org/onap/aai/config/PasswordDecoder.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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.config; - -public interface PasswordDecoder { - - String decode(String input); -} diff --git a/src/main/java/org/onap/aai/config/PropertyPasswordConfiguration.java b/src/main/java/org/onap/aai/config/PropertyPasswordConfiguration.java deleted file mode 100644 index 306ffa0..0000000 --- a/src/main/java/org/onap/aai/config/PropertyPasswordConfiguration.java +++ /dev/null @@ -1,129 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * Modification Copyright © 2019 IBM - * ================================================================================ - * 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.config; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Properties; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.apache.commons.io.IOUtils; -import org.springframework.context.ApplicationContextInitializer; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.core.env.*; - -public class PropertyPasswordConfiguration implements ApplicationContextInitializer<ConfigurableApplicationContext> { - - private static final Pattern decodePasswordPattern = Pattern.compile("password\\((.*?)\\)"); - private PasswordDecoder passwordDecoder = new JettyPasswordDecoder(); - private static final Logger logger = LoggerFactory.getLogger(PropertyPasswordConfiguration.class.getName()); - - @Override - public void initialize(ConfigurableApplicationContext applicationContext) { - ConfigurableEnvironment environment = applicationContext.getEnvironment(); - String certPath = environment.getProperty("server.certs.location"); - File passwordFile = null; - File passphrasesFile = null; - Map<String, Object> sslProps = new LinkedHashMap<>(); - - // Override the passwords from application.properties if we find AAF certman files - if (certPath != null) { - passwordFile = new File(certPath + ".password"); - try (InputStream passwordStream = new FileInputStream(passwordFile)) { - - String keystorePassword = null; - - keystorePassword = IOUtils.toString(passwordStream); - if (keystorePassword != null) { - keystorePassword = keystorePassword.trim(); - } - sslProps.put("server.ssl.key-store-password", keystorePassword); - sslProps.put("schema.service.ssl.key-store-password", keystorePassword); - } catch (IOException e) { - logger.warn("Not using AAF Certman password file, e=" + e.getMessage()); - } - passphrasesFile = new File(certPath + ".passphrases"); - try (InputStream passphrasesStream = new FileInputStream(passphrasesFile)) { - - String truststorePassword = null; - Properties passphrasesProps = new Properties(); - passphrasesProps.load(passphrasesStream); - truststorePassword = passphrasesProps.getProperty("cadi_truststore_password"); - if (truststorePassword != null) { - truststorePassword = truststorePassword.trim(); - } - sslProps.put("server.ssl.trust-store-password", truststorePassword); - sslProps.put("schema.service.ssl.trust-store-password", truststorePassword); - } catch (IOException e) { - logger.warn("Not using AAF Certman passphrases file, e=" + e.getMessage()); - } - } - for (PropertySource<?> propertySource : environment.getPropertySources()) { - Map<String, Object> propertyOverrides = new LinkedHashMap<>(); - decodePasswords(propertySource, propertyOverrides); - if (!propertyOverrides.isEmpty()) { - PropertySource<?> decodedProperties = new MapPropertySource("decoded "+ propertySource.getName(), propertyOverrides); - environment.getPropertySources().addBefore(propertySource.getName(), decodedProperties); - } - - } - if (!sslProps.isEmpty()) { - logger.info("Using AAF Certman files"); - PropertySource<?> additionalProperties = new MapPropertySource("additionalProperties", sslProps); - environment.getPropertySources().addFirst(additionalProperties); - } - } - - private void decodePasswords(PropertySource<?> source, Map<String, Object> propertyOverrides) { - if (source instanceof EnumerablePropertySource) { - EnumerablePropertySource<?> enumerablePropertySource = (EnumerablePropertySource<?>) source; - for (String key : enumerablePropertySource.getPropertyNames()) { - Object rawValue = source.getProperty(key); - if (rawValue instanceof String) { - String decodedValue = decodePasswordsInString((String) rawValue); - propertyOverrides.put(key, decodedValue); - } - } - } - } - - private String decodePasswordsInString(String input) { - if (input == null) { - return null; - } - StringBuffer output = new StringBuffer(); - Matcher matcher = decodePasswordPattern.matcher(input); - while (matcher.find()) { - String replacement = passwordDecoder.decode(matcher.group(1)); - matcher.appendReplacement(output, replacement); - } - matcher.appendTail(output); - return output.toString(); - } - -} diff --git a/src/main/java/org/onap/aai/config/SecurityConfig.java b/src/main/java/org/onap/aai/config/SecurityConfig.java new file mode 100644 index 0000000..a2872ba --- /dev/null +++ b/src/main/java/org/onap/aai/config/SecurityConfig.java @@ -0,0 +1,62 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2025 Deutsche Telekom. All rights reserved. + * ================================================================================ + * 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.config; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.provisioning.InMemoryUserDetailsManager; +import org.springframework.security.web.SecurityFilterChain; +import org.springframework.util.AntPathMatcher; + +@Configuration +@ConditionalOnProperty(name = "aai.basic-auth.enabled", havingValue = "true", matchIfMissing = true) +public class SecurityConfig { + + @Bean + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception{ + httpSecurity.csrf(csrf -> csrf.disable()) + .authorizeHttpRequests(requests -> requests + .antMatchers("/util/echo", "/actuator/**") + .permitAll() + .anyRequest() + .authenticated()) + .httpBasic(); + + return httpSecurity.build(); + } + + @Bean + InMemoryUserDetailsManager userDetailsService(AuthProperties userProperties) { + UserDetails[] users = userProperties.getUsers().stream() + .map(user -> User.withDefaultPasswordEncoder() + .username(user.getUsername()) + .password(user.getPassword()) + .roles("someRole") + .build()) + .toArray(UserDetails[]::new); + + return new InMemoryUserDetailsManager(users); + } +} diff --git a/src/main/java/org/onap/aai/datagrooming/DataGrooming.java b/src/main/java/org/onap/aai/datagrooming/DataGrooming.java index a7cf4c4..d7c36ad 100644 --- a/src/main/java/org/onap/aai/datagrooming/DataGrooming.java +++ b/src/main/java/org/onap/aai/datagrooming/DataGrooming.java @@ -58,7 +58,6 @@ import org.onap.aai.introspection.ModelType; import org.onap.aai.introspection.exceptions.AAIUnknownObjectException; import org.onap.aai.logging.ErrorLogHelper; import org.onap.aai.logging.LogFormatTools; -import org.onap.aai.restclient.PropertyPasswordConfiguration; import org.onap.aai.setup.SchemaVersions; import org.onap.aai.util.AAIConfig; import org.onap.aai.util.AAIConstants; @@ -277,7 +276,7 @@ public class DataGrooming { LOGGER.info("One-Armed Edge Hash Count: " + getOneArmedEdgeHashCount()); // Add more logging if needed for other nodes like Duplicate Groups, Delete Candidates, etc. LOGGER.info("===== End of Data Grooming Summary ====="); - + } catch (Exception ex) { LOGGER.debug("Exception while grooming data " + LogFormatTools.getStackTop(ex)); } @@ -296,8 +295,6 @@ public class DataGrooming { System.setProperty("aai.service.name", DataGrooming.class.getSimpleName()); AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); - PropertyPasswordConfiguration initializer = new PropertyPasswordConfiguration(); - initializer.initialize(ctx); try { ctx.scan( diff --git a/src/main/java/org/onap/aai/datasnapshot/DataSnapshot4HistInit.java b/src/main/java/org/onap/aai/datasnapshot/DataSnapshot4HistInit.java index 071e490..fdf81aa 100644 --- a/src/main/java/org/onap/aai/datasnapshot/DataSnapshot4HistInit.java +++ b/src/main/java/org/onap/aai/datasnapshot/DataSnapshot4HistInit.java @@ -39,7 +39,6 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; -import org.onap.aai.restclient.PropertyPasswordConfiguration; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.apache.commons.configuration2.PropertiesConfiguration; import org.apache.tinkerpop.gremlin.structure.io.IoCore; @@ -112,8 +111,6 @@ public class DataSnapshot4HistInit { System.setProperty("aai.service.name", DataSnapshot4HistInit.class.getSimpleName()); AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); - PropertyPasswordConfiguration initializer = new PropertyPasswordConfiguration(); - initializer.initialize(ctx); try { ctx.scan( "org.onap.aai.config", diff --git a/src/main/java/org/onap/aai/datasnapshot/DataSnapshotTasks.java b/src/main/java/org/onap/aai/datasnapshot/DataSnapshotTasks.java index 36aa560..5a09aee 100644 --- a/src/main/java/org/onap/aai/datasnapshot/DataSnapshotTasks.java +++ b/src/main/java/org/onap/aai/datasnapshot/DataSnapshotTasks.java @@ -23,7 +23,8 @@ import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.Arrays; +import java.util.Date; import org.onap.aai.aailog.logs.AaiScheduledTaskAuditLog; import org.onap.aai.exceptions.AAIException; diff --git a/src/main/java/org/onap/aai/datasnapshot/PartialPropAndEdgeLoader.java b/src/main/java/org/onap/aai/datasnapshot/PartialPropAndEdgeLoader.java index 6f9065a..a5f823d 100644 --- a/src/main/java/org/onap/aai/datasnapshot/PartialPropAndEdgeLoader.java +++ b/src/main/java/org/onap/aai/datasnapshot/PartialPropAndEdgeLoader.java @@ -32,7 +32,6 @@ import org.json.JSONArray; import org.json.JSONObject; import org.slf4j.Logger; -import org.slf4j.LoggerFactory; diff --git a/src/main/java/org/onap/aai/db/schema/ScriptDriver.java b/src/main/java/org/onap/aai/db/schema/ScriptDriver.java index 08ab86d..d71138a 100644 --- a/src/main/java/org/onap/aai/db/schema/ScriptDriver.java +++ b/src/main/java/org/onap/aai/db/schema/ScriptDriver.java @@ -25,7 +25,6 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.configuration2.PropertiesConfiguration; import org.janusgraph.core.JanusGraph; import org.janusgraph.core.JanusGraphFactory; -import org.onap.aai.restclient.PropertyPasswordConfiguration; import org.onap.aai.dbmap.AAIGraphConfig; import org.onap.aai.edges.EdgeIngestor; import org.onap.aai.exceptions.AAIException; @@ -59,8 +58,6 @@ public class ScriptDriver { } AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); - PropertyPasswordConfiguration initializer = new PropertyPasswordConfiguration(); - initializer.initialize(ctx); try { ctx.scan( "org.onap.aai.config", diff --git a/src/main/java/org/onap/aai/dbgen/DupeTool.java b/src/main/java/org/onap/aai/dbgen/DupeTool.java index 8dbe1c6..d65ae25 100644 --- a/src/main/java/org/onap/aai/dbgen/DupeTool.java +++ b/src/main/java/org/onap/aai/dbgen/DupeTool.java @@ -27,7 +27,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; import org.apache.tinkerpop.gremlin.structure.*; import org.janusgraph.core.JanusGraph; import org.janusgraph.core.JanusGraphFactory; -import org.onap.aai.restclient.PropertyPasswordConfiguration; import org.onap.aai.dbmap.AAIGraph; import org.onap.aai.dbmap.AAIGraphConfig; import org.onap.aai.edges.enums.AAIDirection; @@ -465,8 +464,6 @@ public class DupeTool { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); - PropertyPasswordConfiguration initializer = new PropertyPasswordConfiguration(); - initializer.initialize(ctx); try { ctx.scan( "org.onap.aai.config", diff --git a/src/main/java/org/onap/aai/dbgen/DynamicPayloadGenerator.java b/src/main/java/org/onap/aai/dbgen/DynamicPayloadGenerator.java index 63bdea1..f9c9e4b 100644 --- a/src/main/java/org/onap/aai/dbgen/DynamicPayloadGenerator.java +++ b/src/main/java/org/onap/aai/dbgen/DynamicPayloadGenerator.java @@ -31,7 +31,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal; import org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree; import org.apache.tinkerpop.gremlin.structure.Element; import org.apache.tinkerpop.gremlin.structure.Vertex; -import org.onap.aai.restclient.PropertyPasswordConfiguration; import org.onap.aai.db.props.AAIProperties; import org.onap.aai.dbmap.InMemoryGraph; import org.onap.aai.edges.EdgeIngestor; @@ -148,8 +147,6 @@ public class DynamicPayloadGenerator { } public static void main(String[] args) throws AAIException { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); - PropertyPasswordConfiguration initializer = new PropertyPasswordConfiguration(); - initializer.initialize(ctx); try { ctx.scan( "org.onap.aai.config", diff --git a/src/main/java/org/onap/aai/dbgen/schemamod/SchemaMod.java b/src/main/java/org/onap/aai/dbgen/schemamod/SchemaMod.java index f0be6d4..1e96223 100644 --- a/src/main/java/org/onap/aai/dbgen/schemamod/SchemaMod.java +++ b/src/main/java/org/onap/aai/dbgen/schemamod/SchemaMod.java @@ -19,7 +19,6 @@ */ package org.onap.aai.dbgen.schemamod; -import org.onap.aai.restclient.PropertyPasswordConfiguration; import org.onap.aai.exceptions.AAIException; import org.onap.aai.introspection.Loader; import org.onap.aai.introspection.LoaderFactory; @@ -173,8 +172,6 @@ public class SchemaMod { MDC.put("logFilenameAppender", SchemaMod.class.getSimpleName()); AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); - PropertyPasswordConfiguration initializer = new PropertyPasswordConfiguration(); - initializer.initialize(ctx); try { ctx.scan( "org.onap.aai.config", diff --git a/src/main/java/org/onap/aai/dbgen/schemamod/SchemaMod4Hist.java b/src/main/java/org/onap/aai/dbgen/schemamod/SchemaMod4Hist.java index ceb2191..e806883 100644 --- a/src/main/java/org/onap/aai/dbgen/schemamod/SchemaMod4Hist.java +++ b/src/main/java/org/onap/aai/dbgen/schemamod/SchemaMod4Hist.java @@ -19,7 +19,6 @@ */ package org.onap.aai.dbgen.schemamod; -import org.onap.aai.restclient.PropertyPasswordConfiguration; import org.onap.aai.exceptions.AAIException; import org.onap.aai.introspection.Loader; import org.onap.aai.introspection.LoaderFactory; @@ -38,7 +37,6 @@ import org.slf4j.LoggerFactory; import org.slf4j.MDC; import org.springframework.context.annotation.AnnotationConfigApplicationContext; - public class SchemaMod4Hist { private final LoaderFactory loaderFactory; @@ -157,8 +155,6 @@ public class SchemaMod4Hist { public static void main(String[] args) throws AAIException { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); - PropertyPasswordConfiguration initializer = new PropertyPasswordConfiguration(); - initializer.initialize(ctx); try { ctx.scan( "org.onap.aai.config", diff --git a/src/main/java/org/onap/aai/dbgen/schemamod/SchemaModInternalBatch.java b/src/main/java/org/onap/aai/dbgen/schemamod/SchemaModInternalBatch.java index 7204e57..cfa7682 100644 --- a/src/main/java/org/onap/aai/dbgen/schemamod/SchemaModInternalBatch.java +++ b/src/main/java/org/onap/aai/dbgen/schemamod/SchemaModInternalBatch.java @@ -25,6 +25,7 @@ import java.util.Iterator; import java.util.Map; import java.util.UUID; import java.util.concurrent.TimeUnit; + import org.apache.tinkerpop.gremlin.structure.Graph; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.janusgraph.core.schema.ConsistencyModifier; @@ -49,8 +50,8 @@ public class SchemaModInternalBatch { private final Cardinality cardinality; private final long commitBlockSize; private final Logger logger; - - public SchemaModInternalBatch(TransactionalGraphEngine engine, Logger logger, String propName, + + public SchemaModInternalBatch(TransactionalGraphEngine engine, Logger logger, String propName, String type, String indexType, boolean preserveData, boolean consistencyLock, long commitBlockSize) { this.engine = engine; this.propName = propName; @@ -62,8 +63,8 @@ public class SchemaModInternalBatch { this.commitBlockSize = commitBlockSize; this.logger = logger; } - - + + private Class<?> determineClass(String type) { final Class<?> result; if (type.equals("String")) { @@ -87,10 +88,10 @@ public class SchemaModInternalBatch { logAndPrint(logger, emsg); throw new RuntimeException(emsg); } - + return result; } - + private Cardinality determineCardinality(String type) { if (type.equals("Set<String>")) { return Cardinality.SET; @@ -98,7 +99,7 @@ public class SchemaModInternalBatch { return Cardinality.SINGLE; } } - + public void execute() { JanusGraphManagement graphMgt = null; String retiredName = ""; @@ -106,10 +107,10 @@ public class SchemaModInternalBatch { long timeStart = System.nanoTime(); int batchCt = 0; int totalCount = 0; - + ArrayList<HashMap<String,Object>> allVerts = new ArrayList<HashMap<String,Object>>(); HashMap<String,Object> batchVHash = new HashMap<String,Object>(); - + try { // Make sure this property is in the DB. graphMgt = engine.asAdmin().getManagementSystem(); @@ -124,9 +125,9 @@ public class SchemaModInternalBatch { logAndPrint(logger, emsg); System.exit(1); } - - // Collect the data that needs to be processed and - // store as hashes of vertex-id's and the original property value + + // Collect the data that needs to be processed and + // store as hashes of vertex-id's and the original property value long timeA = System.nanoTime(); int msgEveryXCount = 1000; Graph grTmp1 = engine.startTransaction(); @@ -154,37 +155,37 @@ public class SchemaModInternalBatch { logAndPrint(logger, "Collecting the data for batch # " + batchKey ); batchVCount = 0; batchVHash = new HashMap<String,Object>(); - } + } if( msgCount > msgEveryXCount ) { msgCount = 0; - logAndPrint(logger, " Initial processing running... total so far = " + totalCount ); + logAndPrint(logger, " Initial processing running... total so far = " + totalCount ); } } - + if( batchVCount > 0 ) { // Add the last partial set if there is one. allVerts.add(batchKey, batchVHash); } logAndPrint(logger, "Found " + totalCount + " nodes that will be affected. "); - + batchCt = batchKey +1; - + if( totalCount == 0 ) { logAndPrint(logger, "INFO -- No data found to process. "); System.exit(1); } - + logAndPrint(logger, "INFO -- Total of " + totalCount + - " nodes to process. Will use " + batchCt + + " nodes to process. Will use " + batchCt + " batches. " ); - + long timeB = System.nanoTime(); long diffTime = timeB - timeA; long minCount = TimeUnit.NANOSECONDS.toMinutes(diffTime); long secCount = TimeUnit.NANOSECONDS.toSeconds(diffTime) - (60 * minCount); logAndPrint(logger, " -- To collect all nodes took: " + minCount + " minutes, " + secCount + " seconds " ); - + if (indexType.equals("uniqueIndex")) { // Make sure the data in the property being changed can have a // unique-index put on it. @@ -209,18 +210,18 @@ public class SchemaModInternalBatch { logAndPrint(logger, "-- Finished/Passed UniquePropertyCheck. "); logAndPrint(logger, "There are " + totalCount + " nodes that have this property. "); } - + // ---- If we made it to here - we must be OK with making this change - + // Rename this property to a backup name (old name with a dateString and // "-RETIRED" appended) long timeE = System.nanoTime(); FormatDate fd = new FormatDate("MMddHHmm", "GMT"); - String dteStr= fd.getDateTime(); + String dteStr= fd.getDateTime(); retiredName = propName + "-" + dteStr + "-RETIRED"; - graphMgt.changeName(origPropKey, retiredName); - logAndPrint(logger, " -- Temporary property name will be: [" + retiredName + "]. "); - + graphMgt.changeName(origPropKey, retiredName); + logAndPrint(logger, " -- Temporary property name will be: [" + retiredName + "]. "); + // Create a new property using the original property name and the // targetDataType PropertyKey freshPropKey = graphMgt.makePropertyKey(propName).dataType(type) @@ -243,18 +244,18 @@ public class SchemaModInternalBatch { logAndPrint(logger, " -- Consistency Lock is being set on the index "); graphMgt.setConsistency(indexG, ConsistencyModifier.LOCK); } - + logAndPrint(logger, "Committing schema changes with graphMgt.commit()"); graphMgt.commit(); success = true; - + long timeF = System.nanoTime(); diffTime = timeF - timeE; minCount = TimeUnit.NANOSECONDS.toMinutes(diffTime); secCount = TimeUnit.NANOSECONDS.toSeconds(diffTime) - (60 * minCount); logAndPrint(logger, " -- Temporary property Name Change took: " + minCount + " minutes, " + secCount + " seconds " ); - + } catch (Exception ex) { logAndPrint(logger, "Threw a regular Exception: "); logAndPrint(logger, ex.getMessage()); @@ -273,8 +274,8 @@ public class SchemaModInternalBatch { } } } - - + + // For each node that has this property, update the new from the old // and then remove the old property from that node // Note - do it in batches since there can be a LOT of updates. @@ -284,27 +285,27 @@ public class SchemaModInternalBatch { for( int batNo=0; batNo < batchCt; batNo++ ) { try { logAndPrint(logger, "BEGIN -- Batch # " + batNo ); - processUpdateForBatch( allVerts.get(batNo), retiredName ); + processUpdateForBatch( allVerts.get(batNo), retiredName ); logAndPrint(logger, "Completed Batch # " + batNo ); } catch (Exception e) { String emsg = "ERROR -- Batch # " + batNo + - " failed to process. Please clean up manually. " + - " data in [" + retiredName + - "] will have to be moved to the original property."; + " failed to process. Please clean up manually. " + + " data in [" + retiredName + + "] will have to be moved to the original property."; logAndPrint(logger, emsg); emsgList.add(emsg); } - } + } long timeF = System.nanoTime(); long diffTime = timeF - timeE; long minCount = TimeUnit.NANOSECONDS.toMinutes(diffTime); long secCount = TimeUnit.NANOSECONDS.toSeconds(diffTime) - (60 * minCount); logAndPrint(logger, " -- Time to process all batches: " + minCount + " minutes, " + secCount + " seconds " ); - + logAndPrint(logger, "\nINFO -- Total of " + totalCount + " nodes processed using: " + batchCt + " batches. " ); - + if( !emsgList.isEmpty() ) { Iterator <String> eItr = emsgList.iterator(); logAndPrint(logger, ">>> These will need to be taken care of: "); @@ -312,30 +313,30 @@ public class SchemaModInternalBatch { logAndPrint(logger, (String)eItr.next()); } } - + long timeEnd = System.nanoTime(); diffTime = timeEnd - timeStart; minCount = TimeUnit.NANOSECONDS.toMinutes(diffTime); secCount = TimeUnit.NANOSECONDS.toSeconds(diffTime) - (60 * minCount); logAndPrint(logger, " -- Total Processing time was: " + minCount + " minutes, " + secCount + " seconds " ); - + }// End of Execute() - - - private void processUpdateForBatch( HashMap<String,Object> vertHash, + + + private void processUpdateForBatch( HashMap<String,Object> vertHash, String retiredName ) throws Exception { - + Iterator<Map.Entry<String, Object>> vertHashItr = vertHash.entrySet().iterator(); int vtxCount = 0; Boolean success = false; - Graph grTmpBat = engine.startTransaction(); - try { + Graph grTmpBat = engine.startTransaction(); + try { while( vertHashItr.hasNext() ){ - Map.Entry<String, Object> entry = vertHashItr.next(); + Map.Entry<String, Object> entry = vertHashItr.next(); String tmpVid = entry.getKey(); Vertex tmpVtx = null; - + Iterator<Vertex> oneVItr = grTmpBat.traversal().V(tmpVid); while( oneVItr.hasNext() ) { // should never find more than one... @@ -350,7 +351,7 @@ public class SchemaModInternalBatch { } tmpVtx.property(retiredName).remove(); logAndPrint(logger, "INFO -- update item: (vid= " - + tmpVid + ", val=[" + origVal + "])"); + + tmpVid + ", val=[" + origVal + "])"); vtxCount++; } } @@ -369,31 +370,31 @@ public class SchemaModInternalBatch { logAndPrint(logger, "ERROR -- rolling back node updates for this batch."); engine.rollback(); } - } + } } if( ! success ) { throw new Exception ("ERROR - could not process this batch -- see the log for details."); } - - }// end of processUpdateForBatch() - + + }// end of processUpdateForBatch() + private Boolean doUniquenessCheck( ArrayList<HashMap<String,Object>> allVerts, String propertyName ){ - // Note - property can be found in more than one nodetype - // our uniqueness constraints are always across the entire db - so this + // Note - property can be found in more than one nodetype + // our uniqueness constraints are always across the entire db - so this // tool looks across all nodeTypes that the property is found in. long timeStart = System.nanoTime(); int batchCt = allVerts.size(); HashMap <String,Object> bigSingleHash = new HashMap <String,Object> (); - + for( int batNo=0; batNo < batchCt; batNo++ ) { bigSingleHash.putAll(allVerts.get(batNo)); } - + ArrayList <Object> dupeValues = new ArrayList<Object> (); int dupeCount = 0; - + Iterator bItr = bigSingleHash.entrySet().iterator(); while( bItr.hasNext() ) { Map.Entry pair = (Map.Entry)bItr.next(); @@ -414,19 +415,19 @@ public class SchemaModInternalBatch { dupeCount++; } } - + long timeEnd = System.nanoTime(); long diffTime = timeEnd - timeStart; long minCount = TimeUnit.NANOSECONDS.toMinutes(diffTime); long secCount = TimeUnit.NANOSECONDS.toSeconds(diffTime) - (60 * minCount); logAndPrint(logger, " -- Total Uniqueness Check took: " + minCount + " minutes, " + secCount + " seconds " ); - + if( dupeValues.isEmpty() ){ logAndPrint(logger, "\n ------------ No Duplicates Found -------- \n"); } else { - logAndPrint(logger, "\n -------------- Found " + dupeCount + + logAndPrint(logger, "\n -------------- Found " + dupeCount + " cases of duplicate values for property [" + propertyName + "\n\n"); logAndPrint(logger, "\n --- These values are in the db twice or more: "); Iterator <?> dupeValItr = dupeValues.iterator(); @@ -434,16 +435,16 @@ public class SchemaModInternalBatch { logAndPrint(logger, " value = [" + dupeValItr.next() + "]"); } } - + if( dupeCount > 0 ) { return true; }else { return false; } - + }// end of doUniquenessCheck() - - + + /** * Log and print. @@ -455,5 +456,5 @@ public class SchemaModInternalBatch { System.out.println(msg); logger.debug(msg); } - + } diff --git a/src/main/java/org/onap/aai/historytruncate/HistoryTruncate.java b/src/main/java/org/onap/aai/historytruncate/HistoryTruncate.java index f49a02e..eb4db3a 100644 --- a/src/main/java/org/onap/aai/historytruncate/HistoryTruncate.java +++ b/src/main/java/org/onap/aai/historytruncate/HistoryTruncate.java @@ -19,7 +19,9 @@ */ package org.onap.aai.historytruncate; -import java.util.*; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; diff --git a/src/main/java/org/onap/aai/historytruncate/HistoryTruncateTasks.java b/src/main/java/org/onap/aai/historytruncate/HistoryTruncateTasks.java index 7e8b0ca..4cb33fc 100644 --- a/src/main/java/org/onap/aai/historytruncate/HistoryTruncateTasks.java +++ b/src/main/java/org/onap/aai/historytruncate/HistoryTruncateTasks.java @@ -23,7 +23,7 @@ import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.Date; import org.onap.aai.aailog.logs.AaiScheduledTaskAuditLog; import org.onap.aai.exceptions.AAIException; @@ -37,6 +37,7 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.slf4j.Logger; import org.slf4j.LoggerFactory; + @Component @PropertySource("file:${server.local.startpath}/etc/appprops/datatoolscrons.properties") public class HistoryTruncateTasks { diff --git a/src/main/java/org/onap/aai/interceptors/pre/OneWaySslAuthorization.java b/src/main/java/org/onap/aai/interceptors/pre/OneWaySslAuthorization.java deleted file mode 100644 index b9fc978..0000000 --- a/src/main/java/org/onap/aai/interceptors/pre/OneWaySslAuthorization.java +++ /dev/null @@ -1,85 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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.interceptors.pre; - -import org.onap.aai.Profiles; -import org.onap.aai.exceptions.AAIException; -import org.onap.aai.interceptors.AAIContainerFilter; -import org.onap.aai.logging.ErrorLogHelper; -import org.onap.aai.service.AuthorizationService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Profile; - -import javax.annotation.Priority; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.container.PreMatching; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.Provider; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; - -@Provider -@Profile(Profiles.ONE_WAY_SSL) -@PreMatching -@Priority(AAIRequestFilterPriority.AUTHORIZATION) -public class OneWaySslAuthorization extends AAIContainerFilter implements ContainerRequestFilter { - - @Autowired - private AuthorizationService authorizationService; - - @Override - public void filter(ContainerRequestContext containerRequestContext) throws IOException - { - - if(containerRequestContext.getUriInfo().getRequestUri().getPath().matches("^.*/util/echo$")){ - return; - } - - String basicAuth = containerRequestContext.getHeaderString("Authorization"); - List<MediaType> acceptHeaderValues = containerRequestContext.getAcceptableMediaTypes(); - - if(basicAuth == null || !basicAuth.startsWith("Basic ")){ - Optional<Response> responseOptional = errorResponse("AAI_3300", acceptHeaderValues); - containerRequestContext.abortWith(responseOptional.get()); - return; - } - - basicAuth = basicAuth.replaceAll("Basic ", ""); - - if(!authorizationService.checkIfUserAuthorized(basicAuth)){ - Optional<Response> responseOptional = errorResponse("AAI_3300", acceptHeaderValues); - containerRequestContext.abortWith(responseOptional.get()); - return; - } - - } - - private Optional<Response> errorResponse(String errorCode, List<MediaType> acceptHeaderValues) { - AAIException aaie = new AAIException(errorCode); - return Optional.of(Response.status(aaie.getErrorObject().getHTTPResponseCode()) - .entity(ErrorLogHelper.getRESTAPIErrorResponse(acceptHeaderValues, aaie, new ArrayList<>())) - .build()); - - } -} diff --git a/src/main/java/org/onap/aai/migration/MigrationController.java b/src/main/java/org/onap/aai/migration/MigrationController.java index 29c4026..6b3b0a6 100644 --- a/src/main/java/org/onap/aai/migration/MigrationController.java +++ b/src/main/java/org/onap/aai/migration/MigrationController.java @@ -24,7 +24,6 @@ import org.onap.aai.edges.EdgeIngestor; import org.onap.aai.exceptions.AAIException; import org.onap.aai.introspection.LoaderFactory; import org.onap.aai.logging.ErrorLogHelper; -import org.onap.aai.restclient.PropertyPasswordConfiguration; import org.onap.aai.serialization.db.EdgeSerializer; import org.onap.aai.setup.SchemaVersions; import org.onap.aai.util.ExceptionTranslator; @@ -45,8 +44,6 @@ public class MigrationController { public static void main(String[] args) throws AAIException { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); - PropertyPasswordConfiguration initializer = new PropertyPasswordConfiguration(); - initializer.initialize(ctx); try { ctx.scan( "org.onap.aai.config", diff --git a/src/main/java/org/onap/aai/migration/v12/EdgeReportForToscaMigration.java b/src/main/java/org/onap/aai/migration/v12/EdgeReportForToscaMigration.java index 1bdddf3..2132b9c 100644 --- a/src/main/java/org/onap/aai/migration/v12/EdgeReportForToscaMigration.java +++ b/src/main/java/org/onap/aai/migration/v12/EdgeReportForToscaMigration.java @@ -44,7 +44,10 @@ import org.apache.tinkerpop.gremlin.structure.Edge; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.onap.aai.edges.EdgeIngestor; import org.onap.aai.introspection.LoaderFactory; -import org.onap.aai.migration.*; +import org.onap.aai.migration.MigrationDangerRating; +import org.onap.aai.migration.MigrationPriority; +import org.onap.aai.migration.Migrator; +import org.onap.aai.migration.Status; import org.onap.aai.serialization.db.EdgeSerializer; import org.onap.aai.serialization.engines.TransactionalGraphEngine; import org.onap.aai.setup.SchemaVersions; diff --git a/src/main/java/org/onap/aai/migration/v12/MigrateDataFromASDCToConfiguration.java b/src/main/java/org/onap/aai/migration/v12/MigrateDataFromASDCToConfiguration.java index 39224ad..6629620 100644 --- a/src/main/java/org/onap/aai/migration/v12/MigrateDataFromASDCToConfiguration.java +++ b/src/main/java/org/onap/aai/migration/v12/MigrateDataFromASDCToConfiguration.java @@ -24,7 +24,10 @@ import org.apache.tinkerpop.gremlin.structure.Vertex; import org.onap.aai.db.props.AAIProperties; import org.onap.aai.edges.EdgeIngestor; import org.onap.aai.introspection.LoaderFactory; -import org.onap.aai.migration.*; +import org.onap.aai.migration.MigrationDangerRating; +import org.onap.aai.migration.MigrationPriority; +import org.onap.aai.migration.Migrator; +import org.onap.aai.migration.Status; import org.onap.aai.serialization.db.EdgeSerializer; import org.onap.aai.serialization.engines.TransactionalGraphEngine; import org.onap.aai.setup.SchemaVersions; diff --git a/src/main/java/org/onap/aai/migration/v12/MigrateINVEvcInventory.java b/src/main/java/org/onap/aai/migration/v12/MigrateINVEvcInventory.java index de97408..a5941ca 100644 --- a/src/main/java/org/onap/aai/migration/v12/MigrateINVEvcInventory.java +++ b/src/main/java/org/onap/aai/migration/v12/MigrateINVEvcInventory.java @@ -53,7 +53,10 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSo import org.apache.tinkerpop.gremlin.structure.Vertex; import org.onap.aai.edges.EdgeIngestor; import org.onap.aai.introspection.LoaderFactory; -import org.onap.aai.migration.*; +import org.onap.aai.migration.MigrationDangerRating; +import org.onap.aai.migration.MigrationPriority; +import org.onap.aai.migration.Migrator; +import org.onap.aai.migration.Status; import org.onap.aai.db.props.AAIProperties; import org.onap.aai.serialization.db.EdgeSerializer; import org.onap.aai.serialization.engines.TransactionalGraphEngine; diff --git a/src/main/java/org/onap/aai/migration/v12/MigrateSAREvcInventory.java b/src/main/java/org/onap/aai/migration/v12/MigrateSAREvcInventory.java index 2894883..af7a845 100644 --- a/src/main/java/org/onap/aai/migration/v12/MigrateSAREvcInventory.java +++ b/src/main/java/org/onap/aai/migration/v12/MigrateSAREvcInventory.java @@ -56,7 +56,10 @@ import org.apache.tinkerpop.gremlin.structure.Vertex; import org.onap.aai.edges.EdgeIngestor; import org.onap.aai.introspection.Introspector; import org.onap.aai.introspection.LoaderFactory; -import org.onap.aai.migration.*; +import org.onap.aai.migration.MigrationDangerRating; +import org.onap.aai.migration.MigrationPriority; +import org.onap.aai.migration.Migrator; +import org.onap.aai.migration.Status; import org.onap.aai.db.props.AAIProperties; import org.onap.aai.serialization.db.EdgeSerializer; import org.onap.aai.serialization.engines.TransactionalGraphEngine; diff --git a/src/main/java/org/onap/aai/migration/v12/SDWANSpeedChangeMigration.java b/src/main/java/org/onap/aai/migration/v12/SDWANSpeedChangeMigration.java index d102f99..679ce2c 100644 --- a/src/main/java/org/onap/aai/migration/v12/SDWANSpeedChangeMigration.java +++ b/src/main/java/org/onap/aai/migration/v12/SDWANSpeedChangeMigration.java @@ -25,7 +25,10 @@ import org.apache.tinkerpop.gremlin.structure.Vertex; import org.onap.aai.edges.EdgeIngestor; import org.onap.aai.exceptions.AAIException; import org.onap.aai.introspection.LoaderFactory; -import org.onap.aai.migration.*; +import org.onap.aai.migration.MigrationDangerRating; +import org.onap.aai.migration.MigrationPriority; +import org.onap.aai.migration.Migrator; +import org.onap.aai.migration.Status; import org.onap.aai.edges.enums.EdgeType; import org.onap.aai.serialization.db.EdgeSerializer; import org.onap.aai.serialization.engines.TransactionalGraphEngine; diff --git a/src/main/java/org/onap/aai/migration/v12/UpdateAaiUriIndexMigration.java b/src/main/java/org/onap/aai/migration/v12/UpdateAaiUriIndexMigration.java index 9d7715e..7d6d1e9 100644 --- a/src/main/java/org/onap/aai/migration/v12/UpdateAaiUriIndexMigration.java +++ b/src/main/java/org/onap/aai/migration/v12/UpdateAaiUriIndexMigration.java @@ -35,13 +35,19 @@ import org.onap.aai.exceptions.AAIException; import org.onap.aai.introspection.LoaderFactory; import org.onap.aai.introspection.ModelType; import org.onap.aai.serialization.db.EdgeSerializer; -import org.onap.aai.migration.*; +import org.onap.aai.migration.MigrationDangerRating; +import org.onap.aai.migration.MigrationPriority; +import org.onap.aai.migration.Migrator; +import org.onap.aai.migration.Status; import org.onap.aai.serialization.engines.TransactionalGraphEngine; import org.onap.aai.setup.SchemaVersion; import org.onap.aai.setup.SchemaVersions; import java.time.temporal.ChronoUnit; -import java.util.*; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Optional; +import java.util.Set; /** * Remove old aai-uri index per diff --git a/src/main/java/org/onap/aai/migration/v13/MigrateBadWidgetModelsPartOne.java b/src/main/java/org/onap/aai/migration/v13/MigrateBadWidgetModelsPartOne.java index 15649e1..2fa085f 100644 --- a/src/main/java/org/onap/aai/migration/v13/MigrateBadWidgetModelsPartOne.java +++ b/src/main/java/org/onap/aai/migration/v13/MigrateBadWidgetModelsPartOne.java @@ -36,7 +36,10 @@ import org.javatuples.Pair; import org.onap.aai.db.props.AAIProperties; import org.onap.aai.edges.EdgeIngestor; import org.onap.aai.introspection.LoaderFactory; -import org.onap.aai.migration.*; +import org.onap.aai.migration.EdgeSwingMigrator; +import org.onap.aai.migration.MigrationDangerRating; +import org.onap.aai.migration.MigrationPriority; +import org.onap.aai.migration.Status; import org.onap.aai.serialization.db.EdgeSerializer; import org.onap.aai.serialization.engines.TransactionalGraphEngine; import org.onap.aai.setup.SchemaVersions; diff --git a/src/main/java/org/onap/aai/migration/v14/MigrateSameSourcedRCTROPserverData.java b/src/main/java/org/onap/aai/migration/v14/MigrateSameSourcedRCTROPserverData.java index ffe7266..85325b7 100644 --- a/src/main/java/org/onap/aai/migration/v14/MigrateSameSourcedRCTROPserverData.java +++ b/src/main/java/org/onap/aai/migration/v14/MigrateSameSourcedRCTROPserverData.java @@ -22,7 +22,9 @@ package org.onap.aai.migration.v14; import java.nio.charset.UnsupportedCharsetException; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; -import org.apache.tinkerpop.gremlin.structure.*; +import org.apache.tinkerpop.gremlin.structure.Direction; +import org.apache.tinkerpop.gremlin.structure.Edge; +import org.apache.tinkerpop.gremlin.structure.Vertex; import org.javatuples.Pair; import org.onap.aai.db.props.AAIProperties; import org.onap.aai.edges.EdgeIngestor; @@ -30,7 +32,10 @@ import org.onap.aai.edges.enums.AAIDirection; import org.onap.aai.edges.enums.EdgeProperty; import org.onap.aai.exceptions.AAIException; import org.onap.aai.introspection.LoaderFactory; -import org.onap.aai.migration.*; +import org.onap.aai.migration.EdgeSwingMigrator; +import org.onap.aai.migration.MigrationDangerRating; +import org.onap.aai.migration.MigrationPriority; +import org.onap.aai.migration.Status; import org.onap.aai.introspection.Introspector; import org.onap.aai.serialization.db.EdgeSerializer; import org.onap.aai.serialization.engines.TransactionalGraphEngine; diff --git a/src/main/java/org/onap/aai/migration/v14/PserverDedupWithDifferentSourcesOfTruth.java b/src/main/java/org/onap/aai/migration/v14/PserverDedupWithDifferentSourcesOfTruth.java index 667648b..ad3181b 100644 --- a/src/main/java/org/onap/aai/migration/v14/PserverDedupWithDifferentSourcesOfTruth.java +++ b/src/main/java/org/onap/aai/migration/v14/PserverDedupWithDifferentSourcesOfTruth.java @@ -23,7 +23,9 @@ import java.nio.charset.UnsupportedCharsetException; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__; import org.apache.tinkerpop.gremlin.process.traversal.P; -import org.apache.tinkerpop.gremlin.structure.*; +import org.apache.tinkerpop.gremlin.structure.Direction; +import org.apache.tinkerpop.gremlin.structure.Edge; +import org.apache.tinkerpop.gremlin.structure.Vertex; import org.javatuples.Pair; import org.onap.aai.db.props.AAIProperties; import org.onap.aai.edges.EdgeIngestor; @@ -31,7 +33,10 @@ import org.onap.aai.edges.enums.AAIDirection; import org.onap.aai.edges.enums.EdgeProperty; import org.onap.aai.exceptions.AAIException; import org.onap.aai.introspection.LoaderFactory; -import org.onap.aai.migration.*; +import org.onap.aai.migration.EdgeSwingMigrator; +import org.onap.aai.migration.MigrationDangerRating; +import org.onap.aai.migration.MigrationPriority; +import org.onap.aai.migration.Status; import org.onap.aai.serialization.engines.TransactionalGraphEngine; import org.springframework.web.util.UriUtils; @@ -63,8 +68,8 @@ public class PserverDedupWithDifferentSourcesOfTruth extends EdgeSwingMigrator { private static List<Introspector> dmaapDeleteList = new ArrayList<Introspector>(); private static int pserversUpdatedCount = 0; private static int pserversDeletedCount = 0; - - + + private static String[] rctSourceOfTruth = new String[]{"AAIRctFeed", "RCT"}; private static String[] roSourceOfTruth = new String[]{"AAI-EXTENSIONS", "RO"}; @@ -128,7 +133,7 @@ public class PserverDedupWithDifferentSourcesOfTruth extends EdgeSwingMigrator { @Override public void run() { - + int dupCount = 0; nodeTypeToUri = loader.getAllObjects().entrySet().stream().filter(e -> e.getValue().getGenericURI().contains("{")).collect( Collectors.toMap( @@ -144,10 +149,10 @@ public class PserverDedupWithDifferentSourcesOfTruth extends EdgeSwingMigrator { List<Vertex> rctList = graphTraversalSource().V().has("aai-node-type", "pserver").has("source-of-truth", P.within(rctSourceOfTruth)).toList(); List<Vertex> roList = graphTraversalSource().V().has("aai-node-type", "pserver").has("source-of-truth", P.within(roSourceOfTruth)).toList(); - + logger.info("Total number of RCT sourced pservers in A&AI :" +rctList.size()); logger.info("Total number of RO sourced pservers in A&AI :" +roList.size()); - + for(int i=0;i<rctList.size();i++){ Vertex currRct = rctList.get(i); Object currRctFqdn = null; @@ -222,7 +227,7 @@ public class PserverDedupWithDifferentSourcesOfTruth extends EdgeSwingMigrator { Iterator<Vertex> pIntListItr = pIntList.iterator(); while(pIntListItr.hasNext()){ Vertex pInt = pIntListItr.next(); - + removeROPIntMap.put(pInt.property("interface-name").value().toString(), pInt); } Set<String> interfaceNameSet = removeROPIntMap.keySet(); @@ -245,9 +250,9 @@ public class PserverDedupWithDifferentSourcesOfTruth extends EdgeSwingMigrator { } } } - } + } } - + private void dropMatchingROLagInterfaces(Vertex ro, Vertex rct) { Map<String, Vertex> removeROLagIntMap = new HashMap<String, Vertex>(); List<Vertex> lagIntList = graphTraversalSource().V(ro).in("tosca.relationships.network.BindsTo").has("aai-node-type","lag-interface").toList(); @@ -255,7 +260,7 @@ public class PserverDedupWithDifferentSourcesOfTruth extends EdgeSwingMigrator { Iterator<Vertex> lagIntListItr = lagIntList.iterator(); while(lagIntListItr.hasNext()){ Vertex lagInt = lagIntListItr.next(); - + removeROLagIntMap.put(lagInt.property("interface-name").value().toString(), lagInt); } Set<String> interfaceNameSet = removeROLagIntMap.keySet(); @@ -278,9 +283,9 @@ public class PserverDedupWithDifferentSourcesOfTruth extends EdgeSwingMigrator { } } } - } + } } - + public void dropComplexEdge(Vertex ro){ List<Vertex> locatedInEdgeVertexList = graphTraversalSource().V(ro).has("aai-node-type", "pserver").out("org.onap.relationships.inventory.LocatedIn").has("aai-node-type","complex").toList(); if (locatedInEdgeVertexList != null && !locatedInEdgeVertexList.isEmpty()){ diff --git a/src/main/java/org/onap/aai/rest/client/ApertureService.java b/src/main/java/org/onap/aai/rest/client/ApertureService.java index bd06f72..226e681 100644 --- a/src/main/java/org/onap/aai/rest/client/ApertureService.java +++ b/src/main/java/org/onap/aai/rest/client/ApertureService.java @@ -34,7 +34,9 @@ import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import java.net.ConnectException; import java.net.SocketTimeoutException; -import java.util.*; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; @Service public class ApertureService { diff --git a/src/main/java/org/onap/aai/rest/client/ApertureServiceOneWayClient.java b/src/main/java/org/onap/aai/rest/client/ApertureServiceOneWayClient.java index a888536..5b4fa0d 100644 --- a/src/main/java/org/onap/aai/rest/client/ApertureServiceOneWayClient.java +++ b/src/main/java/org/onap/aai/rest/client/ApertureServiceOneWayClient.java @@ -51,16 +51,6 @@ public class ApertureServiceOneWayClient extends OneWaySSLRestClient { } @Override - protected String getTruststorePath() { - return truststorePath; - } - - @Override - protected char[] getTruststorePassword() { - return truststorePassword.toCharArray(); - } - - @Override protected HttpComponentsClientHttpRequestFactory getHttpRequestFactory() throws Exception { HttpComponentsClientHttpRequestFactory requestFactory = super.getHttpRequestFactory(); requestFactory.setConnectionRequestTimeout(timeout); diff --git a/src/main/java/org/onap/aai/rest/client/ApertureServiceRestClient.java b/src/main/java/org/onap/aai/rest/client/ApertureServiceRestClient.java index da32fbe..19c32fb 100644 --- a/src/main/java/org/onap/aai/rest/client/ApertureServiceRestClient.java +++ b/src/main/java/org/onap/aai/rest/client/ApertureServiceRestClient.java @@ -56,26 +56,6 @@ public class ApertureServiceRestClient extends TwoWaySSLRestClient { return baseUrl; } - @Override - protected String getKeystorePath() { - return keystorePath; - } - - @Override - protected String getTruststorePath() { - return truststorePath; - } - - @Override - protected char[] getKeystorePassword() { - return keystorePassword.toCharArray(); - } - - @Override - protected char[] getTruststorePassword() { - return truststorePassword.toCharArray(); - } - protected HttpComponentsClientHttpRequestFactory getHttpRequestFactory() throws Exception { HttpComponentsClientHttpRequestFactory requestFactory = super.getHttpRequestFactory(); requestFactory.setConnectionRequestTimeout(timeout); diff --git a/src/main/java/org/onap/aai/schema/GenTester.java b/src/main/java/org/onap/aai/schema/GenTester.java index 617001c..3568707 100644 --- a/src/main/java/org/onap/aai/schema/GenTester.java +++ b/src/main/java/org/onap/aai/schema/GenTester.java @@ -34,7 +34,6 @@ import org.onap.aai.dbgen.SchemaGenerator; import org.onap.aai.dbmap.AAIGraph; import org.onap.aai.exceptions.AAIException; import org.onap.aai.logging.ErrorLogHelper; -import org.onap.aai.restclient.PropertyPasswordConfiguration; import org.onap.aai.util.AAIConfig; import org.onap.aai.util.ExceptionTranslator; import org.onap.aai.util.GraphAdminDBUtils; @@ -47,7 +46,7 @@ public class GenTester { private static Logger LOGGER; private static boolean historyEnabled; private static final String SCHEMA_INITIALIZED = "schema-initialized"; - + /** * The main method. * @@ -62,8 +61,6 @@ public class GenTester { boolean addDefaultCR = true; AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); - PropertyPasswordConfiguration initializer = new PropertyPasswordConfiguration(); - initializer.initialize(ctx); try { ctx.scan( "org.onap.aai.config", @@ -222,7 +219,7 @@ public class GenTester { } try { Vertex newVertex = graph.addVertex(SCHEMA_INITIALIZED , false); - LOGGER.info("Created a new vertex with property '{}' set to '{}'", SCHEMA_INITIALIZED , + LOGGER.info("Created a new vertex with property '{}' set to '{}'", SCHEMA_INITIALIZED , newVertex.property(SCHEMA_INITIALIZED ).value()); } catch (Exception e) { LOGGER.error("Error creating a new vertex: {}", e.getMessage(), e); @@ -277,4 +274,4 @@ public class GenTester { graphMgtForClosing.commit(); } -}
\ No newline at end of file +} diff --git a/src/main/java/org/onap/aai/schema/GenTester4Hist.java b/src/main/java/org/onap/aai/schema/GenTester4Hist.java index c0a4707..45581d8 100644 --- a/src/main/java/org/onap/aai/schema/GenTester4Hist.java +++ b/src/main/java/org/onap/aai/schema/GenTester4Hist.java @@ -23,16 +23,16 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.janusgraph.core.JanusGraph; import org.janusgraph.core.schema.JanusGraphManagement; -import org.onap.aai.restclient.PropertyPasswordConfiguration; import org.onap.aai.dbgen.SchemaGenerator4Hist; import org.onap.aai.dbmap.AAIGraph; import org.onap.aai.exceptions.AAIException; import org.onap.aai.logging.ErrorLogHelper; -import org.onap.aai.util.*; +import org.onap.aai.util.AAIConfig; +import org.onap.aai.util.ExceptionTranslator; +import org.onap.aai.util.GraphAdminDBUtils; import org.springframework.context.annotation.AnnotationConfigApplicationContext; - public class GenTester4Hist { private static Logger LOGGER; @@ -52,8 +52,6 @@ public class GenTester4Hist { boolean addDefaultCR = false; // For History, we do not add the default CloudRegion AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); - PropertyPasswordConfiguration initializer = new PropertyPasswordConfiguration(); - initializer.initialize(ctx); try { ctx.scan( "org.onap.aai.config", diff --git a/src/main/java/org/onap/aai/service/AuthorizationService.java b/src/main/java/org/onap/aai/service/AuthorizationService.java deleted file mode 100644 index 9b5a614..0000000 --- a/src/main/java/org/onap/aai/service/AuthorizationService.java +++ /dev/null @@ -1,109 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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.service; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.eclipse.jetty.util.security.Password; -import org.onap.aai.Profiles; -import org.onap.aai.util.AAIConstants; -import org.springframework.context.annotation.Profile; -import org.springframework.stereotype.Service; - -import javax.annotation.PostConstruct; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.Base64; -import java.util.HashMap; -import java.util.Map; -import java.util.stream.Stream; - -@Profile(Profiles.ONE_WAY_SSL) -@Service -public class AuthorizationService { - - private static final Logger logger = LoggerFactory.getLogger(AuthorizationService.class); - - private final Map<String, String> authorizedUsers = new HashMap<>(); - - private static final Base64.Encoder ENCODER = Base64.getEncoder(); - - @PostConstruct - public void init(){ - - String basicAuthFile = getBasicAuthFilePath(); - - try(Stream<String> stream = Files.lines(Paths.get(basicAuthFile))){ - stream.filter(line -> !line.startsWith("#")).forEach(str -> { - byte [] bytes = null; - - String usernamePassword = null; - String accessType = null; - - try { - String [] userAccessType = str.split(","); - - if(userAccessType == null || userAccessType.length != 2){ - throw new RuntimeException("Please check the realm.properties file as it is not conforming to the basic auth"); - } - - usernamePassword = userAccessType[0]; - accessType = userAccessType[1]; - - String[] usernamePasswordArray = usernamePassword.split(":"); - - if(usernamePasswordArray == null || usernamePasswordArray.length != 3){ - throw new RuntimeException("This username / pwd is not a valid entry in realm.properties"); - } - - String username = usernamePasswordArray[0]; - String password = null; - - if(str.contains("OBF:")){ - password = usernamePasswordArray[1] + ":" + usernamePasswordArray[2]; - password = Password.deobfuscate(password); - } - - bytes = ENCODER.encode((username + ":" + password).getBytes("UTF-8")); - - authorizedUsers.put(new String(bytes), accessType); - - } catch (UnsupportedEncodingException e) - { - logger.error("Unable to support the encoding of the file" + basicAuthFile); - } - - authorizedUsers.put(new String(ENCODER.encode(bytes)), accessType); - }); - } catch (IOException e) { - logger.error("IO Exception occurred during the reading of realm.properties", e); - } - } - - public boolean checkIfUserAuthorized(String authorization){ - return authorizedUsers.containsKey(authorization) && "admin".equals(authorizedUsers.get(authorization)); - } - - public String getBasicAuthFilePath(){ - return AAIConstants.AAI_HOME_ETC_AUTH + AAIConstants.AAI_FILESEP + "realm.properties"; - } -} diff --git a/src/main/java/org/onap/aai/util/SendDeleteMigrationNotificationsMain.java b/src/main/java/org/onap/aai/util/SendDeleteMigrationNotificationsMain.java index c302e18..c3a40d2 100644 --- a/src/main/java/org/onap/aai/util/SendDeleteMigrationNotificationsMain.java +++ b/src/main/java/org/onap/aai/util/SendDeleteMigrationNotificationsMain.java @@ -21,7 +21,6 @@ package org.onap.aai.util; import com.beust.jcommander.JCommander; import com.beust.jcommander.Parameter; -import org.onap.aai.restclient.PropertyPasswordConfiguration; import org.onap.aai.dbmap.AAIGraph; import org.onap.aai.exceptions.AAIException; import org.onap.aai.introspection.LoaderFactory; @@ -30,7 +29,10 @@ import org.onap.aai.migration.EventAction; import org.onap.aai.setup.SchemaVersions; import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; public class SendDeleteMigrationNotificationsMain { @@ -41,8 +43,6 @@ public class SendDeleteMigrationNotificationsMain { String requestId = UUID.randomUUID().toString(); AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); - PropertyPasswordConfiguration initializer = new PropertyPasswordConfiguration(); - initializer.initialize(ctx); try { ctx.scan( "org.onap.aai.config", diff --git a/src/main/java/org/onap/aai/util/SendMigrationNotificationsMain.java b/src/main/java/org/onap/aai/util/SendMigrationNotificationsMain.java index c650134..fbd1010 100644 --- a/src/main/java/org/onap/aai/util/SendMigrationNotificationsMain.java +++ b/src/main/java/org/onap/aai/util/SendMigrationNotificationsMain.java @@ -21,7 +21,6 @@ package org.onap.aai.util; import com.beust.jcommander.JCommander; import com.beust.jcommander.Parameter; -import org.onap.aai.restclient.PropertyPasswordConfiguration; import org.onap.aai.dbmap.AAIGraph; import org.onap.aai.exceptions.AAIException; import org.onap.aai.introspection.LoaderFactory; @@ -41,8 +40,6 @@ public class SendMigrationNotificationsMain { String requestId = UUID.randomUUID().toString(); AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); - PropertyPasswordConfiguration initializer = new PropertyPasswordConfiguration(); - initializer.initialize(ctx); try { ctx.scan( "org.onap.aai.config", |