diff options
Diffstat (limited to 'core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage')
4 files changed, 0 insertions, 454 deletions
diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/CacheWithEidasBackend.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/CacheWithEidasBackend.java deleted file mode 100644 index 0eeb35d9..00000000 --- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/CacheWithEidasBackend.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2018 A-SIT Plus GmbH - * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ, - * A-SIT Plus GmbH, A-SIT, and Graz University of Technology. - * - * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "License"); - * You may not use this work except in compliance with the License. - * You may obtain a copy of the License at: - * https://joinup.ec.europa.eu/news/understanding-eupl-v12 - * - * 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. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. -*/ - -package at.asitplus.eidas.specific.core.storage; - -import eu.eidas.auth.commons.cache.ConcurrentCacheService; -import eu.eidas.auth.commons.tx.AbstractCache; - -public class CacheWithEidasBackend extends AbstractCache<String, TransactionStoreElement> { - - protected CacheWithEidasBackend(ConcurrentCacheService concurrentMapService) { - super(concurrentMapService); - } - -} diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/EidasCacheTransactionStoreDecorator.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/EidasCacheTransactionStoreDecorator.java deleted file mode 100644 index 9b1c8eae..00000000 --- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/EidasCacheTransactionStoreDecorator.java +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Copyright 2018 A-SIT Plus GmbH - * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ, - * A-SIT Plus GmbH, A-SIT, and Graz University of Technology. - * - * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "License"); - * You may not use this work except in compliance with the License. - * You may obtain a copy of the License at: - * https://joinup.ec.europa.eu/news/understanding-eupl-v12 - * - * 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. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. -*/ - -package at.asitplus.eidas.specific.core.storage; - -import java.util.Arrays; -import java.util.Date; -import java.util.List; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.actuate.health.Health; -import org.springframework.boot.actuate.health.HealthIndicator; - -import at.gv.egiz.eaaf.core.api.storage.ITransactionStorage; -import at.gv.egiz.eaaf.core.exceptions.EaafException; -import at.gv.egiz.eaaf.core.exceptions.EaafStorageException; -import at.gv.egiz.eaaf.core.impl.utils.Random; - -public class EidasCacheTransactionStoreDecorator implements ITransactionStorage, HealthIndicator { - private static final Logger log = LoggerFactory.getLogger(EidasCacheTransactionStoreDecorator.class); - - @Autowired(required = true) - private CacheWithEidasBackend storage; - - @Override - public Health health() { - try { - final String key = Random.nextHexRandom16(); - final String value = Random.nextHexRandom16(); - - this.put(key, value, -1); - final String result = this.get(key, String.class); - this.remove(key); - - if (result != null && result.equals(value)) { - return Health.up().build(); - - } else { - log.warn("Montioring: TestValue: " + value + " does NOT match in Storage test"); - return Health.down().build(); - - } - - } catch (final EaafException e) { - log.warn("Montioring: Can not read/write to storage.", e); - return Health.down().down(e).build(); - - } - } - - @Override - public void changeKey(String oldKey, String newKey, Object value) throws EaafException { - if (containsKey(oldKey)) { - final TransactionStoreElement el = storage.get(oldKey); - el.setKey(newKey); - el.setData(value); - storage.put(newKey, el); - boolean delResult = storage.remove(oldKey); - log.trace("Object: {} removed from cache: {}", oldKey, delResult); - - } else { - throw new EaafStorageException("No element in TransactionStorage with key: " + oldKey); - } - - } - - @Override - public List<String> clean(Date now, long dataTimeOut) { - log.info("Clean is NOT implemented, because its not needed"); - return Arrays.asList(); - - } - - @Override - public boolean containsKey(String key) { - return storage.containsKey(key); - - } - - @Override - public Object get(String key) throws EaafException { - if (key != null && containsKey(key)) { - final TransactionStoreElement element = storage.get(key); - return element.getData(); - - } else { - return null; - } - } - - @Override - public <T> T get(String key, Class<T> type) throws EaafException { - return get(key, type, -1); - - } - - @Override - public <T> T get(String key, Class<T> type, long dataTimeOut) throws EaafException { - if (key != null && containsKey(key)) { - final TransactionStoreElement value = storage.get(key); - - if (dataTimeOut > -1) { - final long now = new Date().getTime(); - if (now - value.getCreated().getTime() > dataTimeOut) { - log.info("Transaction-Data with key: " + key + " is out of time."); - throw new EaafStorageException("Transaction-Data with key: " + key + " is out of time."); - - } - } - - if (type.isAssignableFrom(value.getData().getClass())) { - return (T) value.getData(); - - } else { - log.warn("Can NOT cast '" + value.getClass() + "' to '" + type + "'"); - } - - } - - return null; - } - - @Override - public Object getRaw(String key) throws EaafException { - return storage.get(key); - - } - - @Override - public void put(String key, Object value, int dataTimeOut) throws EaafException { - final TransactionStoreElement element = new TransactionStoreElement(); - element.setKey(key); - element.setData(value); - storage.put(key, element); - - } - - @Override - public void putRaw(String key, Object value) throws EaafException { - if (value instanceof TransactionStoreElement) { - storage.put(((TransactionStoreElement) value).getKey(), (TransactionStoreElement) value); - } else { - log.info(value.getClass().getName() + " is NOT a RAW element of " + ITransactionStorage.class - .getName()); - } - - } - - @Override - public void remove(String key) { - if (containsKey(key)) { - log.debug("Remove element with key: " + key + " from " + ITransactionStorage.class.getName()); - boolean delResult = storage.remove(key); - log.trace("Object: {} removed from cache: {}", key, delResult); - - } - } -} diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/SimpleInMemoryTransactionStorage.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/SimpleInMemoryTransactionStorage.java deleted file mode 100644 index a3a8af0f..00000000 --- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/SimpleInMemoryTransactionStorage.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright 2018 A-SIT Plus GmbH - * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ, - * A-SIT Plus GmbH, A-SIT, and Graz University of Technology. - * - * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "License"); - * You may not use this work except in compliance with the License. - * You may obtain a copy of the License at: - * https://joinup.ec.europa.eu/news/understanding-eupl-v12 - * - * 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. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. -*/ - -package at.asitplus.eidas.specific.core.storage; - -import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.concurrent.ConcurrentHashMap; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import at.gv.egiz.eaaf.core.api.storage.ITransactionStorage; -import at.gv.egiz.eaaf.core.exceptions.EaafException; -import at.gv.egiz.eaaf.core.exceptions.EaafStorageException; - -public class SimpleInMemoryTransactionStorage implements ITransactionStorage { - private static final Logger log = LoggerFactory.getLogger(SimpleInMemoryTransactionStorage.class); - - private final Map<String, TransactionStoreElement> storage = - new ConcurrentHashMap<>(); - - @Override - public void changeKey(String oldKey, String newKey, Object value) throws EaafException { - if (containsKey(oldKey)) { - final TransactionStoreElement el = storage.get(oldKey); - el.setKey(newKey); - storage.put(newKey, el); - storage.remove(oldKey); - - } else { - throw new EaafStorageException("No element in TransactionStorage with key: " + oldKey); - } - - } - - @Override - public List<String> clean(Date now, long dataTimeOut) { - final List<String> result = new ArrayList<>(); - final Iterator<Entry<String, TransactionStoreElement>> iterator = storage.entrySet().iterator(); - while (iterator.hasNext()) { - final Entry<String, TransactionStoreElement> key = iterator.next(); - synchronized (storage) { - if (storage.containsKey(key.getKey())) { - final TransactionStoreElement element = key.getValue(); - if (now.getTime() - element.getCreated().getTime() > dataTimeOut) { - result.add(key.getKey()); - } - } - } - } - - return result; - - } - - @Override - public boolean containsKey(String key) { - if (key != null) { - return storage.containsKey(key); - } else { - return false; - } - - } - - @Override - public Object get(String key) throws EaafException { - if (key != null && containsKey(key)) { - final TransactionStoreElement element = storage.get(key); - return element.getData(); - - } else { - return null; - } - } - - @Override - public <T> T get(String key, Class<T> type) throws EaafException { - return get(key, type, -1); - - } - - @Override - public <T> T get(String key, Class<T> type, long dataTimeOut) throws EaafException { - if (key != null && containsKey(key)) { - final TransactionStoreElement value = storage.get(key); - - if (dataTimeOut > -1) { - final long now = new Date().getTime(); - if (now - value.getCreated().getTime() > dataTimeOut) { - log.info("Transaction-Data with key: " + key + " is out of time."); - throw new EaafStorageException("Transaction-Data with key: " + key + " is out of time."); - - } - } - - if (type.isAssignableFrom(value.getData().getClass())) { - return (T) value.getData(); - - } else { - log.warn("Can NOT cast '" + value.getClass() + "' to '" + type + "'"); - } - - } - - return null; - } - - @Override - public Object getRaw(String key) throws EaafException { - return storage.get(key); - - } - - @Override - public void put(String key, Object value, int dataTimeOut) throws EaafException { - final TransactionStoreElement element = new TransactionStoreElement(); - element.setKey(key); - element.setData(value); - storage.put(key, element); - - } - - @Override - public void putRaw(String key, Object value) throws EaafException { - if (value instanceof TransactionStoreElement) { - storage.put(((TransactionStoreElement) value).getKey(), (TransactionStoreElement) value); - } else { - log.info(value.getClass().getName() + " is NOT a RAW element of " + ITransactionStorage.class - .getName()); - } - - } - - @Override - public void remove(String key) { - if (containsKey(key)) { - log.debug("Remove element with key: " + key + " from " + ITransactionStorage.class.getName()); - storage.remove(key); - - } - } - -} diff --git a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/TransactionStoreElement.java b/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/TransactionStoreElement.java deleted file mode 100644 index 48668d4b..00000000 --- a/core_common_webapp/src/main/java/at/asitplus/eidas/specific/core/storage/TransactionStoreElement.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2018 A-SIT Plus GmbH - * AT-specific eIDAS Connector has been developed in a cooperation between EGIZ, - * A-SIT Plus GmbH, A-SIT, and Graz University of Technology. - * - * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "License"); - * You may not use this work except in compliance with the License. - * You may obtain a copy of the License at: - * https://joinup.ec.europa.eu/news/understanding-eupl-v12 - * - * 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. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. -*/ - -package at.asitplus.eidas.specific.core.storage; - -import java.io.Serializable; -import java.util.Date; - -public class TransactionStoreElement implements Serializable { - - private static final long serialVersionUID = 1L; - private String key = null; - private Object data = null; - private Date created; - - public String getKey() { - return key; - } - - public void setKey(String key) { - this.key = key; - } - - public Object getData() { - return data; - } - - public void setData(Object data) { - this.data = data; - } - - public Date getCreated() { - return copyOrNull(created); - } - - public void setCreated(Date created) { - this.created = copyOrNull(created); - } - - private Date copyOrNull(Date in) { - if (in != null) { - return new Date(in.getTime()); - - } - - return null; - - } - -} |