aboutsummaryrefslogtreecommitdiffstats
path: root/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy
diff options
context:
space:
mode:
authorInstrumental <jonathan.gathman@att.com>2018-11-07 20:52:15 -0600
committerInstrumental <jonathan.gathman@att.com>2018-11-07 20:52:27 -0600
commit5aa8aec689a399e7803e84e531532d0c61631ec1 (patch)
treea5297d6d21b940b9411609331973909e1f6869e4 /sidecar/fproxy/src/main/java/org/onap/aaf/fproxy
parente9c0bf259db0084592536e896cc449b5cf34b84f (diff)
Fix/Renable sidecar builds
Issue-ID: AAF-613 Change-Id: Ic13411eebbf3c1c9b6d8492aff1b37db37a965e4 Signed-off-by: Instrumental <jonathan.gathman@att.com>
Diffstat (limited to 'sidecar/fproxy/src/main/java/org/onap/aaf/fproxy')
-rw-r--r--sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/CredentialCacheConfig.java37
-rw-r--r--sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/FProxyApplication.java74
-rw-r--r--sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/RestTemplateConfig.java77
-rw-r--r--sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/CredentialCache.java37
-rw-r--r--sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/InMemoryCredentialCache.java116
-rw-r--r--sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/utils/CacheUtils.java89
-rw-r--r--sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/data/CredentialCacheData.java72
-rw-r--r--sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/service/ForwardingProxyService.java100
-rw-r--r--sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/util/RequestValidationException.java35
9 files changed, 0 insertions, 637 deletions
diff --git a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/CredentialCacheConfig.java b/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/CredentialCacheConfig.java
deleted file mode 100644
index f433c65..0000000
--- a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/CredentialCacheConfig.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aaf
- * ================================================================================
- * Copyright © 2018 European Software Marketing Ltd.
- * ================================================================================
- * 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.aaf.fproxy;
-
-import org.onap.aaf.fproxy.cache.CredentialCache;
-import org.onap.aaf.fproxy.cache.InMemoryCredentialCache;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Scope;
-
-@Configuration
-public class CredentialCacheConfig {
-
- @Bean
- @Scope("singleton")
- public CredentialCache inMemoryCredentialCacheSingleton() {
- return new InMemoryCredentialCache();
- }
-
-}
diff --git a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/FProxyApplication.java b/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/FProxyApplication.java
deleted file mode 100644
index d226dc8..0000000
--- a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/FProxyApplication.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aaf
- * ================================================================================
- * Copyright © 2018 European Software Marketing Ltd.
- * ================================================================================
- * 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.aaf.fproxy;
-
-import java.util.HashMap;
-import javax.annotation.PostConstruct;
-import org.eclipse.jetty.util.security.Password;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.core.env.Environment;
-
-@SpringBootApplication
-@PropertySource("file:${CONFIG_HOME}/fproxy.properties")
-public class FProxyApplication extends SpringBootServletInitializer {
-
- @Autowired
- private Environment env;
-
- /**
- * Spring Boot Initialization.
- *
- * @param args main args
- */
- public static void main(String[] args) {
- String keyStorePassword = System.getProperty("KEY_STORE_PASSWORD");
- if (keyStorePassword == null || keyStorePassword.isEmpty()) {
- throw new IllegalArgumentException("Env property KEY_STORE_PASSWORD not set");
- }
- HashMap<String, Object> props = new HashMap<>();
- props.put("server.ssl.key-store-password", Password.deobfuscate(keyStorePassword));
- new FProxyApplication().configure(new SpringApplicationBuilder(FProxyApplication.class).properties(props))
- .run(args);
- }
-
- /**
- * Set required trust store system properties using values from application.properties
- */
- @PostConstruct
- public void setSystemProperties() {
- String keyStorePath = env.getProperty("server.ssl.key-store");
- if (keyStorePath != null) {
- String keyStorePassword = env.getProperty("server.ssl.key-store-password");
-
- if (keyStorePassword != null) {
- System.setProperty("javax.net.ssl.keyStore", keyStorePath);
- System.setProperty("javax.net.ssl.keyStorePassword", keyStorePassword);
- System.setProperty("javax.net.ssl.trustStore", keyStorePath);
- System.setProperty("javax.net.ssl.trustStorePassword", keyStorePassword);
- } else {
- throw new IllegalArgumentException("Env property server.ssl.key-store-password not set");
- }
- }
- }
-}
diff --git a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/RestTemplateConfig.java b/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/RestTemplateConfig.java
deleted file mode 100644
index 8acfd86..0000000
--- a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/RestTemplateConfig.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aaf
- * ================================================================================
- * Copyright © 2018 European Software Marketing Ltd.
- * ================================================================================
- * 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.aaf.fproxy;
-
-import java.io.IOException;
-import java.security.GeneralSecurityException;
-import javax.net.ssl.SSLContext;
-import org.apache.http.conn.ssl.NoopHostnameVerifier;
-import org.apache.http.impl.client.HttpClientBuilder;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.ssl.SSLContextBuilder;
-import org.eclipse.jetty.util.security.Password;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.web.client.RestTemplateBuilder;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
-import org.springframework.util.ResourceUtils;
-import org.springframework.web.client.RestTemplate;
-
-@Configuration
-public class RestTemplateConfig {
-
- @Value("${server.ssl.client-cert}")
- private String clientCertPath;
-
- @Value("${server.ssl.client-cert-password}")
- private String clientCertPassword;
-
- @Value("${server.ssl.key-store}")
- private String keystorePath;
-
- @Value("${server.ssl.key-store-password}")
- private String keystorePassword;
-
- @Profile("secure")
- @Bean
- public RestTemplate restTemplate(RestTemplateBuilder builder) throws GeneralSecurityException, IOException {
- return new RestTemplate(new HttpComponentsClientHttpRequestFactory(getClientBuilder().build()));
- }
-
- @Profile("noHostVerification")
- @Bean
- public RestTemplate restTemplateNoHostVerification(RestTemplateBuilder builder)
- throws GeneralSecurityException, IOException {
- return new RestTemplate(new HttpComponentsClientHttpRequestFactory(
- getClientBuilder().setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE).build()));
- }
-
- private HttpClientBuilder getClientBuilder() throws GeneralSecurityException, IOException {
-
- SSLContext sslContext = SSLContextBuilder.create()
- .loadKeyMaterial(ResourceUtils.getFile(clientCertPath), Password.deobfuscate(clientCertPassword).toCharArray(),
- keystorePassword.toCharArray())
- .loadTrustMaterial(ResourceUtils.getFile(keystorePath), keystorePassword.toCharArray()).build();
-
- return HttpClients.custom().setSSLContext(sslContext);
- }
-}
diff --git a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/CredentialCache.java b/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/CredentialCache.java
deleted file mode 100644
index 00fe9d4..0000000
--- a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/CredentialCache.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aaf
- * ================================================================================
- * Copyright © 2018 European Software Marketing Ltd.
- * ================================================================================
- * 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.aaf.fproxy.cache;
-
-import org.onap.aaf.fproxy.data.CredentialCacheData;
-import org.springframework.lang.Nullable;
-
-public interface CredentialCache {
-
- void add(String key, CredentialCacheData value, long periodInMillis);
-
- void remove(String key);
-
- @Nullable
- CredentialCacheData get(String key);
-
- void clear();
-
- long size();
-}
diff --git a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/InMemoryCredentialCache.java b/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/InMemoryCredentialCache.java
deleted file mode 100644
index 44ce0cd..0000000
--- a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/InMemoryCredentialCache.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aaf
- * ================================================================================
- * Copyright © 2018 European Software Marketing Ltd.
- * ================================================================================
- * 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.aaf.fproxy.cache;
-
-import java.lang.ref.SoftReference;
-import java.util.Optional;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.DelayQueue;
-import java.util.concurrent.Delayed;
-import java.util.concurrent.TimeUnit;
-import org.onap.aaf.fproxy.data.CredentialCacheData;
-
-public class InMemoryCredentialCache implements CredentialCache {
-
- private final ConcurrentHashMap<String, SoftReference<CredentialCacheData>> cache = new ConcurrentHashMap<>();
- private final DelayQueue<DelayedCacheObject> cleaningUpQueue = new DelayQueue<>();
-
- public InMemoryCredentialCache() {
- Thread cleanerThread = new Thread(() -> {
- while (!Thread.currentThread().isInterrupted()) {
- try {
- DelayedCacheObject delayedCacheObject = cleaningUpQueue.take();
- cache.remove(delayedCacheObject.getKey(), delayedCacheObject.getReference());
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- }
- }
- });
- cleanerThread.setDaemon(true);
- cleanerThread.start();
- }
-
- @Override
- public void add(String key, CredentialCacheData value, long periodInMillis) {
- if (key == null) {
- return;
- }
- if (value == null) {
- cache.remove(key);
- } else {
- long expiryTime = System.currentTimeMillis() + periodInMillis;
- SoftReference<CredentialCacheData> reference = new SoftReference<>(value);
- cache.put(key, reference);
- cleaningUpQueue.put(new DelayedCacheObject(key, reference, expiryTime));
- }
- }
-
- @Override
- public void remove(String key) {
- cache.remove(key);
- }
-
- @Override
- public CredentialCacheData get(String key) {
- return Optional.ofNullable(cache.get(key)).map(SoftReference::get).orElse(null);
- }
-
- @Override
- public void clear() {
- cache.clear();
- }
-
- @Override
- public long size() {
- return cache.size();
- }
-
- private static class DelayedCacheObject implements Delayed {
-
- private final String key;
- private final SoftReference<CredentialCacheData> reference;
- private final long expiryTime;
-
- public DelayedCacheObject(String key, SoftReference<CredentialCacheData> reference, long expiryTime) {
- super();
- this.key = key;
- this.reference = reference;
- this.expiryTime = expiryTime;
- }
-
- @Override
- public long getDelay(TimeUnit unit) {
- return unit.convert(expiryTime - System.currentTimeMillis(), TimeUnit.MILLISECONDS);
- }
-
- @Override
- public int compareTo(Delayed o) {
- return Long.compare(expiryTime, ((DelayedCacheObject) o).expiryTime);
- }
-
- public String getKey() {
- return key;
- }
-
- public SoftReference<CredentialCacheData> getReference() {
- return reference;
- }
- }
-}
diff --git a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/utils/CacheUtils.java b/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/utils/CacheUtils.java
deleted file mode 100644
index b80fc32..0000000
--- a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/cache/utils/CacheUtils.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aaf
- * ================================================================================
- * Copyright © 2018 European Software Marketing Ltd.
- * ================================================================================
- * 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.aaf.fproxy.cache.utils;
-
-import javax.servlet.http.HttpServletRequest;
-import org.onap.aaf.fproxy.cache.CredentialCache;
-import org.onap.aaf.fproxy.data.CredentialCacheData;
-import org.onap.aaf.fproxy.data.CredentialCacheData.CredentialType;
-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.http.HttpHeaders;
-import org.springframework.stereotype.Component;
-import org.springframework.web.util.WebUtils;
-
-@Component
-public class CacheUtils {
-
- Logger logger = LoggerFactory.getLogger(CacheUtils.class);
-
- @Autowired
- private CredentialCache credentialCache;
-
- @Value("${transactionid.header.name}")
- private String transactionIdHeaderName;
-
- public void populateCredentialsFromCache(HttpHeaders headers, HttpServletRequest request) {
- String transactionId = headers.getFirst(transactionIdHeaderName);
- if (transactionId != null) {
- CredentialCacheData cacheData = credentialCache.get(transactionId);
- if (cacheData == null) {
- logger.info("Transaction ID {} not found in cache, skipping credential population...", transactionId);
- } else if (cacheData.getCredentialType().equals(CredentialType.HEADER)) {
- logger.info("Populating header credentials from cache for transaction ID: {}", transactionId);
- applyHeaderCacheData(cacheData, headers);
- } else if (cacheData.getCredentialType().equals(CredentialType.COOKIE)) {
- logger.info("Populating cookie credentials from cache for transaction ID: {}", transactionId);
- applyCookieCacheData(cacheData, headers, request);
- }
- } else {
- logger.info("No transaction ID found in request, skipping credential population...");
- }
- }
-
- private void applyHeaderCacheData(CredentialCacheData cacheData, HttpHeaders headers) {
- String credentialName = cacheData.getCredentialName();
- if (!headers.containsKey(credentialName)) {
- headers.add(credentialName, cacheData.getCredentialValue());
- logger.info("Header credentials successfully populated.");
- } else {
- logger.info("Request already contains header with name: {}, skipping credential population...",
- credentialName);
- }
- }
-
- private void applyCookieCacheData(CredentialCacheData cacheData, HttpHeaders headers, HttpServletRequest request) {
- String credentialName = cacheData.getCredentialName();
- // Check if Cookie with same name is already set then skip
- if (WebUtils.getCookie(request, credentialName) == null) {
- headers.add(HttpHeaders.COOKIE, cacheData.getCredentialValue());
- logger.info("Cookie credentials successfully populated.");
- } else {
- logger.info("Request already contains cookie with name: {}, skipping credential population...",
- credentialName);
- }
- }
-
- public void addCredentialsToCache(String transactionId, CredentialCacheData credentialdata, long cacheExpiryMs) {
- credentialCache.add(transactionId, credentialdata, cacheExpiryMs);
- }
-}
diff --git a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/data/CredentialCacheData.java b/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/data/CredentialCacheData.java
deleted file mode 100644
index b72ea08..0000000
--- a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/data/CredentialCacheData.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aaf
- * ================================================================================
- * Copyright © 2018 European Software Marketing Ltd.
- * ================================================================================
- * 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.aaf.fproxy.data;
-
-public class CredentialCacheData {
-
- public enum CredentialType {
- HEADER, COOKIE;
- }
-
- private String credentialName;
- private String credentialValue;
- private CredentialType credentialType;
-
- public CredentialCacheData() {
- super();
- }
-
- public CredentialCacheData(String credentialName, String credentialValue, CredentialType credentialType) {
- super();
- this.credentialName = credentialName;
- this.credentialValue = credentialValue;
- this.credentialType = credentialType;
- }
-
- public String getCredentialName() {
- return credentialName;
- }
-
- public void setCredentialName(String credentialName) {
- this.credentialName = credentialName;
- }
-
- public String getCredentialValue() {
- return credentialValue;
- }
-
- public void setCredentialValue(String credentialValue) {
- this.credentialValue = credentialValue;
- }
-
- public Enum<CredentialType> getCredentialType() {
- return credentialType;
- }
-
- public void setCredentialType(CredentialType credentialType) {
- this.credentialType = credentialType;
- }
-
- @Override
- public String toString() {
- return "CredentialCacheData [credentialName=" + credentialName + ", credentialType=" + credentialType + "]";
- }
-
-}
diff --git a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/service/ForwardingProxyService.java b/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/service/ForwardingProxyService.java
deleted file mode 100644
index 0d150ba..0000000
--- a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/service/ForwardingProxyService.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aaf
- * ================================================================================
- * Copyright © 2018 European Software Marketing Ltd.
- * ================================================================================
- * 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.aaf.fproxy.service;
-
-import java.net.URI;
-import java.util.Enumeration;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.onap.aaf.fproxy.cache.utils.CacheUtils;
-import org.onap.aaf.fproxy.data.CredentialCacheData;
-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.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.client.RestTemplate;
-import org.springframework.web.util.UriComponentsBuilder;
-
-@RestController
-public class ForwardingProxyService {
-
- Logger logger = LoggerFactory.getLogger(ForwardingProxyService.class);
-
- private static final long DEFAULT_CACHE_EXPIRY_MS = 180000; // 3 mins
-
- @Autowired
- RestTemplate restTemplate;
-
- @Autowired
- CacheUtils cacheUtils;
-
- @Value("${credential.cache.timeout.ms:" + DEFAULT_CACHE_EXPIRY_MS + "}")
- long cacheExpiryMs;
-
- @RequestMapping(value = "/credential-cache/{transactionId}", method = RequestMethod.POST)
- public ResponseEntity<String> addCredentialToCache(@PathVariable("transactionId") String transactionId,
- @RequestBody CredentialCacheData credentialdata) {
- logger.info("Updating credential cache with transaction ID: {}", transactionId);
-
- // Update credential cache
- logger.debug("Credential data: {}", credentialdata);
- cacheUtils.addCredentialsToCache(transactionId, credentialdata, cacheExpiryMs);
-
- logger.info("Credential cache successfully updated with transaction ID: {}", transactionId);
- return new ResponseEntity<>(transactionId, HttpStatus.OK);
- }
-
- @RequestMapping("/**")
- public ResponseEntity<String> forwardRest(@RequestBody(required = false) String body, HttpMethod method,
- HttpServletRequest request, HttpServletResponse response) {
-
- String requestUrl = request.getRequestURI();
-
- logger.info("Request received: {}", requestUrl);
-
- URI uri = UriComponentsBuilder.fromHttpUrl(request.getRequestURL().toString()).query(request.getQueryString())
- .build(true).toUri();
-
- HttpHeaders headers = new HttpHeaders();
- Enumeration<String> headerNames = request.getHeaderNames();
- while (headerNames.hasMoreElements()) {
- String headerName = headerNames.nextElement();
- headers.set(headerName, request.getHeader(headerName));
- }
-
- cacheUtils.populateCredentialsFromCache(headers, request);
-
- HttpEntity<String> httpEntity = new HttpEntity<>(body, headers);
-
- logger.info("Forwarding request...");
-
- return restTemplate.exchange(uri, method, httpEntity, String.class);
- }
-}
diff --git a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/util/RequestValidationException.java b/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/util/RequestValidationException.java
deleted file mode 100644
index ce6e162..0000000
--- a/sidecar/fproxy/src/main/java/org/onap/aaf/fproxy/util/RequestValidationException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aaf
- * ================================================================================
- * Copyright © 2018 European Software Marketing Ltd.
- * ================================================================================
- * 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.aaf.fproxy.util;
-
-/** This exception is thrown when the request fails validation. */
-public class RequestValidationException extends Exception {
-
- private static final long serialVersionUID = 1L;
-
- /**
- * Constructor for an instance of this exception with just a message.
- *
- * @param message information about the exception
- */
- public RequestValidationException(String message) {
- super(message);
- }
-}