>
+ --
+ objectTable: varchar
+ }
+ RbacObject o- "Business Objects"
+}
+
+package "Business Objects" {
+
+ entity package
+ package *--u- RbacObject
+
+ entity customer
+ customer *--u- RbacObject
+
+ entity "..." as moreBusinessObjects
+ moreBusinessObjects *-u- RbacObject
+}
+
+@enduml
+```
+
+### The RBAC Entity Types
+
+#### RbacReference
+
+An *RbacReference* is a generalization of all entity types which participate in the hierarchical role system, defined via *RbacGrant*.
+
+The primary key of the *RbacReference* and its referred object is always identical.
+
+#### RbacUser
+
+An *RbacUser* is a type of RBAC-subject which references a login account outside this system, identified by a name (usually an email-address).
+
+*RbacUser*s can be assigned to multiple *RbacRole*s, through which they can get permissions to *RbacObject*s.
+
+The primary key of the *RbacUser* is identical to its related *RbacReference*.
+
+#### RbacRole
+
+An *RbacRole* represents a collection of directly or indirectly assigned *RbacPermission*s.
+Each *RbacRole* can be assigned to *RbacUser*s or to another *RbacRole*.
+
+Both kinds of assignments are represented via *RbacGrant*.
+
+*RbacRole* entities can *RbacObject*s, or more precise
+
+#### RbacPermission
+
+An *RbacPermission* allows a specific *RbacOperation* on a specific *RbacObject*.
+
+#### RbacOperation
+
+An *RbacOperation* determines, what an *RbacPermission* allows to do.
+It can be one of:
+
+- **add-...** - permits creating new instances of specific entity types underneath the object specified by the permission, e.g. "add-package"
+- **view** - permits reading the contents of the object specified by the permission
+- **edit** - change the contents of the object specified by the permission
+- **delete** - delete the object specified by the permission
+
+This list is extensible according to the needs of the access rule system.
+
+Please notice, that there is no **create-...** operation to create new instances of related business-object-types.
+For such a singleton business-object-type, e.g. *Organization" or "Hostsharing" has to be defined, and its single entity is referred in the permission.
+By this, the foreign key in *RbacPermission* can be defined as `NOT NULL`.
+
+#### RbacGrant
+
+The *RbacGrant* entities represent the access-rights structure from *RbacUser*s via hierarchical *RbacRoles* down to *RbacPermission*s.
+
+The core SQL queries to determine access rights are all recursive queries on the *RbacGrant* table.
+
+### Role naming
+
+Automatically generated roles are named as such:
+
+#### business-table#business-object-name.tenant
+This role is assigned to users who manage objects underneath the object which is accessible through the role.
+This rule usually gets only view permissions assigned.
+
+**Example**
+
+'dd'
+
+## Example Users, Roles, Permissions and Business-Objects
+
+```plantuml
+@startuml
+' left to right direction
+top to bottom direction
+
+' hide the ugly E in a circle left to the entity name
+hide circle
+
+' use right-angled line routing
+' skinparam linetype ortho
+
+package RbacUsers {
+ object UserMike
+ object UserSuse
+ object UserPaul
+}
+
+package RbacRoles {
+ object RoleAdministrators
+ object RoleCustXyz_Owner
+ object RoleCustXyz_Admin
+ object RolePackXyz00_Owner
+}
+RbacUsers -[hidden]> RbacRoles
+
+package RbacPermissions {
+ object PermCustXyz_View
+ object PermCustXyz_Edit
+ object PermCustXyz_Delete
+ object PermCustXyz_AddPackage
+ object PermPackXyz00_View
+ object PermPackXyz00_Edit
+ object PermPackXyz00_Delete
+ object PermPackXyz00_AddUser
+}
+RbacRoles -[hidden]> RbacPermissions
+
+package BusinessObjects {
+ object CustXyz
+ object PackXyz00
+}
+RbacPermissions -[hidden]> BusinessObjects
+
+UserMike o---> RoleAdministrators
+UserSuse o--> RoleCustXyz_Admin
+UserPaul o--> RolePackXyz00_Owner
+
+RoleAdministrators o..> RoleCustXyz_Owner
+RoleCustXyz_Owner o-> RoleCustXyz_Admin
+RoleCustXyz_Admin o-> RolePackXyz00_Owner
+
+RoleCustXyz_Owner o--> PermCustXyz_Edit
+RoleCustXyz_Owner o--> PermCustXyz_Delete
+RoleCustXyz_Admin o--> PermCustXyz_View
+RoleCustXyz_Admin o--> PermCustXyz_AddPackage
+RolePackXyz00_Owner o--> PermPackXyz00_View
+RolePackXyz00_Owner o--> PermPackXyz00_Edit
+RolePackXyz00_Owner o--> PermPackXyz00_Delete
+RolePackXyz00_Owner o--> PermPackXyz00_AddUser
+
+PermCustXyz_View o--> CustXyz
+PermCustXyz_Edit o--> CustXyz
+PermCustXyz_Delete o--> CustXyz
+PermCustXyz_AddPackage o--> CustXyz
+PermPackXyz00_View o--> PackXyz00
+PermPackXyz00_Edit o--> PackXyz00
+PermPackXyz00_Delete o--> PackXyz00
+PermPackXyz00_AddUser o--> PackXyz00
+
+@enduml
+```
+
+
+```plantuml
+@startuml
+left to right direction
+' top to bottom direction
+
+' hide the ugly E in a circle left to the entity name
+hide circle
+
+' use right-angled line routing
+' skinparam linetype ortho
+
+package rbacPerms {
+ cust
+}
+
+package rbacRoles {
+ entity administrators
+ entity custXXX
+}
+
+package rbacUsers {
+ entity adminMike
+ adminMike <-- administrators
+
+ entity adminSven
+ entity custXXX
+ entity pacAdmXXX00
+}
+
+@enduml
+```
+
diff --git a/src/test/features/gitkeep b/sql/rbac.pdf
similarity index 100%
rename from src/test/features/gitkeep
rename to sql/rbac.pdf
diff --git a/sql/rbac.sql b/sql/rbac.sql
new file mode 100644
index 00000000..139597f9
--- /dev/null
+++ b/sql/rbac.sql
@@ -0,0 +1,2 @@
+
+
diff --git a/src/main/docker/.dockerignore b/src/main/docker/.dockerignore
deleted file mode 100644
index b03bdc71..00000000
--- a/src/main/docker/.dockerignore
+++ /dev/null
@@ -1,14 +0,0 @@
-# https://docs.docker.com/engine/reference/builder/#dockerignore-file
-classes/
-generated-sources/
-generated-test-sources/
-h2db/
-maven-archiver/
-maven-status/
-reports/
-surefire-reports/
-test-classes/
-test-results/
-www/
-!*.jar
-!*.war
diff --git a/src/main/docker/Dockerfile b/src/main/docker/Dockerfile
deleted file mode 100644
index 43fadcb6..00000000
--- a/src/main/docker/Dockerfile
+++ /dev/null
@@ -1,20 +0,0 @@
-FROM openjdk:8-jre-alpine
-
-ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \
- JHIPSTER_SLEEP=0 \
- JAVA_OPTS=""
-
-# Add a jhipster user to run our application so that it doesn't need to run as root
-RUN adduser -D -s /bin/sh jhipster
-WORKDIR /home/jhipster
-
-ADD entrypoint.sh entrypoint.sh
-RUN chmod 755 entrypoint.sh && chown jhipster:jhipster entrypoint.sh
-USER jhipster
-
-ENTRYPOINT ["./entrypoint.sh"]
-
-EXPOSE 8080
-
-ADD *.war app.war
-
diff --git a/src/main/docker/app.yml b/src/main/docker/app.yml
deleted file mode 100644
index 09f053d1..00000000
--- a/src/main/docker/app.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-version: '2'
-services:
- hsadminng-app:
- image: hsadminng
- environment:
- - _JAVA_OPTIONS=-Xmx512m -Xms256m
- - SPRING_PROFILES_ACTIVE=prod,swagger
- - SPRING_DATASOURCE_URL=jdbc:postgresql://hsadminng-postgresql:5432/hsadminNg
- - JHIPSTER_SLEEP=10 # gives time for the database to boot before the application
- ports:
- - 8080:8080
- hsadminng-postgresql:
- extends:
- file: postgresql.yml
- service: hsadminng-postgresql
diff --git a/src/main/docker/entrypoint.sh b/src/main/docker/entrypoint.sh
deleted file mode 100644
index ccffafb5..00000000
--- a/src/main/docker/entrypoint.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-echo "The application will start in ${JHIPSTER_SLEEP}s..." && sleep ${JHIPSTER_SLEEP}
-exec java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar "${HOME}/app.war" "$@"
diff --git a/src/main/docker/jenkins.yml b/src/main/docker/jenkins.yml
deleted file mode 100644
index f0670603..00000000
--- a/src/main/docker/jenkins.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-version: '2'
-services:
- jenkins:
- image: jenkins:latest
- ports:
- - 49001:8080
- - 50000:50000
- # uncomment for docker in docker
- #privileged: true
- #volumes:
- # enable persistent volume (warning: make sure that the local jenkins_home folder is created)
- #- ~/volumes/jenkins_home:/var/jenkins_home
- # mount docker sock and binary for docker in docker (only works on linux)
- #- /var/run/docker.sock:/var/run/docker.sock
- #- /usr/bin/docker:/usr/bin/docker
diff --git a/src/main/docker/postgresql.yml b/src/main/docker/postgresql.yml
deleted file mode 100644
index 3a872cee..00000000
--- a/src/main/docker/postgresql.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-version: '2'
-services:
- hsadminng-postgresql:
- image: postgres:10.4
- # volumes:
- # - ~/volumes/jhipster/hsadminNg/postgresql/:/var/lib/postgresql/data/
- environment:
- - POSTGRES_USER=hsadminNg
- - POSTGRES_PASSWORD=
- ports:
- - 5432:5432
diff --git a/src/main/docker/sonar.yml b/src/main/docker/sonar.yml
deleted file mode 100644
index 678facb0..00000000
--- a/src/main/docker/sonar.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-version: '2'
-services:
- hsadminng-sonar:
- image: sonarqube:7.1
- ports:
- - 9001:9000
- - 9092:9092
diff --git a/src/main/docker/swagger-editor.yml b/src/main/docker/swagger-editor.yml
deleted file mode 100644
index d2b27f6b..00000000
--- a/src/main/docker/swagger-editor.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-version: '2'
-services:
- swagger-editor:
- image: swaggerapi/swagger-editor:latest
- ports:
- - 7742:8080
diff --git a/src/main/java/org/hostsharing/hsadminng/ApplicationWebXml.java b/src/main/java/org/hostsharing/hsadminng/ApplicationWebXml.java
deleted file mode 100644
index d6b76fff..00000000
--- a/src/main/java/org/hostsharing/hsadminng/ApplicationWebXml.java
+++ /dev/null
@@ -1,23 +0,0 @@
-// Licensed under Apache-2.0
-package org.hostsharing.hsadminng;
-
-import org.hostsharing.hsadminng.config.DefaultProfileUtil;
-
-import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
-
-/**
- * This is a helper Java class that provides an alternative to creating a web.xml.
- * This will be invoked only when the application is deployed to a Servlet container like Tomcat, JBoss etc.
- */
-public class ApplicationWebXml extends SpringBootServletInitializer {
-
- @Override
- protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
- /**
- * set a default to use when no profile is configured.
- */
- DefaultProfileUtil.addDefaultProfile(application.application());
- return application.sources(HsadminNgApp.class);
- }
-}
diff --git a/src/main/java/org/hostsharing/hsadminng/HsadminNgApp.java b/src/main/java/org/hostsharing/hsadminng/HsadminNgApp.java
deleted file mode 100644
index fcb5e760..00000000
--- a/src/main/java/org/hostsharing/hsadminng/HsadminNgApp.java
+++ /dev/null
@@ -1,111 +0,0 @@
-// Licensed under Apache-2.0
-package org.hostsharing.hsadminng;
-
-import org.hostsharing.hsadminng.config.ApplicationProperties;
-import org.hostsharing.hsadminng.config.DefaultProfileUtil;
-import org.hostsharing.hsadminng.service.accessfilter.Role;
-
-import io.github.jhipster.config.JHipsterConstants;
-
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.core.env.Environment;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.Arrays;
-import java.util.Collection;
-
-import javax.annotation.PostConstruct;
-
-@SpringBootApplication
-@EnableConfigurationProperties({ LiquibaseProperties.class, ApplicationProperties.class })
-public class HsadminNgApp {
-
- private static final Logger log = LoggerFactory.getLogger(HsadminNgApp.class);
-
- private final Environment env;
-
- public HsadminNgApp(Environment env) {
- this.env = env;
-
- // TODO mhoennig rather use @PostConstruct or something more decentral
- Role.init();
- }
-
- /**
- * Initializes hsadminNg.
- *
- * Spring profiles can be configured with a program argument --spring.profiles.active=your-active-profile
- *
- * You can find more information on how profiles work with JHipster on
- * https://www.jhipster.tech/profiles/.
- */
- @PostConstruct
- public void initApplication() {
-
- Collection activeProfiles = Arrays.asList(env.getActiveProfiles());
- if (activeProfiles.contains(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT)
- && activeProfiles.contains(JHipsterConstants.SPRING_PROFILE_PRODUCTION)) {
- log.error(
- "You have misconfigured your application! It should not run " +
- "with both the 'dev' and 'prod' profiles at the same time.");
- }
- if (activeProfiles.contains(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT)
- && activeProfiles.contains(JHipsterConstants.SPRING_PROFILE_CLOUD)) {
- log.error(
- "You have misconfigured your application! It should not " +
- "run with both the 'dev' and 'cloud' profiles at the same time.");
- }
- }
-
- /**
- * Main method, used to run the application.
- *
- * @param args the command line arguments
- */
- public static void main(String[] args) {
- SpringApplication app = new SpringApplication(HsadminNgApp.class);
- DefaultProfileUtil.addDefaultProfile(app);
- Environment env = app.run(args).getEnvironment();
- logApplicationStartup(env);
- }
-
- private static void logApplicationStartup(Environment env) {
- String protocol = "http";
- if (env.getProperty("server.ssl.key-store") != null) {
- protocol = "https";
- }
- String serverPort = env.getProperty("server.port");
- String contextPath = env.getProperty("server.servlet.context-path");
- if (StringUtils.isBlank(contextPath)) {
- contextPath = "/";
- }
- String hostAddress = "localhost";
- try {
- hostAddress = InetAddress.getLocalHost().getHostAddress();
- } catch (UnknownHostException e) {
- log.warn("The host name could not be determined, using `localhost` as fallback");
- }
- log.info(
- "\n----------------------------------------------------------\n\t" +
- "Application '{}' is running! Access URLs:\n\t" +
- "Local: \t\t{}://localhost:{}{}\n\t" +
- "External: \t{}://{}:{}{}\n\t" +
- "Profile(s): \t{}\n----------------------------------------------------------",
- env.getProperty("spring.application.name"),
- protocol,
- serverPort,
- contextPath,
- protocol,
- hostAddress,
- serverPort,
- contextPath,
- env.getActiveProfiles());
- }
-}
diff --git a/src/main/java/org/hostsharing/hsadminng/aop/logging/LoggingAspect.java b/src/main/java/org/hostsharing/hsadminng/aop/logging/LoggingAspect.java
deleted file mode 100644
index f6574ef4..00000000
--- a/src/main/java/org/hostsharing/hsadminng/aop/logging/LoggingAspect.java
+++ /dev/null
@@ -1,116 +0,0 @@
-// Licensed under Apache-2.0
-package org.hostsharing.hsadminng.aop.logging;
-
-import io.github.jhipster.config.JHipsterConstants;
-
-import org.aspectj.lang.JoinPoint;
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.annotation.AfterThrowing;
-import org.aspectj.lang.annotation.Around;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Pointcut;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.core.env.Environment;
-
-import java.util.Arrays;
-
-/**
- * Aspect for logging execution of service and repository Spring components.
- *
- * By default, it only runs with the "dev" profile.
- */
-@Aspect
-public class LoggingAspect {
-
- private final Logger log = LoggerFactory.getLogger(this.getClass());
-
- private final Environment env;
-
- public LoggingAspect(Environment env) {
- this.env = env;
- }
-
- /**
- * Pointcut that matches all repositories, services and Web REST endpoints.
- */
- @Pointcut("within(@org.springframework.stereotype.Repository *)" +
- " || within(@org.springframework.stereotype.Service *)" +
- " || within(@org.springframework.web.bind.annotation.RestController *)")
- public void springBeanPointcut() {
- // Method is empty as this is just a Pointcut, the implementations are in the advices.
- }
-
- /**
- * Pointcut that matches all Spring beans in the application's main packages.
- */
- @Pointcut("within(org.hostsharing.hsadminng.repository..*)" +
- " || within(org.hostsharing.hsadminng.service..*)" +
- " || within(org.hostsharing.hsadminng.web.rest..*)")
- public void applicationPackagePointcut() {
- // Method is empty as this is just a Pointcut, the implementations are in the advices.
- }
-
- /**
- * Advice that logs methods throwing exceptions.
- *
- * @param joinPoint join point for advice
- * @param e exception
- */
- @AfterThrowing(pointcut = "applicationPackagePointcut() && springBeanPointcut()", throwing = "e")
- public void logAfterThrowing(JoinPoint joinPoint, Throwable e) {
- if (env.acceptsProfiles(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT)) {
- log.error(
- "Exception in {}.{}() with cause = \'{}\' and exception = \'{}\'",
- joinPoint.getSignature().getDeclaringTypeName(),
- joinPoint.getSignature().getName(),
- e.getCause() != null ? e.getCause() : "NULL",
- e.getMessage(),
- e);
-
- } else {
- log.error(
- "Exception in {}.{}() with cause = {}",
- joinPoint.getSignature().getDeclaringTypeName(),
- joinPoint.getSignature().getName(),
- e.getCause() != null ? e.getCause() : "NULL");
- }
- }
-
- /**
- * Advice that logs when a method is entered and exited.
- *
- * @param joinPoint join point for advice
- * @return result
- * @throws Throwable throws IllegalArgumentException
- */
- @Around("applicationPackagePointcut() && springBeanPointcut()")
- public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable {
- if (log.isDebugEnabled()) {
- log.debug(
- "Enter: {}.{}() with argument[s] = {}",
- joinPoint.getSignature().getDeclaringTypeName(),
- joinPoint.getSignature().getName(),
- Arrays.toString(joinPoint.getArgs()));
- }
- try {
- Object result = joinPoint.proceed();
- if (log.isDebugEnabled()) {
- log.debug(
- "Exit: {}.{}() with result = {}",
- joinPoint.getSignature().getDeclaringTypeName(),
- joinPoint.getSignature().getName(),
- result);
- }
- return result;
- } catch (IllegalArgumentException e) {
- log.error(
- "Illegal argument: {} in {}.{}()",
- Arrays.toString(joinPoint.getArgs()),
- joinPoint.getSignature().getDeclaringTypeName(),
- joinPoint.getSignature().getName());
-
- throw e;
- }
- }
-}
diff --git a/src/main/java/org/hostsharing/hsadminng/config/ApplicationProperties.java b/src/main/java/org/hostsharing/hsadminng/config/ApplicationProperties.java
deleted file mode 100644
index 19bc4cdb..00000000
--- a/src/main/java/org/hostsharing/hsadminng/config/ApplicationProperties.java
+++ /dev/null
@@ -1,15 +0,0 @@
-// Licensed under Apache-2.0
-package org.hostsharing.hsadminng.config;
-
-import org.springframework.boot.context.properties.ConfigurationProperties;
-
-/**
- * Properties specific to Hsadmin Ng.
- *
- * Properties are configured in the application.yml file.
- * See {@link io.github.jhipster.config.JHipsterProperties} for a good example.
- */
-@ConfigurationProperties(prefix = "application", ignoreUnknownFields = false)
-public class ApplicationProperties {
-
-}
diff --git a/src/main/java/org/hostsharing/hsadminng/config/AsyncConfiguration.java b/src/main/java/org/hostsharing/hsadminng/config/AsyncConfiguration.java
deleted file mode 100644
index c87c3b44..00000000
--- a/src/main/java/org/hostsharing/hsadminng/config/AsyncConfiguration.java
+++ /dev/null
@@ -1,60 +0,0 @@
-// Licensed under Apache-2.0
-package org.hostsharing.hsadminng.config;
-
-import io.github.jhipster.async.ExceptionHandlingAsyncTaskExecutor;
-import io.github.jhipster.config.JHipsterProperties;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
-import org.springframework.aop.interceptor.SimpleAsyncUncaughtExceptionHandler;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.annotation.*;
-import org.springframework.scheduling.annotation.SchedulingConfigurer;
-import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
-import org.springframework.scheduling.config.ScheduledTaskRegistrar;
-
-import java.util.concurrent.Executor;
-import java.util.concurrent.Executors;
-
-@Configuration
-@EnableAsync
-@EnableScheduling
-public class AsyncConfiguration implements AsyncConfigurer, SchedulingConfigurer {
-
- private final Logger log = LoggerFactory.getLogger(AsyncConfiguration.class);
-
- private final JHipsterProperties jHipsterProperties;
-
- public AsyncConfiguration(JHipsterProperties jHipsterProperties) {
- this.jHipsterProperties = jHipsterProperties;
- }
-
- @Override
- @Bean(name = "taskExecutor")
- public Executor getAsyncExecutor() {
- log.debug("Creating Async Task Executor");
- ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
- executor.setCorePoolSize(jHipsterProperties.getAsync().getCorePoolSize());
- executor.setMaxPoolSize(jHipsterProperties.getAsync().getMaxPoolSize());
- executor.setQueueCapacity(jHipsterProperties.getAsync().getQueueCapacity());
- executor.setThreadNamePrefix("hsadmin-ng-Executor-");
- return new ExceptionHandlingAsyncTaskExecutor(executor);
- }
-
- @Override
- public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
- return new SimpleAsyncUncaughtExceptionHandler();
- }
-
- @Override
- public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
- taskRegistrar.setScheduler(scheduledTaskExecutor());
- }
-
- @Bean
- public Executor scheduledTaskExecutor() {
- return Executors.newScheduledThreadPool(jHipsterProperties.getAsync().getCorePoolSize());
- }
-}
diff --git a/src/main/java/org/hostsharing/hsadminng/config/CacheConfiguration.java b/src/main/java/org/hostsharing/hsadminng/config/CacheConfiguration.java
deleted file mode 100644
index 02c5479a..00000000
--- a/src/main/java/org/hostsharing/hsadminng/config/CacheConfiguration.java
+++ /dev/null
@@ -1,45 +0,0 @@
-// Licensed under Apache-2.0
-package org.hostsharing.hsadminng.config;
-
-import io.github.jhipster.config.JHipsterProperties;
-
-import org.ehcache.config.builders.*;
-import org.ehcache.jsr107.Eh107Configuration;
-import org.springframework.boot.autoconfigure.cache.JCacheManagerCustomizer;
-import org.springframework.cache.annotation.EnableCaching;
-import org.springframework.context.annotation.*;
-
-import java.time.Duration;
-
-@Configuration
-@EnableCaching
-public class CacheConfiguration {
-
- private final javax.cache.configuration.Configuration