From 0db978738bb734ba4ccd12fb803ae6c63adadd17 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Mon, 5 Aug 2024 22:08:52 -0300 Subject: [PATCH 01/17] Spring Boot v3 templates based on https://github.com/jhipster/jhipster-kotlin/commit/564f3e0953a3811196f23720d008e384ff2e3c01 --- .../config/LocaleConfiguration.kt.ejs | 2 +- .../client/AuthorizationHeaderUtilTest.kt.ejs | 45 +- .../jwt/JWTRelayGatewayFilterFactory.kt.ejs | 37 +- .../service/UserService.kt.ejs | 28 +- .../web/rest/PublicUserResource.kt.ejs | 57 +-- .../web/rest/UserResource.kt.ejs | 6 +- .../_package_/config/CRLFLogConverter.kt.ejs | 3 +- .../kotlin/_package_/config/Constants.kt.ejs | 6 +- .../config/JacksonConfiguration.kt.ejs | 19 +- .../config/OpenApiConfiguration.kt.ejs | 4 +- .../SecurityConfiguration_imperative.kt.ejs | 397 +++++++++--------- .../SecurityConfiguration_reactive.kt.ejs | 315 +++++++------- .../SecurityInMemoryConfiguration.kt.ejs | 49 +++ .../config/SecurityJwtConfiguration.kt.ejs | 126 ++++++ .../_package_/config/WebConfigurer.kt.ejs | 21 +- .../main/kotlin/_package_/domain/User.kt.ejs | 29 +- .../_package_/security/SecurityUtils.kt.ejs | 55 +-- .../jwt/JWTRelayGatewayFilterFactory.kt.ejs | 58 +++ .../_package_/service/MailService.kt.ejs | 16 +- .../web/filter/SpaWebFilter_imperative.kt.ejs | 60 +++ .../web/filter/SpaWebFilter_reactive.kt.ejs | 21 +- .../_package_/web/rest/AccountResource.kt.ejs | 172 +------- .../web/rest/AccountResource_oauth2.kt.ejs | 89 ++++ .../AccountResource_skipUserManagement.kt.ejs | 174 ++++++++ .../web/rest/AuthenticateController.kt.ejs | 97 ++++- .../errors/BadRequestAlertException.kt.ejs | 44 +- .../web/rest/errors/ErrorConstants.kt.ejs | 2 +- .../rest/errors/ExceptionTranslator.kt.ejs | 361 ++++++++++------ .../errors/InvalidPasswordException.kt.ejs | 27 +- .../kotlin/_package_/IntegrationTest.kt.ejs | 12 +- .../_package_/TechnicalStructureTest.kt.ejs | 13 +- .../service/UserServiceIT.kt.ejs | 4 +- .../web/rest/UserResourceIT.kt.ejs | 63 ++- .../web/rest/_entityClass_ResourceIT.kt.ejs | 140 +++--- .../JHipsterBlockHoundIntegration.kt.ejs | 39 +- ...inersSpringContextCustomizerFactory.kt.ejs | 160 ------- .../jwt/AuthenticationIntegrationTest.kt.ejs | 76 ++++ .../jwt/JwtAuthenticationTestUtils.kt.ejs | 132 ++++++ .../jwt/TestAuthenticationResource.kt.ejs | 18 + .../security/jwt/TokenAuthenticationIT.kt.ejs | 96 +++++ ...TokenAuthenticationSecurityMetersIT.kt.ejs | 217 ++++------ .../oauth2/AuthorizationHeaderUtilTest.kt.ejs | 238 +++++++++++ .../_package_/service/MailServiceIT.kt.ejs | 4 +- .../filter/SpaWebFilterIT_imperative.java.ejs | 121 ++++++ .../web/filter/SpaWebFilterIT_reactive.kt.ejs | 155 +++++++ ...SpaWebFilterTestController_reactive.kt.ejs | 16 + .../web/rest/AccountResourceIT.kt.ejs | 33 +- .../web/rest/AccountResourceIT_oauth2.kt.ejs | 15 +- ...ccountResourceIT_skipUserManagement.kt.ejs | 31 +- .../web/rest/AuthenticateControllerIT.kt.ejs | 17 +- .../ExceptionTranslatorIT_imperative.kt.ejs | 2 +- .../ExceptionTranslatorIT_reactive.kt.ejs | 10 +- 52 files changed, 2580 insertions(+), 1352 deletions(-) create mode 100644 generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityInMemoryConfiguration.kt.ejs create mode 100644 generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityJwtConfiguration.kt.ejs create mode 100644 generators/spring-boot/templates/src/main/kotlin/_package_/security/jwt/JWTRelayGatewayFilterFactory.kt.ejs create mode 100644 generators/spring-boot/templates/src/main/kotlin/_package_/web/filter/SpaWebFilter_imperative.kt.ejs create mode 100644 generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource_oauth2.kt.ejs create mode 100644 generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource_skipUserManagement.kt.ejs create mode 100644 generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/AuthenticationIntegrationTest.kt.ejs create mode 100644 generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/JwtAuthenticationTestUtils.kt.ejs create mode 100644 generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/TestAuthenticationResource.kt.ejs create mode 100644 generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/TokenAuthenticationIT.kt.ejs create mode 100644 generators/spring-boot/templates/src/test/kotlin/_package_/security/oauth2/AuthorizationHeaderUtilTest.kt.ejs create mode 100644 generators/spring-boot/templates/src/test/kotlin/_package_/web/filter/SpaWebFilterIT_imperative.java.ejs create mode 100644 generators/spring-boot/templates/src/test/kotlin/_package_/web/filter/SpaWebFilterIT_reactive.kt.ejs create mode 100644 generators/spring-boot/templates/src/test/kotlin/_package_/web/filter/SpaWebFilterTestController_reactive.kt.ejs diff --git a/generators/spring-boot-v2/templates/src/main/kotlin/_package_/config/LocaleConfiguration.kt.ejs b/generators/spring-boot-v2/templates/src/main/kotlin/_package_/config/LocaleConfiguration.kt.ejs index 1beacf380..594b1c6cd 100644 --- a/generators/spring-boot-v2/templates/src/main/kotlin/_package_/config/LocaleConfiguration.kt.ejs +++ b/generators/spring-boot-v2/templates/src/main/kotlin/_package_/config/LocaleConfiguration.kt.ejs @@ -30,7 +30,7 @@ import org.springframework.web.servlet.i18n.LocaleChangeInterceptor class LocaleConfiguration : WebMvcConfigurer { @Bean - fun localeResolver() = AngularCookieLocaleResolver().apply { cookieName = "NG_TRANSLATE_LANG_KEY" } + fun localeResolver() = AngularCookieLocaleResolver("NG_TRANSLATE_LANG_KEY") override fun addInterceptors(registry: InterceptorRegistry?) { registry!!.addInterceptor(LocaleChangeInterceptor().apply { paramName = "language" }) diff --git a/generators/spring-boot/templates/feign-client/src/test/kotlin/_package_/client/AuthorizationHeaderUtilTest.kt.ejs b/generators/spring-boot/templates/feign-client/src/test/kotlin/_package_/client/AuthorizationHeaderUtilTest.kt.ejs index 7901bc485..3893ae2eb 100644 --- a/generators/spring-boot/templates/feign-client/src/test/kotlin/_package_/client/AuthorizationHeaderUtilTest.kt.ejs +++ b/generators/spring-boot/templates/feign-client/src/test/kotlin/_package_/client/AuthorizationHeaderUtilTest.kt.ejs @@ -18,12 +18,22 @@ This file is part of the JHipster project, see https://jhipster.github.io/ -%> package <%= packageName %>.security.oauth2 +import org.junit.jupiter.api.Assertions.fail +import org.mockito.ArgumentMatchers.* +import org.mockito.Mockito.* + +import java.time.Duration +import java.time.Instant +import java.util.List +import java.util.Map +import java.util.Optional import org.assertj.core.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test +import org.junit.jupiter.api.extension.ExtendWith import org.mockito.InjectMocks import org.mockito.Mock -import org.mockito.MockitoAnnotations +import org.mockito.junit.jupiter.MockitoExtension import org.springframework.boot.web.client.RestTemplateBuilder import org.springframework.http.RequestEntity import org.springframework.http.ResponseEntity @@ -44,17 +54,10 @@ import org.springframework.security.oauth2.server.resource.authentication.JwtAut import org.springframework.web.client.ResponseErrorHandler import org.springframework.web.client.RestTemplate -import java.time.Duration -import java.time.Instant -import java.util.Optional - -import org.junit.jupiter.api.Assertions.fail -import org.mockito.ArgumentMatchers.* -import org.mockito.Mockito.* - /** * Test class for the [AuthorizationHeaderUtil] utility class. */ +@ExtendWith(MockitoExtension::class) class AuthorizationHeaderUtilTest { companion object { @@ -69,12 +72,7 @@ class AuthorizationHeaderUtilTest { @BeforeEach fun setup() { - MockitoAnnotations.openMocks(this) SecurityContextHolder.setContext(securityContext) - - doReturn(restTemplateBuilder).`when`(restTemplateBuilder).additionalMessageConverters(any(HttpMessageConverter::class.java)) - doReturn(restTemplateBuilder).`when`(restTemplateBuilder).errorHandler(any(ResponseErrorHandler::class.java)) - doReturn(restTemplateBuilder).`when`(restTemplateBuilder).basicAuthentication(anyString(), anyString()) } @Test @@ -102,10 +100,8 @@ class AuthorizationHeaderUtilTest { @Test fun getAuthorizationHeader_OAuth2Authentication_InvalidClient() { val oauth2Token = getTestOAuth2AuthenticationToken("INVALID") - val authorizedClient = getTestOAuth2AuthorizedClient() doReturn(oauth2Token).`when`(securityContext).authentication - doReturn(authorizedClient).`when`(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) Assertions.assertThatThrownBy { authorizationHeaderUtil.getAuthorizationHeader() @@ -126,6 +122,11 @@ class AuthorizationHeaderUtilTest { @Test fun getAuthorizationHeader_OAuth2Authentication_RefreshToken() { + + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).additionalMessageConverters(any(HttpMessageConverter::class.java)) + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).errorHandler(any(ResponseErrorHandler::class.java)) + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).basicAuthentication(anyString(), anyString()) + val oauth2Token = getTestOAuth2AuthenticationToken(VALID_REGISTRATION_ID) val authorizedClient = getTestOAuth2AuthorizedClient(true) @@ -143,6 +144,11 @@ class AuthorizationHeaderUtilTest { @Test fun getAuthorizationHeader_OAuth2Authentication_RefreshToken_NoRefreshToken() { + + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).additionalMessageConverters(any(HttpMessageConverter::class.java)) + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).errorHandler(any(ResponseErrorHandler::class.java)) + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).basicAuthentication(anyString(), anyString()) + val oauth2Token = getTestOAuth2AuthenticationToken(VALID_REGISTRATION_ID) val authorizedClient = getTestOAuth2AuthorizedClient(true) @@ -160,6 +166,11 @@ class AuthorizationHeaderUtilTest { @Test fun getAuthorizationHeader_OAuth2Authentication_RefreshTokenFails() { + + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).additionalMessageConverters(any(HttpMessageConverter::class.java)) + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).errorHandler(any(ResponseErrorHandler::class.java)) + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).basicAuthentication(anyString(), anyString()) + val oauth2Token = getTestOAuth2AuthenticationToken(VALID_REGISTRATION_ID) val authorizedClient = getTestOAuth2AuthorizedClient(true) @@ -196,7 +207,7 @@ class AuthorizationHeaderUtilTest { .authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE) .clientId("web-app") .clientSecret("secret") - .redirectUriTemplate("/login/oauth2/code/oidc") + .redirectUri("/login/oauth2/code/oidc") .authorizationUri("http://localhost:8080/auth/realms/master/protocol/openid-connect/auth") .tokenUri("https://localhost:8080/auth/realms/master/protocol/openid-connect/token") .build(), diff --git a/generators/spring-boot/templates/gateway/src/main/kotlin/_package_/security/jwt/JWTRelayGatewayFilterFactory.kt.ejs b/generators/spring-boot/templates/gateway/src/main/kotlin/_package_/security/jwt/JWTRelayGatewayFilterFactory.kt.ejs index 99e66fced..0b0446f40 100644 --- a/generators/spring-boot/templates/gateway/src/main/kotlin/_package_/security/jwt/JWTRelayGatewayFilterFactory.kt.ejs +++ b/generators/spring-boot/templates/gateway/src/main/kotlin/_package_/security/jwt/JWTRelayGatewayFilterFactory.kt.ejs @@ -18,40 +18,41 @@ -%> package <%= packageName %>.security.jwt +import org.springframework.http.HttpHeaders.AUTHORIZATION + import org.springframework.cloud.gateway.filter.GatewayFilter import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory -import org.springframework.http.server.reactive.ServerHttpRequest +import org.springframework.security.oauth2.jwt.ReactiveJwtDecoder import org.springframework.stereotype.Component import org.springframework.util.StringUtils -import <%= packageName %>.security.jwt.JWTFilter.Companion.AUTHORIZATION_HEADER +import org.springframework.web.server.ServerWebExchange @Component -class JWTRelayGatewayFilterFactory(private val tokenProvider: TokenProvider) : AbstractGatewayFilterFactory() { +class JWTRelayGatewayFilterFactory(private val jwtDecoder: ReactiveJwtDecoder) : AbstractGatewayFilterFactory() { + companion object { + const val BEARER: String = "Bearer " + } override fun apply(config: Any) = GatewayFilter { exchange, chain -> - if(exchange != null) { - val token = extractJWTToken(exchange.request) - if(token != null && StringUtils.hasText(token) && tokenProvider.validateToken(token)) { - val request = exchange.request.mutate() - .header(AUTHORIZATION_HEADER, "Bearer $token") - .build() - return@GatewayFilter chain.filter(exchange.mutate().request(request).build()) - } - + val bearerToken = exchange.request.headers.getFirst(AUTHORIZATION) + if (bearerToken == null) { + // Allow anonymous requests. + chain.filter(exchange) } - chain.filter(exchange) + val token = this.extractToken(bearerToken) + jwtDecoder.decode(token).thenReturn(withBearerAuth(exchange, token)).flatMap(chain::filter) } - private fun extractJWTToken(request: ServerHttpRequest): String? { - val bearerToken = request.headers.getFirst(AUTHORIZATION_HEADER) - if (bearerToken == null) { - return null - } + private fun extractToken(bearerToken: String): String { if (StringUtils.hasText(bearerToken) && bearerToken.startsWith("Bearer ")) { return bearerToken.substring(7) } throw IllegalArgumentException("Invalid token in Authorization header") } + + private fun withBearerAuth(exchange: ServerWebExchange, authorizeToken: String): ServerWebExchange{ + return exchange.mutate().request(r -> r.headers(headers -> headers.setBearerAuth(authorizeToken))).build() + } } diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/UserService.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/UserService.kt.ejs index cb11874ab..ea4d38865 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/UserService.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/UserService.kt.ejs @@ -24,7 +24,6 @@ import <%= packageName %>.config.SYSTEM_ACCOUNT import <%= packageName %>.domain.Authority <%_ } _%> <%_ if (!databaseTypeNo) { _%> -import <%= packageName %>.service.dto.<%= user.adminUserDto %> import <%= user.entityAbsoluteClass %> <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { _%> import <%= packageName %>.repository.AuthorityRepository @@ -41,7 +40,10 @@ import <%= packageName %>.security.USER <%_ } _%> import <%= packageName %>.security.getCurrentUserLogin <%_ } _%> -import <%= packageName %>.service.dto.<%= user.restClass %> +import <%= packageName %>.service.dto.<%= user.adminUserDto %> +<%_ if (!databaseTypeNo) { _%> +import <%= packageName %>.service.dto.<%= user.dtoClass %> +<%_ } _%> <%_ if (!authenticationTypeOauth2) { _%> import tech.jhipster.security.RandomUtil <%_ } _%> @@ -150,7 +152,7 @@ class UserService<% if (!databaseTypeNo) { %>( userRepository.save(user) <%_ } _%> <%_ if (searchEngineElasticsearch) { _%> - userSearchRepository.save(user) + userSearchRepository.index(user) <%_ } _%> <%_ if (cacheProviderAny) { _%> clearUserCaches(user) @@ -514,11 +516,9 @@ class UserService<% if (!databaseTypeNo) { %>( .mapTo(managedAuthorities) { it.get() } } <%_ } _%> - <%_ if (databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase || databaseTypeCassandra) { _%> userRepository.save(user) - <%_ } _%> <%_ if (searchEngineElasticsearch) { _%> - userSearchRepository.save(user) + userSearchRepository.index(user) <%_ } _%> <%_ if (cacheProviderAny) { _%> clearUserCaches(user) @@ -551,7 +551,7 @@ class UserService<% if (!databaseTypeNo) { %>( userRepository.findOneByLogin(login).ifPresent { user -> userRepository.delete(user) <%_ if (searchEngineElasticsearch) { _%> - userSearchRepository.delete(user) + userSearchRepository.deleteFromIndex(user) <%_ } _%> <%_ if (cacheProviderAny) { _%> clearUserCaches(user) @@ -603,11 +603,9 @@ class UserService<% if (!databaseTypeNo) { %>( .doOnNext { log.debug("Changed Information for User: $it") } .then() <%_ } else { _%> - <%_ if (databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j || databaseTypeCassandra) { _%> userRepository.save(it) - <%_ } _%> <%_ if (searchEngineElasticsearch) { _%> - userSearchRepository.save(it) + userSearchRepository.index(it) <%_ } _%> <%_ if (cacheProviderAny) { _%> clearUserCaches(it) @@ -711,8 +709,8 @@ class UserService<% if (!databaseTypeNo) { %>( <%_ if (databaseTypeSql) { _%> @Transactional(readOnly = true) <%_ } _%> - fun getAllPublicUsers(pageable: Pageable): <% if (reactive) { %>Flux<% } else { %>Page<% } %><<%= user.restClass %>> { - return userRepository.findAllBy<% if (!databaseTypeCouchbase) { %>IdNotNullAnd<% } %>ActivatedIsTrue(pageable).map { <%= user.restClass %>(it) } + fun getAllPublicUsers(pageable: Pageable): <% if (reactive) { %>Flux<% } else { %>Page<% } %><<%= user.dtoClass %>> { + return userRepository.findAllBy<% if (!databaseTypeCouchbase) { %>IdNotNullAnd<% } %>ActivatedIsTrue(pageable).map { <%= user.dtoClass %>(it) } } <%_ if (reactive) { _%> @@ -727,7 +725,7 @@ class UserService<% if (!databaseTypeNo) { %>( fun getAllPublicUsers() = userRepository.findAll() .filter { it.activated == true } - .map { <%= user.restClass %>(it) } + .map { <%= user.dtoClass %>(it) } <%_ } _%> <%_ if (databaseTypeSql) { _%> @@ -782,7 +780,7 @@ class UserService<% if (!databaseTypeNo) { %>( log.debug("Deleting not activated user ${user.login}") userRepository.delete(user) <%_ if (searchEngineElasticsearch) { _%> - userSearchRepository.delete(user) + userSearchRepository.deleteFromIndex(user) <%_ } _%> <%_ if (cacheProviderAny) { _%> clearUserCaches(user) @@ -844,7 +842,7 @@ class UserService<% if (!databaseTypeNo) { %>( .flatMap { existingUser -> // if IdP sends last updated information, use it to determine if an update should happen if (details["updated_at"] != null) { - val dbModifiedDate = existingUser.lastModifiedDate + val dbModifiedDate = existingUser.orElseThrow().lastModifiedDate val idpModifiedDate: Instant = if (details["updated_at"] is Instant) details["updated_at"] as Instant else Instant.ofEpochSecond(details["updated_at"] as Long) if (idpModifiedDate.isAfter(dbModifiedDate)) { log.debug("Updating user '${user.login}' in local database") diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/PublicUserResource.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/PublicUserResource.kt.ejs index 0f331791b..5ea6056c5 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/PublicUserResource.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/PublicUserResource.kt.ejs @@ -33,7 +33,7 @@ import org.springframework.data.domain.Sort import java.util.Collections <%_ } _%> import <%= packageName %>.service.UserService -import <%= packageName %>.service.dto.<%= user.restClass %> +import <%= packageName %>.service.dto.<%= user.dtoClass %> <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { _%> import tech.jhipster.web.util.PaginationUtil @@ -75,10 +75,7 @@ import java.util.Arrays import java.util.* <%_ } _%> <%_ if (searchEngineElasticsearch && !reactive) { _%> -import java.util.stream.Collectors import java.util.stream.StreamSupport - -import org.elasticsearch.index.query.QueryBuilders.* <%_ } _%> @RestController @@ -101,18 +98,20 @@ class PublicUserResource( private val log = LoggerFactory.getLogger(javaClass) /** - * {@code GET /users} : get all users with only the public informations - calling this are allowed for anyone. - *<% if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { %> - <%_ if (reactive) { _%> + * {@code GET /users} : get all users with only public information - calling this method is allowed for anyone. +<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { _%> + * + <%_ if (reactive) { _%> * @param request a {@link ServerHttpRequest} request. - <%_ } _%> - * @param pageable the pagination information.<% } %> + <%_ } _%> + * @param pageable the pagination information. +<%_ } _%> * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body all users. */ @GetMapping("/users") <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { _%> <%_ if (reactive) { _%> - fun getAllPublicUsers(request: ServerHttpRequest, @org.springdoc.api.annotations.ParameterObject pageable: Pageable): Mono>>> { + fun getAllPublicUsers(request: ServerHttpRequest, @org.springdoc.core.annotations.ParameterObject pageable: Pageable): Mono>>> { log.debug("REST request to get all public User names") <%_ if (!authenticationTypeOauth2) { _%> if (!onlyContainsAllowedProperties(pageable)) { @@ -121,12 +120,12 @@ class PublicUserResource( <%_ } _%> return userService.countManagedUsers() - .map { PageImpl<<%= user.restClass %>>(listOf(), pageable, it) } + .map { PageImpl<<%= user.dtoClass %>>(listOf(), pageable, it) } .map { PaginationUtil.generatePaginationHttpHeaders(UriComponentsBuilder.fromHttpRequest(request), it) } .map { ResponseEntity.ok().headers(it).body(userService.getAllPublicUsers(pageable)) } } <%_ } else { _%> - fun getAllPublicUsers(@org.springdoc.api.annotations.ParameterObject pageable: Pageable): ResponseEntity>> { + fun getAllPublicUsers(@org.springdoc.core.annotations.ParameterObject pageable: Pageable): ResponseEntity>> { log.debug("REST request to get all public User names") <%_ if (!authenticationTypeOauth2) { _%> if (!onlyContainsAllowedProperties(pageable)) { @@ -152,33 +151,37 @@ class PublicUserResource( fun getAuthorities() = userService.getAuthorities()<% if (reactive) { %>.collectList()<% } %> <%_ } else { /* Cassandra */ _%> - fun getAllPublicUsers(): <% if (reactive) { %>Flux<% } else { %>List<% } %><<%= user.restClass %>> = userService.getAllPublicUsers() + fun getAllPublicUsers(): <% if (reactive) { %>Flux<% } else { %>List<% } %><<%= user.dtoClass %>> = userService.getAllPublicUsers() <%_ } _%> - <%_ if (!!searchEngine) { _%> + <%_ if (searchEngineAny) { _%> /** - * {@code SEARCH /_search/users/:query} : search for the User corresponding to the query. - * - * @param query the query to search. - * @return the result of the search. - */ - @GetMapping("/_search/users/{query}") - fun search(@PathVariable query: String): <% if(reactive) { %>MonoList<<%= user.restClass %>><% if(reactive) { %>><% } %> { - <%/* TODO fix this */%> + * {@code SEARCH /users/_search/:query} : search for the User corresponding to the query. + * + * @param query the query to search. + * @return the result of the search. + */ + @GetMapping("/users/_search/{query}") + fun search(@PathVariable query: String): <% if(reactive) { %>MonoList<<%= user.dtoClass %>><% if(reactive) { %>><% } %> { <%_ if (searchEngineElasticsearch) { _%> <%_ if (reactive) { _%> - return userSearchRepository.search(query).map { <%= user.restClass %>(it) }.collectList() + return userSearchRepository.search(query).map { <%= user.dtoClass %>(it) }.collectList() <%_ } else { _%> - return userSearchRepository.search(query).map { <%= user.restClass %>(it) } + return StreamSupport + .stream(userSearchRepository.search(query).spliterator(), false) + .map { <%= user.dtoClass %>(it) } + .toList() <%_ } _%> <%_ } else { _%> <%_ if (reactive) { _%> - return userRepository.search(query).map { <%= user.restClass %>(it) }.collectList() + return userRepository.search(query).map { <%= user.dtoClass %>(it) }.collectList() <%_ } else { _%> - return userRepository.search(query) - .map { <%= user.restClass %>(it) } + return StreamSupport + .stream(userRepository.search(query).spliterator(), false) + .map { <%= user.dtoClass %>(it) } + .toList(); <%_ } _%> <%_ } _%> } diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/UserResource.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/UserResource.kt.ejs index 2600db8d8..e625ef08d 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/UserResource.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/UserResource.kt.ejs @@ -80,8 +80,6 @@ import java.net.URISyntaxException <%_ if (searchEngineElasticsearch && !reactive) { _%> import java.util.stream.Collectors import java.util.stream.StreamSupport - -import org.elasticsearch.index.query.QueryBuilders.queryStringQuery <%_ } _%> /** @@ -261,7 +259,7 @@ class UserResource( <%_ if (reactive) { _%> fun getAllUsers( request: ServerHttpRequest, - @org.springdoc.api.annotations.ParameterObject pageable: Pageable + @org.springdoc.core.annotations.ParameterObject pageable: Pageable ): Mono>>> { log.debug("REST request to get all User for an admin") if (!onlyContainsAllowedProperties(pageable)) { @@ -274,7 +272,7 @@ class UserResource( .map { headers -> ResponseEntity.ok().headers(headers).body(userService.getAllManagedUsers(pageable)) } } <%_ } else { _%> - fun getAllUsers(@org.springdoc.api.annotations.ParameterObject pageable: Pageable): ResponseEntity>> { + fun getAllUsers(@org.springdoc.core.annotations.ParameterObject pageable: Pageable): ResponseEntity>> { log.debug("REST request to get all User for an admin") if (!onlyContainsAllowedProperties(pageable)) { return ResponseEntity.badRequest().build() diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/config/CRLFLogConverter.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/config/CRLFLogConverter.kt.ejs index abb85335d..cc3e65209 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/config/CRLFLogConverter.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/config/CRLFLogConverter.kt.ejs @@ -39,7 +39,8 @@ class CRLFLogConverter : CompositeConverter() { override fun transform(event: ILoggingEvent, inStr: String): String { val element = ELEMENTS[firstOption] - if ((event.marker != null && event.marker.contains(CRLF_SAFE_MARKER)) || isLoggerSafe(event)) { + val markers = event.markerList + if ((markers != null && !markers.isEmpty() && markers[0].contains(CRLF_SAFE_MARKER)) || isLoggerSafe(event)) { return inStr } val replacement = if (element == null) "_" else toAnsiString("_", element) diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/config/Constants.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/config/Constants.kt.ejs index c5925bd62..15d6495c1 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/config/Constants.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/config/Constants.kt.ejs @@ -18,14 +18,14 @@ -%> package <%= packageName %>.config -<%_ if (!skipUserManagement || authenticationTypeOauth2) { _%> +<%_ if (generateBuiltInUserEntity) { _%> // Regex for acceptable logins const val LOGIN_REGEX: String = "<%- LOGIN_REGEX %>" <%_ } _%> -<%_ if (!skipUserManagement || authenticationTypeOauth2 || ['sql','mongodb','couchbase'].includes(databaseType)) { _%> +<%_ if (generateBuiltInUserEntity || ['sql','mongodb','couchbase'].includes(databaseType)) { _%> const val SYSTEM_ACCOUNT: String = "system" <%_ } _%> -<%_ if (!skipUserManagement || authenticationTypeOauth2) { _%> +<%_ if (generateUserManagement || authenticationTypeOauth2) { _%> const val DEFAULT_LANGUAGE: String = "<%= nativeLanguage %>" <%_ } _%> <%_ if (databaseTypeCouchbase) { _%> diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/config/JacksonConfiguration.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/config/JacksonConfiguration.kt.ejs index f7bbed027..2325d8595 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/config/JacksonConfiguration.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/config/JacksonConfiguration.kt.ejs @@ -19,15 +19,14 @@ package <%= packageName %>.config <%_ if (databaseTypeSql && !reactive) { _%> -import com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module +import com.fasterxml.jackson.datatype.hibernate6.Hibernate6Module +import com.fasterxml.jackson.datatype.hibernate6.Hibernate6Module.Feature <%_ } _%> import com.fasterxml.jackson.datatype.jdk8.Jdk8Module import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration -import org.zalando.problem.jackson.ProblemModule -import org.zalando.problem.violations.ConstraintViolationProblemModule @Configuration class JacksonConfiguration { @@ -47,18 +46,6 @@ class JacksonConfiguration { * Support for Hibernate types in Jackson. */ @Bean - fun hibernate5Module() = Hibernate5Module() + fun hibernate6Module() = Hibernate6Module().configure(Feature.SERIALIZE_IDENTIFIER_FOR_LAZY_NOT_LOADED_OBJECTS, true) <%_ } _%> - - /* - * Module for serialization/deserialization of RFC7807 Problem. - */ - @Bean - fun problemModule() = ProblemModule() - - /* - * Module for serialization/deserialization of ConstraintViolationProblem. - */ - @Bean - fun constraintViolationProblemModule() = ConstraintViolationProblemModule() } diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/config/OpenApiConfiguration.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/config/OpenApiConfiguration.kt.ejs index c9e4bbd04..80ceadf1c 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/config/OpenApiConfiguration.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/config/OpenApiConfiguration.kt.ejs @@ -18,7 +18,7 @@ limitations under the License. -%> package <%= packageName %>.config -import org.springdoc.core.GroupedOpenApi +import org.springdoc.core.models.GroupedOpenApi import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean import org.springframework.context.annotation.Bean @@ -44,7 +44,7 @@ class OpenApiConfiguration { val properties = jHipsterProperties.apiDocs return GroupedOpenApi.builder() .group("openapi") - .addOpenApiCustomiser(jhipsterOpenApiCustomizer) + .addOpenApiCustomizer(jhipsterOpenApiCustomizer) .packagesToScan(API_FIRST_PACKAGE) .pathsToMatch(properties.getDefaultIncludePattern()) .build() diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityConfiguration_imperative.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityConfiguration_imperative.kt.ejs index 465f5fcd4..4ad4e6f9c 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityConfiguration_imperative.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityConfiguration_imperative.kt.ejs @@ -18,246 +18,263 @@ -%> package <%= packageName %>.config -import <%= packageName %>.security.ADMIN - <%_ if (authenticationTypeOauth2 && !applicationTypeMicroservice) { _%> -import <%= packageName %>.security.extractAuthorityFromClaims - <%_ } _%> - <%_ if (authenticationTypeJwt) { _%> -import <%= packageName %>.security.jwt.JWTConfigurer -import <%= packageName %>.security.jwt.TokenProvider - <%_ } _%> +import <%= packageName %>.security.* import tech.jhipster.config.JHipsterProperties - <%_ if (authenticationTypeSession) { _%> -import tech.jhipster.security.AjaxAuthenticationFailureHandler -import tech.jhipster.security.AjaxAuthenticationSuccessHandler -import tech.jhipster.security.AjaxLogoutSuccessHandler - <%_ } _%> +<%_ if (authenticationTypeSession || devDatabaseTypeH2Any) { _%> +import org.springframework.security.web.util.matcher.AntPathRequestMatcher.antMatcher + +<%_ } _%> import org.springframework.context.annotation.Bean -import org.springframework.context.annotation.Import - <%_ if (authenticationTypeOauth2) { _%> +import org.springframework.context.annotation.Configuration +<%_ if (authenticationTypeOauth2) { _%> import org.springframework.core.convert.converter.Converter - <%_ } _%> - <%_ if (!applicationTypeMicroservice || !authenticationTypeOauth2) { _%> +<%_ } _%> +<%_ if (devDatabaseTypeH2Any) { _%> +import org.springframework.core.env.Environment +import org.springframework.core.env.Profiles +import tech.jhipster.config.JHipsterConstants +<%_ } _%> +<%_ if (authenticationTypeJwt) { _%> import org.springframework.http.HttpMethod - <%_ } _%> -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity +import org.springframework.security.config.Customizer +<%_ } _%> +import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity import org.springframework.security.config.annotation.web.builders.HttpSecurity -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity +<%_ if (!skipClient) { _%> +import org.springframework.security.config.annotation.web.configurers.HeadersConfigurer.FrameOptionsConfig +<%_ } _%> import org.springframework.security.web.SecurityFilterChain - <%_ if (authenticationTypeJwt || (authenticationTypeOauth2 && applicationTypeMicroservice)) { _%> +<%_ if (!skipClient || authenticationUsesCsrf) { _%> +import org.springframework.security.web.authentication.www.BasicAuthenticationFilter +<%_ } _%> +<%_ if (authenticationUsesCsrf) { _%> +import tech.jhipster.web.filter.CookieCsrfFilter +<%_ } _%> +<%_ if (!skipClient) { _%> +import <%= packageName %>.web.filter.SpaWebFilter +<%_ } _%> +<%_ if (authenticationTypeJwt || (authenticationTypeOauth2 && applicationTypeMicroservice)) { _%> import org.springframework.security.config.http.SessionCreationPolicy - <%_ } _%> - <%_ if (!authenticationTypeOauth2 && !skipUserManagement) { _%> +<%_ } _%> +<%_ if (generateUserManagement) { _%> import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder - <%_ } _%> - <%_ if (authenticationTypeOauth2) { _%> +import org.springframework.security.crypto.password.PasswordEncoder +<%_ } _%> +<%_ if (authenticationTypeOauth2) { _%> import <%= packageName %>.security.oauth2.AudienceValidator +import <%= packageName %>.security.SecurityUtils import org.springframework.security.authentication.AbstractAuthenticationToken import org.springframework.security.oauth2.core.DelegatingOAuth2TokenValidator -import org.springframework.security.oauth2.jwt.Jwt -import org.springframework.security.oauth2.jwt.JwtDecoder -import org.springframework.security.oauth2.jwt.JwtDecoders -import org.springframework.security.oauth2.jwt.JwtValidators -import org.springframework.security.oauth2.jwt.NimbusJwtDecoder +import org.springframework.security.oauth2.core.OAuth2TokenValidator +import org.springframework.security.oauth2.jwt.* import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationConverter import org.springframework.beans.factory.annotation.Value import org.springframework.security.core.GrantedAuthority - <%_ if (!applicationTypeMicroservice) { _%> + <%_ if (!applicationTypeMicroservice) { _%> import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper import org.springframework.security.oauth2.core.oidc.user.OidcUserAuthority - <%_ } _%> - <%_ } _%> - <%_ if (authenticationTypeSession) { _%> - <%_ if (!skipUserManagement) { _%> + <%_ } _%> +import java.util.* +<%_ } _%> +<%_ if (authenticationTypeSession) { _%> +import org.springframework.http.HttpStatus +import org.springframework.security.web.authentication.HttpStatusEntryPoint +import org.springframework.security.web.authentication.logout.HttpStatusReturningLogoutSuccessHandler +import org.springframework.security.web.util.matcher.OrRequestMatcher + <%_ if (generateUserManagement) { _%> import org.springframework.security.web.authentication.RememberMeServices - <%_ } _%> -import org.springframework.security.web.csrf.CookieCsrfTokenRepository -import org.springframework.security.web.csrf.CsrfFilter - <%_ } _%> - <%_ if (authenticationTypeOauth2 && !applicationTypeMicroservice) { _%> + <%_ } _%> +<%_ } _%> +<%_ if (authenticationUsesCsrf && !applicationTypeMicroservice) { _%> import org.springframework.security.web.csrf.CookieCsrfTokenRepository -import org.springframework.security.web.csrf.CsrfFilter - <%_ } _%> - <%_ if (authenticationTypeOauth2) { _%> +import org.springframework.security.web.csrf.CsrfTokenRequestAttributeHandler +<%_ } _%> +<%_ if (authenticationTypeOauth2) { _%> import <%= packageName %>.security.oauth2.JwtGrantedAuthorityConverter - <%_ } _%> - <%_ if (authenticationTypeJwt && !applicationTypeMicroservice) { _%> -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter - <%_ } _%> - <%_ if (authenticationTypeOauth2 && applicationTypeMonolith) { _%> +<%_ } _%> +<%_ if (authenticationTypeJwt) { _%> +import org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationEntryPoint +import org.springframework.security.oauth2.server.resource.web.access.BearerTokenAccessDeniedHandler +<%_ } _%> +<%_ if (authenticationTypeOauth2 && applicationTypeMonolith) { _%> import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository import org.springframework.boot.web.client.RestTemplateBuilder import <%= packageName %>.security.oauth2.CustomClaimConverter - <%_ } _%> +<%_ } _%> <%_ if(!skipClient) { _%> import org.springframework.security.web.header.writers.ReferrerPolicyHeaderWriter <%_ } _%> -<%_ if (!applicationTypeMicroservice) { _%> -import org.springframework.web.filter.CorsFilter +import org.springframework.security.web.servlet.util.matcher.MvcRequestMatcher +import org.springframework.web.servlet.handler.HandlerMappingIntrospector + +<%_ if (authenticationTypeOauth2 || !applicationTypeMicroservice) { _%> +import org.springframework.security.config.Customizer.withDefaults <%_ } _%> -import org.zalando.problem.spring.web.advice.security.SecurityProblemSupport -@EnableWebSecurity -@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true) +@Configuration +@EnableMethodSecurity(securedEnabled = true) @Import(SecurityProblemSupport::class) class SecurityConfiguration( - private val jHipsterProperties: JHipsterProperties, - <%_ if (authenticationTypeSession && !skipUserManagement) { _%> +<%_ if (devDatabaseTypeH2Any) { _%> + private val Environment env, +<%_ } _%> +<%_ if (authenticationTypeSession && generateUserManagement) { _%> private val rememberMeServices: RememberMeServices, - <%_ } _%> - <%_ if (authenticationTypeJwt) { _%> - private val tokenProvider: TokenProvider, - <%_ } _%> - <%_ if (!applicationTypeMicroservice) { _%> - private val corsFilter: CorsFilter, - <%_ } _%> - private val problemSupport: SecurityProblemSupport +<%_ } _%> + private val jHipsterProperties: JHipsterProperties, ) { - <%_ if (authenticationTypeOauth2) { _%> +<%_ if (authenticationTypeOauth2) { _%> @Value("\${spring.security.oauth2.client.provider.oidc.issuer-uri}") private lateinit var issuerUri: String - <%_ } _%> - <%_ if (authenticationTypeSession) { _%> - - @Bean - fun ajaxAuthenticationSuccessHandler() = AjaxAuthenticationSuccessHandler() - - @Bean - fun ajaxAuthenticationFailureHandler() = AjaxAuthenticationFailureHandler() +<%_ } _%> - @Bean - fun ajaxLogoutSuccessHandler() = AjaxLogoutSuccessHandler() - <%_ } _%> - <%_ if (!authenticationTypeOauth2 && !skipUserManagement) { _%> +<%_ if (generateUserManagement) { _%> @Bean fun passwordEncoder() = BCryptPasswordEncoder() - <%_ } _%> +<%_ } _%> @Bean @Throws(Exception::class) - fun filterChain(http: HttpSecurity): SecurityFilterChain { + fun filterChain(http: HttpSecurity, mvc: MvcRequestMatcher.Builder): SecurityFilterChain { http - .csrf() -<%_ if (devDatabaseTypeH2Any) { _%> - .ignoringAntMatchers("/h2-console/**") -<%_ } _%> - <%_ if (['session','oauth2'].includes(authenticationType) && !applicationTypeMicroservice) { _%> - .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) - .and() - <%_ } else { _%> - .disable() - <%_ } _%> - <%_ if (!applicationTypeMicroservice) { _%> - <%_ if (authenticationTypeJwt) { _%> - .addFilterBefore(corsFilter, UsernamePasswordAuthenticationFilter::class.java) - <%_ } else if (authenticationTypeSession || authenticationTypeOauth2) { _%> - .addFilterBefore(corsFilter, CsrfFilter::class.java) - <%_ } _%> - <%_ } _%> - .exceptionHandling() - .authenticationEntryPoint(problemSupport) - .accessDeniedHandler(problemSupport) - <%_ if (authenticationTypeSession) { _%> - <%_ if (!skipUserManagement) { _%> - .and() - .rememberMe() - .rememberMeServices(rememberMeServices) - .rememberMeParameter("remember-me") - .key(jHipsterProperties.security.rememberMe.key) - <%_ } _%> - .and() - .formLogin() - .loginProcessingUrl("/api/authentication") - .successHandler(ajaxAuthenticationSuccessHandler()) - .failureHandler(ajaxAuthenticationFailureHandler()) - .permitAll() - .and() - .logout() - .logoutUrl("/api/logout") - .logoutSuccessHandler(ajaxLogoutSuccessHandler()) - .permitAll() - <%_ } _%> +<%_ if (!applicationTypeMicroservice) { _%> + .cors(withDefaults()) +<%_ } _%> + .csrf(csrf -> csrf +<%_ if (authenticationUsesCsrf && !applicationTypeMicroservice) { _%> + .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) + // See https://stackoverflow.com/q/74447118/65681 + .csrfTokenRequestHandler(CsrfTokenRequestAttributeHandler())) +<%_ } else { _%> + .disable()) +<%_ } _%> <%_ if (!skipClient) { _%> - .and() - .headers() - .contentSecurityPolicy(jHipsterProperties.security.contentSecurityPolicy) - .and() - .referrerPolicy(ReferrerPolicyHeaderWriter.ReferrerPolicy.STRICT_ORIGIN_WHEN_CROSS_ORIGIN) - .and() - .permissionsPolicy().policy("camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()") - .and() - .frameOptions().sameOrigin() -<%_ } _%> - <%_ if (authenticationTypeJwt || (authenticationTypeOauth2 && applicationTypeMicroservice)) { _%> - .and() - .sessionManagement() - .sessionCreationPolicy(SessionCreationPolicy.STATELESS) - <%_ } _%> - .and() - .authorizeRequests() + .addFilterAfter(SpaWebFilter(), BasicAuthenticationFilter::class.java) +<%_ } _%> <%_ if (!applicationTypeMicroservice) { _%> - .antMatchers(HttpMethod.OPTIONS, "/**").permitAll() - <%_ if (!skipClient) { _%> - .antMatchers("/app/**/*.{js,html}").permitAll() - .antMatchers("/i18n/**").permitAll() - .antMatchers("/content/**").permitAll() - <%_ } _%> - .antMatchers("/swagger-ui/**").permitAll() - .antMatchers("/test/**").permitAll() + <%_ if (authenticationUsesCsrf) { _%> + .addFilterAfter(CookieCsrfFilter(), BasicAuthenticationFilter::class.java) + <%_ } _%> <%_ } _%> - <%_ if (devDatabaseTypeH2Any) { _%> - .antMatchers("/h2-console/**").permitAll() +<%_ if (!skipClient) { _%> + .headers(headers -> headers + .contentSecurityPolicy(csp -> csp.policyDirectives(jHipsterProperties.security.contentSecurityPolicy)) + .frameOptions(FrameOptionsConfig::sameOrigin) + .referrerPolicy(referrer -> referrer.policy(ReferrerPolicyHeaderWriter.ReferrerPolicy.STRICT_ORIGIN_WHEN_CROSS_ORIGIN)) + .permissionsPolicy(permissions -> + permissions.policy("camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"))) +<%_ } _%> + .authorizeHttpRequests(authz -> + // prettier-ignore + authz +<%_ if (!skipClient) { _%> + .requestMatchers(mvc.pattern("/index.html"), mvc.pattern("/*.js"), mvc.pattern("/*.txt"), mvc.pattern("/*.json"), mvc.pattern("/*.map"), mvc.pattern("/*.css")).permitAll() + .requestMatchers(mvc.pattern("/*.ico"), mvc.pattern("/*.png"), mvc.pattern("/*.svg"), mvc.pattern("/*.webapp")).permitAll() + <%_ if (clientFrameworkVue) { _%> + .requestMatchers(mvc.pattern("/assets/**")).permitAll() + <%_ if (microfrontend) { _%> + .requestMatchers(mvc.pattern("/app/**")).permitAll() + .requestMatchers(mvc.pattern("/i18n/**")).permitAll() <%_ } _%> - .antMatchers("/api/authenticate").permitAll() - <%_ if (!authenticationTypeOauth2 && !skipUserManagement) { _%> - .antMatchers("/api/register").permitAll() - .antMatchers("/api/activate").permitAll() - .antMatchers("/api/account/reset-password/init").permitAll() - .antMatchers("/api/account/reset-password/finish").permitAll() - <%_ } _%> - <%_ if (authenticationTypeOauth2) { _%> - .antMatchers("/authorize").authenticated() - .antMatchers("/api/auth-info").permitAll() - <%_ } _%> - .antMatchers("/api/admin/**").hasAuthority(ADMIN) - .antMatchers("/api/**").authenticated() - <%_ if (communicationSpringWebsocket) { _%> - .antMatchers("/websocket/**").authenticated() - <%_ } _%> - .antMatchers("/management/health").permitAll() - .antMatchers("/management/health/**").permitAll() - .antMatchers("/management/info").permitAll() - .antMatchers("/management/prometheus").permitAll() - .antMatchers("/management/**").hasAuthority(ADMIN) - <%_ if (authenticationTypeJwt) { _%> - <%_ if (applicationTypeMonolith) { _%> - .and() - .httpBasic() - <%_ } _%> - .and() - .apply(securityConfigurerAdapter()) - <%_ } else if (authenticationTypeOauth2) { _%> - <%_ if (applicationTypeMonolith) { _%> - .and() - .oauth2Login() - <%_ } _%> - .and() - .oauth2ResourceServer() - .jwt() - .jwtAuthenticationConverter(authenticationConverter()) - .and() - .and() - .oauth2Client() - <%_ } _%> + <%_ } else { _%> + .requestMatchers(mvc.pattern("/app/**")).permitAll() + .requestMatchers(mvc.pattern("/i18n/**")).permitAll() + <%_ } _%> + .requestMatchers(mvc.pattern("/content/**")).permitAll() + .requestMatchers(mvc.pattern("/swagger-ui/**")).permitAll() +<%_ } _%> +<%_ if (authenticationTypeJwt) { _%> + .requestMatchers(mvc.pattern(HttpMethod.POST, "/api/authenticate")).permitAll() + .requestMatchers(mvc.pattern(HttpMethod.GET, "/api/authenticate")).permitAll() +<%_ } else { _%> + .requestMatchers(mvc.pattern("/api/authenticate")).permitAll() +<%_ } _%> +<%_ if (generateUserManagement) { _%> + .requestMatchers(mvc.pattern("/api/register")).permitAll() + .requestMatchers(mvc.pattern("/api/activate")).permitAll() + .requestMatchers(mvc.pattern("/api/account/reset-password/init")).permitAll() + .requestMatchers(mvc.pattern("/api/account/reset-password/finish")).permitAll() +<%_ } _%> +<%_ if (authenticationTypeOauth2) { _%> + .requestMatchers(mvc.pattern("/api/auth-info")).permitAll() +<%_ } _%> + .requestMatchers(mvc.pattern("/api/admin/**")).hasAuthority(ADMIN) + .requestMatchers(mvc.pattern("/api/**")).authenticated() +<%_ if (communicationSpringWebsocket) { _%> + .requestMatchers(mvc.pattern("/websocket/**")).authenticated() +<%_ } _%> + .requestMatchers(mvc.pattern("/v3/api-docs/**")).hasAuthority(ADMIN) + .requestMatchers(mvc.pattern("/management/health")).permitAll() + .requestMatchers(mvc.pattern("/management/health/**")).permitAll() + .requestMatchers(mvc.pattern("/management/info")).permitAll() + .requestMatchers(mvc.pattern("/management/prometheus")).permitAll() + .requestMatchers(mvc.pattern("/management/**")).hasAuthority(ADMIN)) +<%_ if (authenticationTypeSession) { _%> + <%_ if (generateUserManagement) { _%> + .rememberMe(rememberMe -> + rememberMe + .rememberMeServices(rememberMeServices) + .rememberMeParameter("remember-me") + .key(jHipsterProperties.security.rememberMe.key) + ) + <%_ } _%> + .exceptionHandling(exceptionHanding -> + exceptionHanding.defaultAuthenticationEntryPointFor( + HttpStatusEntryPoint(HttpStatus.UNAUTHORIZED), + OrRequestMatcher( + <%_ if (communicationSpringWebsocket) { _%> + antMatcher("/websocket/**"), + <%_ } _%> + antMatcher("/api/**") + ) + ) + ) + .formLogin(formLogin -> + formLogin + .loginPage("/") + .loginProcessingUrl("/api/authentication") + .successHandler((request, response, authentication) -> response.setStatus(HttpStatus.OK.value())) + .failureHandler((request, response, exception) -> response.setStatus(HttpStatus.UNAUTHORIZED.value())) + .permitAll() + ) + .logout(logout -> + logout.logoutUrl("/api/logout").logoutSuccessHandler(HttpStatusReturningLogoutSuccessHandler()).permitAll()); +<%_ } else if (authenticationTypeJwt) { _%> + .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + .exceptionHandling((exceptions) -> exceptions + .authenticationEntryPoint(BearerTokenAuthenticationEntryPoint()) + .accessDeniedHandler(BearerTokenAccessDeniedHandler())) + .oauth2ResourceServer(oauth2 -> oauth2.jwt(Customizer.withDefaults())); +<%_ } else if (authenticationTypeOauth2) { _%> + <%_ if (applicationTypeMonolith) { _%> + .oauth2Login(withDefaults()) + <%_ } else if (applicationTypeMicroservice) { _%> + .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + <%_ } _%> + .oauth2ResourceServer(oauth2 -> oauth2 + .jwt(jwt -> jwt + .jwtAuthenticationConverter(authenticationConverter()))) + .oauth2Client(); +<%_ } _%> +<%_ if (devDatabaseTypeH2Any) { _%> + if (env.acceptsProfiles(Profiles.of(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT))) { + http + <%_ if (authenticationUsesCsrf && !applicationTypeMicroservice) { _%> + .csrf(csrf -> csrf.ignoringRequestMatchers(antMatcher("/h2-console/**"))) + <%_ } _%> + .authorizeHttpRequests(authz -> authz.requestMatchers(antMatcher("/h2-console/**")).permitAll()); + } +<%_ } _%> return http.build() } - <%_ if (authenticationTypeJwt) { _%> - private fun securityConfigurerAdapter() = JWTConfigurer(tokenProvider) - <%_ } _%> + @Bean + fun mvc(introspector: HandlerMappingIntrospector): MvcRequestMatcher.Builder = + MvcRequestMatcher.Builder(introspector) + <%_ if (authenticationTypeOauth2) { _%> fun authenticationConverter(): Converter { diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityConfiguration_reactive.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityConfiguration_reactive.kt.ejs index f1bf44205..02fc98933 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityConfiguration_reactive.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityConfiguration_reactive.kt.ejs @@ -17,53 +17,42 @@ This file is part of the JHipster project, see https://jhipster.github.io/ limitations under the License. -%> package <%= packageName %>.config - -import <%= packageName %>.security.ADMIN -<%_ if (authenticationTypeJwt) { _%> -import <%= packageName %>.security.jwt.JWTFilter -import <%= packageName %>.security.jwt.TokenProvider -<%_ } _%> -<%_ if (authenticationTypeSession || authenticationTypeOauth2) { _%> - <%_ if (authenticationTypeOauth2) { _%> -import <%= packageName %>.security.extractAuthorityFromClaims +import <%= packageName %>.security.AuthoritiesConstants +<%_ if (authenticationTypeOauth2) { _%> +import <%= packageName %>.security.SecurityUtils import <%= packageName %>.security.oauth2.AudienceValidator import <%= packageName %>.security.oauth2.JwtGrantedAuthorityConverter import org.springframework.security.authentication.AbstractAuthenticationToken import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationConverter - <%_ } _%> -import tech.jhipster.web.filter.reactive.CookieCsrfFilter -<%_ } _%> -<%_ if (authenticationTypeOauth2) { _%> import org.springframework.beans.factory.annotation.Value <%_ } _%> +<%_ if (authenticationUsesCsrf) { _%> +import tech.jhipster.web.filter.reactive.CookieCsrfFilter +<%_ } _%> import tech.jhipster.config.JHipsterProperties -<%_ if (skipUserManagement && !authenticationTypeOauth2) { _%> +<%_ if (generateInMemoryUserCredentials) { _%> import org.springframework.boot.autoconfigure.security.SecurityProperties <%_ } _%> <%_ if (!skipClient) { _%> import <%= packageName %>.web.filter.SpaWebFilter <%_ } _%> import org.springframework.context.annotation.Bean -import org.springframework.context.annotation.Import +import org.springframework.context.annotation.Configuration <%_ if (authenticationTypeOauth2) { _%> import org.springframework.core.convert.converter.Converter - <%_ if (!applicationTypeMicroservice) { _%> + <%_ if (!applicationTypeMicroservice) { _%> import org.springframework.core.ParameterizedTypeReference - <%_ } _%> + <%_ } _%> <%_ } _%> -import org.springframework.http.HttpMethod -<%_ if (authenticationTypeSession) { _%> -import org.springframework.http.HttpStatus -<%_ } _%> -<%_ if (!authenticationTypeOauth2) { _%> -import org.springframework.security.authentication.ReactiveAuthenticationManager -import org.springframework.security.authentication.UserDetailsRepositoryReactiveAuthenticationManager +<%_ if (authenticationTypeJwt) { _%> +import org.springframework.security.config.Customizer <%_ } _%> import org.springframework.security.config.annotation.method.configuration.EnableReactiveMethodSecurity -import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity import org.springframework.security.config.web.server.SecurityWebFiltersOrder import org.springframework.security.config.web.server.ServerHttpSecurity <%_ if (authenticationTypeSession) { _%> +import org.springframework.http.HttpMethod +import org.springframework.http.HttpStatus import org.springframework.security.core.Authentication import org.springframework.security.core.AuthenticationException <%_ } _%> @@ -71,40 +60,38 @@ import org.springframework.security.core.AuthenticationException import org.springframework.security.core.GrantedAuthority import org.springframework.security.oauth2.client.oidc.userinfo.OidcReactiveOAuth2UserService import org.springframework.security.oauth2.client.oidc.userinfo.OidcUserRequest -<%_ if (!applicationTypeMicroservice) { _%> + <%_ if (!applicationTypeMicroservice) { _%> import org.springframework.security.oauth2.client.registration.ClientRegistration import org.springframework.security.oauth2.client.registration.ReactiveClientRegistrationRepository -<%_ } _%> + <%_ } _%> import org.springframework.security.oauth2.client.userinfo.ReactiveOAuth2UserService -<%_ if (!applicationTypeMicroservice) { _%> + <%_ if (!applicationTypeMicroservice) { _%> import org.springframework.security.oauth2.client.web.server.DefaultServerOAuth2AuthorizationRequestResolver import org.springframework.security.oauth2.client.web.server.ServerOAuth2AuthorizationRequestResolver -<%_ } _%> + <%_ } _%> import org.springframework.security.oauth2.core.DelegatingOAuth2TokenValidator -<%_ if (!applicationTypeMicroservice) { _%> -import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest -<%_ } _%> import org.springframework.security.oauth2.core.OAuth2TokenValidator + <%_ if (!applicationTypeMicroservice) { _%> +import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationRequest + <%_ } _%> import org.springframework.security.oauth2.core.oidc.user.DefaultOidcUser import org.springframework.security.oauth2.core.oidc.user.OidcUser import org.springframework.security.oauth2.core.oidc.user.OidcUserAuthority import org.springframework.security.oauth2.jwt.* import org.springframework.security.oauth2.server.resource.authentication.ReactiveJwtAuthenticationConverterAdapter -import org.springframework.security.web.server.csrf.CookieServerCsrfTokenRepository <%_ } _%> <%_ if (!authenticationTypeOauth2) { _%> - <%_ if (skipUserManagement) { _%> -import org.springframework.security.core.userdetails.MapReactiveUserDetailsService - <%_ } _%> +import org.springframework.security.authentication.ReactiveAuthenticationManager +import org.springframework.security.authentication.UserDetailsRepositoryReactiveAuthenticationManager import org.springframework.security.core.userdetails.ReactiveUserDetailsService - <%_ if (authenticationTypeSession || skipUserManagement) { _%> + <%_ if (generateInMemoryUserCredentials) { _%> import org.springframework.security.core.userdetails.User - <%_ } _%> - <%_ if (skipUserManagement) { _%> +import org.springframework.security.core.userdetails.MapReactiveUserDetailsService import org.springframework.security.core.userdetails.UserDetails - <%_ } _%> +import org.springframework.util.StringUtils + <%_ } _%> <%_ } _%> -<%_ if (!skipUserManagement) { _%> +<%_ if (generateUserManagement) { _%> import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder import org.springframework.security.crypto.password.PasswordEncoder <%_ } _%> @@ -113,7 +100,10 @@ import org.springframework.security.web.server.SecurityWebFilterChain import org.springframework.security.web.server.WebFilterExchange import org.springframework.security.web.server.authentication.HttpStatusServerEntryPoint import org.springframework.security.web.server.authentication.logout.HttpStatusReturningServerLogoutSuccessHandler +<%_ } _%> +<%_ if (authenticationUsesCsrf) { _%> import org.springframework.security.web.server.csrf.CookieServerCsrfTokenRepository +import org.springframework.security.web.server.csrf.ServerCsrfTokenRequestAttributeHandler <%_ } _%> import org.springframework.security.web.server.header.XFrameOptionsServerHttpHeadersWriter.Mode import org.springframework.security.web.server.header.ReferrerPolicyServerHttpHeadersWriter @@ -122,16 +112,11 @@ import org.springframework.security.web.server.savedrequest.NoOpServerRequestCac <%_ } _%> import org.springframework.security.web.server.util.matcher.NegatedServerWebExchangeMatcher import org.springframework.security.web.server.util.matcher.OrServerWebExchangeMatcher -<%_ if (skipUserManagement && !authenticationTypeOauth2) { _%> -import org.springframework.util.StringUtils -<%_ } _%> -import org.springframework.web.cors.reactive.CorsWebFilter -import org.zalando.problem.spring.webflux.advice.security.SecurityProblemSupport -<%_ if (authenticationTypeSession || authenticationTypeOauth2) { _%> +<%_ if (authenticationUsesCsrf) { _%> import reactor.core.publisher.Mono <%_ } _%> <%_ if (authenticationTypeOauth2) { _%> - <%_ if (!applicationTypeMicroservice) { _%> + <%_ if (!applicationTypeMicroservice) { _%> import org.springframework.web.reactive.function.client.WebClient import com.github.benmanes.caffeine.cache.Cache @@ -140,32 +125,28 @@ import com.github.benmanes.caffeine.cache.Caffeine import java.time.Duration import java.util.Arrays import java.util.Map - <%_ } _%> +import java.util.Optional + <%_ } _%> + import java.util.HashSet import java.util.Set -<%_ if (!applicationTypeMicroservice) { _%> + <%_ if (!applicationTypeMicroservice) { _%> import java.util.function.Consumer -<%_ } _%> + <%_ } _%> <%_ } _%> +<%_ if (authenticationTypeOauth2 || !applicationTypeMicroservice) { _%> +import org.springframework.security.config.Customizer.withDefaults +<%_ } _%> import org.springframework.security.web.server.util.matcher.ServerWebExchangeMatchers.pathMatchers -@EnableWebFluxSecurity +@Configuration @EnableReactiveMethodSecurity -@Import(SecurityProblemSupport::class) class SecurityConfiguration( -<%_ if (!skipUserManagement && !authenticationTypeOauth2) { _%> - private val userDetailsService: ReactiveUserDetailsService, -<%_ } _%> -<%_ if (authenticationTypeJwt) { _%> - private val tokenProvider: TokenProvider, -<%_ } _%> <%_ if (authenticationTypeOauth2 && !applicationTypeMicroservice) { _%> private val clientRegistrationRepository: ReactiveClientRegistrationRepository, <%_ } _%> private val jHipsterProperties: JHipsterProperties, - private val problemSupport: SecurityProblemSupport, - private val corsWebFilter: CorsWebFilter ) { <%_ if (authenticationTypeOauth2) { _%> @Value("\${spring.security.oauth2.client.provider.oidc.issuer-uri}") @@ -182,17 +163,17 @@ class SecurityConfiguration( <%_ } _%> <%_ } _%> - <%_ if (!skipUserManagement && !authenticationTypeOauth2) { _%> + <%_ if (generateUserManagement) { _%> @Bean fun passwordEncoder() = BCryptPasswordEncoder() @Bean - fun reactiveAuthenticationManager() = + fun reactiveAuthenticationManager(userDetailsService: ReactiveUserDetailsService) = UserDetailsRepositoryReactiveAuthenticationManager(userDetailsService).apply { setPasswordEncoder(passwordEncoder()) } - <%_ } else if (!authenticationTypeOauth2) { _%> + <%_ } else if (!generateInMemoryUserCredentials) { _%> @Bean fun userDetailsService(properties: SecurityProperties): MapReactiveUserDetailsService { val user = properties.user @@ -212,113 +193,109 @@ class SecurityConfiguration( <%_ } _%> @Bean fun springSecurityFilterChain(http: ServerHttpSecurity): SecurityWebFilterChain { - // @formatter:off http - .securityMatcher( - NegatedServerWebExchangeMatcher( - OrServerWebExchangeMatcher( - pathMatchers("/app/**", "/_app/**", "/i18n/**", "/img/**", "/content/**", "/swagger-ui/**", "/v3/api-docs/**", "/test/**"), - pathMatchers(HttpMethod.OPTIONS, "/**") - ) + .securityMatcher(NegatedServerWebExchangeMatcher(OrServerWebExchangeMatcher( + <%_ if (clientFrameworkVue) { _%> + pathMatchers( + "/assets/**", + <%_ if (microfrontend) { _%> + "/app/**", + "/i18n/**", + "/content/**", + <%_ } _%> + "/swagger-ui/**" ) - ) - .csrf() - <%_ if (['session','oauth2'].includes(authenticationType) && !applicationTypeMicroservice) { _%> - .csrfTokenRepository(CookieServerCsrfTokenRepository.withHttpOnlyFalse()) - .and() + <%_ } else { _%> + pathMatchers("/app/**", "/i18n/**", "/content/**", "/swagger-ui/**") + <%_ } _%> + ))) +<%_ if (!applicationTypeMicroservice) { _%> + .cors(withDefaults()) +<%_ } _%> + .csrf(csrf -> csrf +<%_ if (authenticationUsesCsrf && !applicationTypeMicroservice) { _%> + .csrfTokenRepository(CookieServerCsrfTokenRepository.withHttpOnlyFalse()) + // See https://stackoverflow.com/q/74447118/65681 + .csrfTokenRequestHandler(ServerCsrfTokenRequestAttributeHandler())) // See https://github.com/spring-projects/spring-security/issues/5766 .addFilterAt(CookieCsrfFilter(), SecurityWebFiltersOrder.REACTOR_CONTEXT) - <%_ } else { _%> - .disable() - <%_ } _%> - .addFilterBefore(corsWebFilter, SecurityWebFiltersOrder.REACTOR_CONTEXT) - <%_ if (!skipClient) { _%> - .addFilterAt(SpaWebFilter(), SecurityWebFiltersOrder.AUTHENTICATION) - <%_ } _%> - <%_ if (authenticationTypeJwt) { _%> - .addFilterAt(JWTFilter(tokenProvider), SecurityWebFiltersOrder.HTTP_BASIC) - <%_ } _%> - <%_ if (!skipUserManagement && !authenticationTypeOauth2) { _%> - .authenticationManager(reactiveAuthenticationManager()) - <%_ } _%> - .exceptionHandling() - .accessDeniedHandler(problemSupport) - .authenticationEntryPoint(problemSupport) - <%_ if (authenticationTypeSession) { _%> - .and() - .formLogin() - .requiresAuthenticationMatcher(pathMatchers(HttpMethod.POST, "/api/authentication")) - .authenticationEntryPoint(HttpStatusServerEntryPoint(HttpStatus.OK)) - .authenticationSuccessHandler { exchange, authentication -> onAuthenticationSuccess(exchange, authentication) } - .authenticationFailureHandler { exchange, exception -> onAuthenticationError(exchange, exception) } - .and() - .logout() - .logoutUrl("/api/logout") - .logoutSuccessHandler(HttpStatusReturningServerLogoutSuccessHandler()) - <%_ } _%> - .and() - .headers() - .contentSecurityPolicy(jHipsterProperties.security.contentSecurityPolicy) - .and() - .referrerPolicy(ReferrerPolicyServerHttpHeadersWriter.ReferrerPolicy.STRICT_ORIGIN_WHEN_CROSS_ORIGIN) - .and() - .permissionsPolicy().policy("camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()") - .and() - .frameOptions().mode(Mode.DENY) - <%_ if (applicationTypeMicroservice) { _%> - .and() - .requestCache() - .requestCache(NoOpServerRequestCache.getInstance()) - <%_ } _%> - .and() - .authorizeExchange() - <%_ if (!skipClient) { _%> - .pathMatchers("/").permitAll() - .pathMatchers("/*.*").permitAll() - <%_ } _%> - .pathMatchers("/api/authenticate").permitAll() - <%_ if (!skipUserManagement) { _%> - .pathMatchers("/api/register").permitAll() - .pathMatchers("/api/activate").permitAll() - .pathMatchers("/api/account/reset-password/init").permitAll() - .pathMatchers("/api/account/reset-password/finish").permitAll() - <%_ } _%> +<%_ } else { _%> + .disable()) +<%_ } _%> +<%_ if (!skipClient) { _%> + .addFilterAfter(SpaWebFilter(), SecurityWebFiltersOrder.HTTPS_REDIRECT) +<%_ } _%> +<%_ if (authenticationTypeSession) { _%> + .formLogin(formLogin -> formLogin + .loginPage("/") + .requiresAuthenticationMatcher(pathMatchers(HttpMethod.POST, "/api/authentication")) + .authenticationEntryPoint(HttpStatusServerEntryPoint(HttpStatus.OK)) + .authenticationSuccessHandler(this::onAuthenticationSuccess) + .authenticationFailureHandler(this::onAuthenticationError)) + .logout(logout -> logout + .logoutUrl("/api/logout") + .logoutSuccessHandler(HttpStatusReturningServerLogoutSuccessHandler())) +<%_ } _%> + .headers(headers -> headers + .contentSecurityPolicy(csp -> csp.policyDirectives(jHipsterProperties.getSecurity().getContentSecurityPolicy())) + .frameOptions(frameOptions -> frameOptions.mode(Mode.DENY)) + .referrerPolicy(referrer -> referrer.policy(ReferrerPolicyServerHttpHeadersWriter.ReferrerPolicy.STRICT_ORIGIN_WHEN_CROSS_ORIGIN)) + .permissionsPolicy(permissions -> + permissions.policy("camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()"))) +<%_ if (applicationTypeMicroservice) { _%> + .requestCache(cache -> cache.requestCache(NoOpServerRequestCache.getInstance())) +<%_ } _%> + .authorizeExchange(authz -> + // prettier-ignore + authz +<%_ if (!skipClient) { _%> + .pathMatchers("/").permitAll() + .pathMatchers("/*.*").permitAll() +<%_ } _%> + .pathMatchers("/api/authenticate").permitAll() +<%_ if (generateUserManagement) { _%> + .pathMatchers("/api/register").permitAll() + .pathMatchers("/api/activate").permitAll() + .pathMatchers("/api/account/reset-password/init").permitAll() + .pathMatchers("/api/account/reset-password/finish").permitAll() +<%_ } _%> <%_ if (authenticationTypeOauth2) { _%> - .pathMatchers("/api/auth-info").permitAll() + .pathMatchers("/api/auth-info").permitAll() <%_ } _%> - .pathMatchers("/api/admin/**").hasAuthority(ADMIN) - .pathMatchers("/api/**").authenticated() + .pathMatchers("/api/admin/**").hasAuthority(ADMIN) + .pathMatchers("/api/**").authenticated() <%_ if (applicationTypeGateway) { _%> - <%_ if (microfrontend) { _%> - // microfrontend resources are loaded by webpack without authentication, they need to be public - .pathMatchers("/services/*/*.js").permitAll() - .pathMatchers("/services/*/*.js.map").permitAll() - <%_ } _%> - .pathMatchers("/services/*/v3/api-docs").hasAuthority(ADMIN) + <%_ if (microfrontend) { _%> + // microfrontend resources are loaded by webpack without authentication, they need to be public + .pathMatchers("/services/*/*.js").permitAll() + .pathMatchers("/services/*/*.txt").permitAll() + .pathMatchers("/services/*/*.json").permitAll() + .pathMatchers("/services/*/*.js.map").permitAll() + <%_ } _%> + .pathMatchers("/services/*/management/health/readiness").permitAll() + .pathMatchers("/services/*/v3/api-docs").hasAuthority(ADMIN) <%_ } _%> - <%_ if (!applicationTypeMicroservice) { _%> - .pathMatchers("/services/**").authenticated() - <%_ } _%> - .pathMatchers("/management/health").permitAll() - .pathMatchers("/management/health/**").permitAll() - .pathMatchers("/management/info").permitAll() - .pathMatchers("/management/prometheus").permitAll() - .pathMatchers("/management/**").hasAuthority(ADMIN) - <%_ if (authenticationTypeOauth2) { _%> - - - http<%_ if (!applicationTypeMicroservice) { _%>.oauth2Login { - it.authorizationRequestResolver( - authorizationRequestResolver(this.clientRegistrationRepository) - ) - }<% } %> - .oauth2ResourceServer() - .jwt() - .jwtAuthenticationConverter(jwtAuthenticationConverter()) - - http.oauth2Client() - <%_ } _%> - // @formatter:on +<%_ if (!applicationTypeMicroservice) { _%> + .pathMatchers("/services/**").authenticated() +<%_ } _%> + .pathMatchers("/v3/api-docs/**").hasAuthority(ADMIN) + .pathMatchers("/management/health").permitAll() + .pathMatchers("/management/health/**").permitAll() + .pathMatchers("/management/info").permitAll() + .pathMatchers("/management/prometheus").permitAll() + .pathMatchers("/management/**").hasAuthority(ADMIN)) +<%_ if (authenticationTypeOauth2) { _%> + <%_ if (!applicationTypeMicroservice) { _%> + .oauth2Login(oauth2 -> oauth2.authorizationRequestResolver(authorizationRequestResolver(this.clientRegistrationRepository))) + <%_ } _%> + .oauth2Client(withDefaults()) + .oauth2ResourceServer(oauth2 -> oauth2 + .jwt(jwt -> jwt + .jwtAuthenticationConverter(jwtAuthenticationConverter()))) +<%_ } else if (authenticationTypeJwt) { _%> + .httpBasic(basic -> basic.disable()) + .oauth2ResourceServer(oauth2 -> oauth2.jwt(Customizer.withDefaults())) +<%_ } else { _%>;<%_ } _%> return http.build() } <%_ if (authenticationTypeOauth2) { _%> @@ -414,13 +391,15 @@ class SecurityConfiguration( } private fun enrich(token: String, jwt: Jwt): Mono { + // Only look up user information if identity claims are missing if (jwt.hasClaim("given_name") && jwt.hasClaim("family_name")) { return Mono.just(jwt) } else { - // TODO retreive and get from users cache - // users.get(jwt.subject) { _ -> - return WebClient - .create() + // Get user info from `users` cache if present + // Retrieve user info from OAuth provider if not already loaded + return users.get(jwt.subject) { _ -> + val webClient = WebClient.create() + webClient .get() .uri(userInfoUri) .headers { it.setBearerAuth(token) } @@ -452,6 +431,8 @@ class SecurityConfiguration( it.putAll(jwt.claims) } .build() + // Put user info into the `users` cache + .doOnNext(newJwt -> users.put(jwt.getSubject(), Mono.just(newJwt))) } } } diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityInMemoryConfiguration.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityInMemoryConfiguration.kt.ejs new file mode 100644 index 000000000..d473d4171 --- /dev/null +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityInMemoryConfiguration.kt.ejs @@ -0,0 +1,49 @@ +<%# + Copyright 2013-2024 the original author or authors from the JHipster project. + + This file is part of the JHipster project, see https://www.jhipster.tech/ + for more information. + + 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 + + https://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. +-%> +package <%= packageName %>.config + +import java.util.List +import org.springframework.boot.autoconfigure.security.SecurityProperties +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import org.springframework.security.core.userdetails.User +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder +import org.springframework.security.crypto.password.PasswordEncoder +import org.springframework.security.provisioning.InMemoryUserDetailsManager +import org.springframework.util.StringUtils + +@Configuration +class SecurityInMemoryConfiguration { + + @Bean + fun passwordEncoder() = BCryptPasswordEncoder() + + @Bean + fun inMemoryUserDetailsManager(properties: SecurityProperties, passwordEncoder: PasswordEncoder): InMemoryUserDetailsManager { + val user = properties.user + val roles = user.roles + return InMemoryUserDetailsManager( + User + .withUsername(user.name) + .password(passwordEncoder.encode(user.password)) + .roles(*StringUtils.toStringArray(user.roles)) + .build() + ) + } +} diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityJwtConfiguration.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityJwtConfiguration.kt.ejs new file mode 100644 index 000000000..a7a71f582 --- /dev/null +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityJwtConfiguration.kt.ejs @@ -0,0 +1,126 @@ +<%# + Copyright 2013-2024 the original author or authors from the JHipster project. + + This file is part of the JHipster project, see https://www.jhipster.tech/ + for more information. + + 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 + + https://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. +-%> +package <%= packageName %>.config + +import static <%= packageName %>.security.SecurityUtils.AUTHORITIES_KEY +import static <%= packageName %>.security.SecurityUtils.JWT_ALGORITHM + +import <%= packageName %>.management.SecurityMetersService +import com.nimbusds.jose.jwk.source.ImmutableSecret +import com.nimbusds.jose.util.Base64 +import javax.crypto.SecretKey +import javax.crypto.spec.SecretKeySpec +import org.springframework.beans.factory.annotation.Value +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import org.springframework.security.oauth2.jwt.<%= reactive ? 'Reactive' : '' %>JwtDecoder +import org.springframework.security.oauth2.jwt.JwtEncoder +import org.springframework.security.oauth2.jwt.Nimbus<%= reactive ? 'Reactive' : '' %>JwtDecoder +import org.springframework.security.oauth2.jwt.NimbusJwtEncoder +import org.springframework.security.oauth2.server.resource.authentication.<%= reactive ? 'Reactive' : '' %>JwtAuthenticationConverter +import org.springframework.security.oauth2.server.resource.authentication.JwtGrantedAuthoritiesConverter +<%_ if (reactive) { _%> +import org.springframework.security.oauth2.server.resource.authentication.ReactiveJwtGrantedAuthoritiesConverterAdapter +<%_ } _%> +<%_ if (communicationSpringWebsocket) { %> +import org.springframework.security.oauth2.server.resource.web.BearerTokenResolver +import org.springframework.security.oauth2.server.resource.web.DefaultBearerTokenResolver +<%_ } _%> + +@Configuration +class SecurityJwtConfiguration { + + @Value("\${jhipster.security.authentication.jwt.base64-secret}") + private lateinit var jwtKey: String + + @Bean + fun jwtDecoder(metersService: SecurityMetersService): <%= reactive ? 'Reactive' : '' %>JwtDecoder { + val jwtDecoder = Nimbus<%= reactive ? 'Reactive' : '' %>JwtDecoder.withSecretKey(getSecretKey()).macAlgorithm(JWT_ALGORITHM).build() + return <%= reactive ? 'Reactive' : '' %>JwtDecoder { token -> { +<%_ if (reactive) { %> + try { + jwtDecoder + .decode(token) + .doOnError { e -> + if (e.message!!.contains("Jwt Expired at")) { + metersService.trackTokenExpired() + } else if (e.message!!.contains("Failed to validate the token")) { + metersService.trackTokenInvalidSignature() + } + } + } catch (e: Exception) { + if (e.message!!.contains("An error occurred while attempting to decode the Jwt")) { + metersService.trackTokenMalformed() + } else if (e.message!!.contains("Failed to validate the token")) { + metersService.trackTokenInvalidSignature() + } + throw e + } +<%_ } else { _%> + try { + jwtDecoder.decode(token) + } catch (e: Exception) { + if (e.message!!.contains("Invalid signature")) { + metersService.trackTokenInvalidSignature() + } else if (e.message!!.contains("Jwt expired at")) { + metersService.trackTokenExpired() + } else if (e.message!!.contains("Invalid JWT serialization")) { + metersService.trackTokenMalformed() + } else if (e.message!!.contains("Invalid unsecured/JWS/JWE")) { + metersService.trackTokenMalformed() + } + throw e + } +<%_ } _%> + } + } +} + + @Bean + fun jwtEncoder() = NimbusJwtEncoder(ImmutableSecret<>(getSecretKey())) + + @Bean + fun jwtAuthenticationConverter(): <%= reactive ? 'Reactive' : '' %>JwtAuthenticationConverter { + val grantedAuthoritiesConverter = JwtGrantedAuthoritiesConverter() + grantedAuthoritiesConverter.setAuthorityPrefix("") + grantedAuthoritiesConverter.setAuthoritiesClaimName(AUTHORITIES_KEY) + + val jwtAuthenticationConverter = <%= reactive ? 'Reactive' : '' %>JwtAuthenticationConverter() +<%_ if (reactive) { %> + jwtAuthenticationConverter.setJwtGrantedAuthoritiesConverter(ReactiveJwtGrantedAuthoritiesConverterAdapter(grantedAuthoritiesConverter)) +<%_ } else { _%> + jwtAuthenticationConverter.setJwtGrantedAuthoritiesConverter(grantedAuthoritiesConverter) +<%_ } _%> + return jwtAuthenticationConverter + } + +<%_ if (communicationSpringWebsocket) { %> + @Bean + fun bearerTokenResolver(): BearerTokenResolver{ + val bearerTokenResolver = new DefaultBearerTokenResolver() + bearerTokenResolver.setAllowUriQueryParameter(true) + return bearerTokenResolver + } + +<%_ } _%> + private fun getSecretKey(): SecretKey { + val keyBytes = Base64.from(jwtKey).decode() + return SecretKeySpec(keyBytes, 0, keyBytes.length, JWT_ALGORITHM.name) + } +} diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/config/WebConfigurer.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/config/WebConfigurer.kt.ejs index 9932ef170..fa0deb6b8 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/config/WebConfigurer.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/config/WebConfigurer.kt.ejs @@ -42,9 +42,6 @@ import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerF <%_ if (reactive && !skipClient) { _%> import org.springframework.boot.autoconfigure.web.reactive.ResourceHandlerRegistrationCustomizer <%_ } _%> -<%_ if (messageBrokerKafka) { _%> -import org.springframework.cloud.stream.annotation.EnableBinding -<%_ } _%> import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration <%_ if (reactive) { _%> @@ -71,7 +68,7 @@ import org.springframework.web.cors.UrlBasedCorsConfigurationSource import org.springframework.web.filter.CorsFilter <%_ } _%> <%_ if (reactive) { _%> -import org.springframework.web.cors.reactive.CorsWebFilter +import org.springframework.web.cors.reactive.CorsConfigurationSource import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource import org.springframework.web.reactive.config.WebFluxConfigurer <%_ if (!skipClient) { _%> @@ -86,8 +83,8 @@ import org.springframework.web.server.WebExceptionHandler import org.springframework.web.server.WebFilter import org.springframework.web.server.WebFilterChain <%_ } _%> -import org.zalando.problem.spring.webflux.advice.ProblemExceptionHandler -import org.zalando.problem.spring.webflux.advice.ProblemHandling +import <%= packageName %>.web.rest.errors.ExceptionTranslator +import tech.jhipster.web.rest.errors.ReactiveWebExceptionHandler <%_ if (!skipClient) { _%> import reactor.core.publisher.Mono <%_ } _%> @@ -114,9 +111,6 @@ import java.util.concurrent.TimeUnit /** * Configuration of web application with Servlet 3.0 APIs. */ -<%_ if (messageBrokerKafka) { _%> -@EnableBinding(KafkaSseConsumer::class, KafkaSseProducer::class) -<%_ } _%> @Configuration class WebConfigurer( <% if (!reactive || (devDatabaseTypeH2Any && reactive)) { %> @@ -192,7 +186,7 @@ class WebConfigurer( <%_ } _%> @Bean - fun corsFilter(): Cors<% if (reactive) { %>Web<% } %>Filter { + fun <% if (reactive) { %>corsConfigurationSource(): CorsConfigurationSource<% } else { %>corsFilter(): CorsFilter<% } %>{ val source = UrlBasedCorsConfigurationSource() val config = jHipsterProperties.cors if (!CollectionUtils.isEmpty(config.allowedOrigins) || ! CollectionUtils.isEmpty(config.allowedOriginPatterns)) { @@ -209,7 +203,7 @@ class WebConfigurer( <%_ } _%> } } - return Cors<% if (reactive) { %>Web<% } %>Filter(source) + return <% if (reactive) { %>source<% } else { %>CorsFilter(source)<% } %> } <%_ if (reactive) { _%> @@ -225,9 +219,10 @@ class WebConfigurer( @Bean @Order(-2) // The handler must have precedence over WebFluxResponseStatusExceptionHandler and Spring Boot's ErrorWebExceptionHandler - fun problemExceptionHandler(mapper: ObjectMapper, problemHandling: ProblemHandling): WebExceptionHandler { - return ProblemExceptionHandler(mapper, problemHandling) + fun problemExceptionHandler(mapper: ObjectMapper, problemHandling: ExceptionTranslator): WebExceptionHandler { + return ReactiveWebExceptionHandler(problemHandling, mapper) } + <%_ if (!skipClient) { _%> @Bean diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/domain/User.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/domain/User.kt.ejs index 1dcfd7525..6ce40e7c0 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/domain/User.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/domain/User.kt.ejs @@ -44,6 +44,9 @@ import org.springframework.data.annotation.Id import org.springframework.data.annotation.Transient import org.springframework.data.relational.core.mapping.Column import org.springframework.data.relational.core.mapping.Table + <%_ if (requiresPersistableImplementation) { _%> +import org.springframework.data.domain.Persistable; + <%_ } _%> <%_ } _%> <%_ if (databaseTypeMongodb) { _%> import org.springframework.data.annotation.Id @@ -140,7 +143,7 @@ import org.springframework.data.couchbase.core.mapping.id.GenerationStrategy.USE <%_ if (searchEngineElasticsearch) { _%> @org.springframework.data.elasticsearch.annotations.Document(indexName = "user") <%_ } _%> -class <%= user.persistClass %> ( +class <%= user.persistClass %> ( <%_ if (databaseTypeSql) { _%> @Id @@ -149,7 +152,7 @@ class <%= user.persistClass %> ( @GeneratedValue(strategy = GenerationType.IDENTITY) <%_ } else if (user.primaryKey.fields[0].jpaGeneratedValue === 'sequence') { _%> @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator") - @SequenceGenerator(name = "sequenceGenerator") + @SequenceGenerator(name = "sequenceGenerator"<% if (user.primaryKey.fields[0].liquibaseCustomSequenceGenerator) { %>, sequenceName = "<%- user.primaryKey.fields[0].jpaSequenceGeneratorName %>"<% } %>) <%_ } else if (user.primaryKey.fields[0].jpaGeneratedValue) { _%> @GeneratedValue <%_ } _%> @@ -162,7 +165,11 @@ class <%= user.persistClass %> ( <%_ if (!authenticationTypeOauth2) { _%> @GeneratedValue(UUIDStringGenerator::class) <%_ } _%> + <%_ if (databaseMigrationLiquibase) { _%> + @Property("id") + <%_ } else { _%> @Property("user_id") + <%_ } _%> <%_ } else { _%> <%_ if (databaseTypeMongodb || databaseTypeCouchbase) { _%> @@ -208,6 +215,9 @@ class <%= user.persistClass %> ( <%_ if (databaseTypeSql && reactive) { _%> @Column("password_hash") <%_ } _%> + <%_ if (databaseTypeNeo4j && databaseMigrationLiquibase) { _%> + @Property("password_hash") + <%_ } _%> var password: String? = null, <%_ } _%> @@ -386,9 +396,9 @@ class <%= user.persistClass %> ( <% if (databaseTypeSql && reactive) { %> @Transient <% } %> - <% if (['sql', 'mongodb', 'neo4j'].includes(databaseType)) { %> + <% if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { %> var authorities: MutableSet = mutableSetOf() - <% } else if (['cassandra', 'couchbase'].includes(databaseType)) { %> + <% } else { %> var authorities: MutableSet = mutableSetOf() <% } %><% if (authenticationTypeSession && databaseTypeSql && !reactive) { %>, @@ -398,12 +408,17 @@ class <%= user.persistClass %> ( @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) <%_ } _%> var persistentTokens: MutableSet = mutableSetOf()<% } %><% if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { %>, + <%_ if (databaseTypeSql && reactive && requiresPersistableImplementation) { _%> + + @Transient + var isPersisted: Boolean = true, + <%_ } _%> createdBy: String? = null, createdDate: Instant? = Instant.now(), lastModifiedBy: String? = null, lastModifiedDate: Instant? = Instant.now() <%_ } _%> -) : <% if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { %>AbstractAuditingEntity<<%= user.primaryKey.type %>>(createdBy, createdDate, lastModifiedBy, lastModifiedDate), <% } %>Serializable { +) : <% if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { %>AbstractAuditingEntity<<%= user.primaryKey.type %>>(createdBy, createdDate, lastModifiedBy, lastModifiedDate), <% } %>Serializable<% if (databaseTypeSql && reactive && requiresPersistableImplementation) { %>, Persistable<<% if (user.primaryKey.hasUUID) { %>UUID<% } else { %>String<% } %>><% } %> { <%_ if (databaseTypeSql && reactive) { _%> @PersistenceConstructor @@ -465,7 +480,7 @@ class <%= user.persistClass %> ( override fun equals(other: Any?): Boolean { if (this === other) return true - if (other !is <%= user.persistClass %>) return false + if (other !is <%= user.persistClass %> ) return false if (other.id == null || id == null) return false return id == other.id @@ -474,7 +489,7 @@ class <%= user.persistClass %> ( override fun hashCode() = 31 override fun toString() = - "<%= user.persistClass %>{" + + "<%= user.persistClass %> {" + "login='" + login + '\'' + ", firstName='" + firstName + '\'' + ", lastName='" + lastName + '\'' + diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/security/SecurityUtils.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/security/SecurityUtils.kt.ejs index b7b6e4dda..1ac105df7 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/security/SecurityUtils.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/security/SecurityUtils.kt.ejs @@ -22,22 +22,21 @@ package <%= packageName %>.security import org.springframework.security.core.Authentication import org.springframework.security.core.GrantedAuthority -<%_ if (authenticationTypeOauth2) { _%> -import org.springframework.security.core.authority.SimpleGrantedAuthority -<%_ } _%> +import org.springframework.security.core.context.SecurityContext <%_ if (reactive) { _%> import org.springframework.security.core.context.ReactiveSecurityContextHolder -import org.springframework.security.core.context.SecurityContext -<%_ } _%> -<%_ if (!reactive) { _%> +<%_ } else { _%> import org.springframework.security.core.context.SecurityContextHolder <%_ } _%> import org.springframework.security.core.userdetails.UserDetails +<%_ if (authenticationTypeJwt) { _%> +import org.springframework.security.oauth2.jose.jws.MacAlgorithm +import org.springframework.security.oauth2.jwt.Jwt +<%_ } _%> <%_ if (authenticationTypeOauth2) { _%> +import org.springframework.security.core.authority.SimpleGrantedAuthority import org.springframework.security.oauth2.core.oidc.user.DefaultOidcUser import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken -<%_ } _%> -<%_ if (authenticationTypeOauth2) { _%> import java.util.* import java.util.stream.Collectors <%_ if (reactive) { _%> @@ -58,6 +57,10 @@ import java.util.stream.Stream <%_ if (authenticationTypeOauth2) { _%> const val CLAIMS_NAMESPACE = "https://www.jhipster.tech/" +<%_ } else if (authenticationTypeJwt) { _%> +const val JWT_ALGORITHM: MacAlgorithm = MacAlgorithm.HS512 + +const val AUTHORITIES_KEY: String = "auth"; <%_ } _%> /** @@ -76,29 +79,27 @@ fun getCurrentUserLogin(): <% if (reactive) { %>Mono<% } else { %>Optional<% } % fun extractPrincipal(authentication: Authentication?): String? { - - if(authentication == null) { + if (authentication == null) { return null - <%_ if (authenticationTypeOauth2) { _%> + } else if (authentication.principal is UserDetails) { + return (authentication.principal as UserDetails).username +<%_ if (authenticationTypeJwt) { _%> + } else if (authentication.principal is Jwt) { + return (authentication.principal as Jwt).subject +<%_ } _%> +<%_ if (authenticationTypeOauth2) { _%> } else if (authentication is JwtAuthenticationToken) { - return authentication.token.claims["preferred_username"].toString() - <%_ } _%> - } - - return when (val principal = authentication.principal) { - is UserDetails -> principal.username - <%_ if (authenticationTypeOauth2) { _%> - is DefaultOidcUser -> { - if(principal.attributes.containsKey("preferred_username")) { - principal.attributes["preferred_username"].toString() - } else { - null - } + return authentication.token.claims["preferred_username"] as String + } else if (authentication.principal is DefaultOidcUser) { + val attributes = (authentication.principal as DefaultOidcUser).attributes + if (attributes.containsKey("preferred_username")) { + return attributes["preferred_username"] as String } - <%_ } _%> - is String -> principal - else -> null +<%_ } _%> + } else if (authentication.principal is String) { + return authentication.principal as String } + return null } <%_ if (authenticationTypeJwt) { _%> diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/security/jwt/JWTRelayGatewayFilterFactory.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/security/jwt/JWTRelayGatewayFilterFactory.kt.ejs new file mode 100644 index 000000000..0b0446f40 --- /dev/null +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/security/jwt/JWTRelayGatewayFilterFactory.kt.ejs @@ -0,0 +1,58 @@ +<%# + Copyright 2013-2024 the original author or authors from the JHipster project. + + This file is part of the JHipster project, see https://www.jhipster.tech/ + for more information. + + Licensed under the Apache License, Version 2.0 (the " + 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. +-%> +package <%= packageName %>.security.jwt + +import org.springframework.http.HttpHeaders.AUTHORIZATION + +import org.springframework.cloud.gateway.filter.GatewayFilter +import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory +import org.springframework.security.oauth2.jwt.ReactiveJwtDecoder +import org.springframework.stereotype.Component +import org.springframework.util.StringUtils + +import org.springframework.web.server.ServerWebExchange + +@Component +class JWTRelayGatewayFilterFactory(private val jwtDecoder: ReactiveJwtDecoder) : AbstractGatewayFilterFactory() { + companion object { + const val BEARER: String = "Bearer " + } + + override fun apply(config: Any) = + GatewayFilter { exchange, chain -> + val bearerToken = exchange.request.headers.getFirst(AUTHORIZATION) + if (bearerToken == null) { + // Allow anonymous requests. + chain.filter(exchange) + } + val token = this.extractToken(bearerToken) + jwtDecoder.decode(token).thenReturn(withBearerAuth(exchange, token)).flatMap(chain::filter) + } + + private fun extractToken(bearerToken: String): String { + if (StringUtils.hasText(bearerToken) && bearerToken.startsWith("Bearer ")) { + return bearerToken.substring(7) + } + throw IllegalArgumentException("Invalid token in Authorization header") + } + + private fun withBearerAuth(exchange: ServerWebExchange, authorizeToken: String): ServerWebExchange{ + return exchange.mutate().request(r -> r.headers(headers -> headers.setBearerAuth(authorizeToken))).build() + } +} diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/service/MailService.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/service/MailService.kt.ejs index 5fd21eb97..8e7006a6d 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/service/MailService.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/service/MailService.kt.ejs @@ -27,14 +27,16 @@ import java.util.Locale import javax.mail.MessagingException import org.slf4j.LoggerFactory +import org.springframework.beans.factory.annotation.Autowired import org.springframework.context.MessageSource +import org.springframework.context.annotation.Lazy import org.springframework.mail.MailException import org.springframework.mail.javamail.JavaMailSender import org.springframework.mail.javamail.MimeMessageHelper import org.springframework.scheduling.annotation.Async import org.springframework.stereotype.Service import org.thymeleaf.context.Context -import org.thymeleaf.spring5.SpringTemplateEngine +import org.thymeleaf.spring6.SpringTemplateEngine private const val USER = "user" private const val BASE_URL = "baseUrl" @@ -54,6 +56,10 @@ class MailService( private val log = LoggerFactory.getLogger(javaClass) + @Autowired + @Lazy + private lateinit var self: MailService + @Async fun sendEmail(to: String, subject: String, content: String, isMultipart: Boolean, isHtml: Boolean) { log.debug( @@ -91,26 +97,26 @@ class MailService( } val content = templateEngine.process(templateName, context) val subject = messageSource.getMessage(titleKey, null, locale) - sendEmail(user.email!!, subject, content, isMultipart = false, isHtml = true) + self.sendEmail(user.email!!, subject, content, isMultipart = false, isHtml = true) } <%_ if (!authenticationTypeOauth2) { _%> @Async fun sendActivationEmail(user: <%= user.persistClass %>) { log.debug("Sending activation email to '${user.email}'") - sendEmailFromTemplate(user, "mail/activationEmail", "email.activation.title") + self.sendEmailFromTemplate(user, "mail/activationEmail", "email.activation.title") } @Async fun sendCreationEmail(user: <%= user.persistClass %>) { log.debug("Sending creation email to '${user.email}'") - sendEmailFromTemplate(user, "mail/creationEmail", "email.activation.title") + self.sendEmailFromTemplate(user, "mail/creationEmail", "email.activation.title") } @Async fun sendPasswordResetMail(user: <%= user.persistClass %>) { log.debug("Sending password reset email to '${user.email}'") - sendEmailFromTemplate(user, "mail/passwordResetEmail", "email.reset.title") + self.sendEmailFromTemplate(user, "mail/passwordResetEmail", "email.reset.title") } <%_ } _%> } diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/filter/SpaWebFilter_imperative.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/filter/SpaWebFilter_imperative.kt.ejs new file mode 100644 index 000000000..40af4fbad --- /dev/null +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/filter/SpaWebFilter_imperative.kt.ejs @@ -0,0 +1,60 @@ +<%# + Copyright 2013-2024 the original author or authors from the JHipster project. + + This file is part of the JHipster project, see https://www.jhipster.tech/ + for more information. + + 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 + + https://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. +-%> +package <%= packageName %>.web.filter + +import javax.servlet.FilterChain +import javax.servlet.ServletException +import javax.servlet.http.HttpServletRequest +import javax.servlet.http.HttpServletResponse +import java.io.IOException +import org.springframework.web.filter.OncePerRequestFilter + +class SpaWebFilter: OncePerRequestFilter() { + + /** + * Forwards any unmapped paths (except those containing a period) to the client {@code index.html}. + */ + @Throws(ServletException::class, IOException::class) + override protected fun doFilterInternal(request: HttpServletRequest, response: HttpServletResponse, filterChain: FilterChain){ + // Request URI includes the contextPath if any, removed it. + val path = request.requestURI.substring(request.contextPath.length()) + if ( + !path.startsWith("/api") && + !path.startsWith("/management") && + !path.startsWith("/v3/api-docs") && +<%_ if (devDatabaseTypeH2Any) { _%> + !path.startsWith("/h2-console") && +<%_ } _%> +<%_ if (authenticationTypeOauth2 && applicationTypeMonolith) { _%> + !path.startsWith("/login") && + !path.startsWith("/oauth2") && +<%_ } _%> +<%_ if (communicationSpringWebsocket) { _%> + !path.startsWith("/websocket") && +<%_ } _%> + !path.contains(".") && + path.matches("/(.*)") + ) { + request.getRequestDispatcher("/index.html").forward(request, response) + return + } + + filterChain.doFilter(request, response) + } +} diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/filter/SpaWebFilter_reactive.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/filter/SpaWebFilter_reactive.kt.ejs index 5a53099f0..0dc3eca1e 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/filter/SpaWebFilter_reactive.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/filter/SpaWebFilter_reactive.kt.ejs @@ -26,12 +26,21 @@ import reactor.core.publisher.Mono class SpaWebFilter : WebFilter { override fun filter(exchange: ServerWebExchange, chain: WebFilterChain): Mono { val path = exchange.request.uri.path - if(!path.startsWith("/api") && !path.startsWith("/management")<% if (authenticationTypeOauth2) { %> && !path.startsWith("/login")<% } %> - <%_ if (applicationTypeGateway || applicationTypeMonolith) { _%> - && !path.startsWith("/services") && !path.startsWith("/v3/api-docs") - <%_ } _%> - && path.matches(Regex("[^\\\\.]*"))) { - return chain.filter(exchange.mutate().request(exchange.request.mutate().path("/index.html").build()).build()) + if ( + !path.startsWith("/api") && + !path.startsWith("/management") && + !path.startsWith("/v3/api-docs") && +<%_ if (authenticationTypeOauth2 && (applicationTypeGateway || applicationTypeMonolith)) { _%> + !path.startsWith("/login") && + !path.startsWith("/oauth2") && +<%_ } _%> +<%_ if (applicationTypeGateway) { _%> + !path.startsWith("/services") && +<%_ } _%> + !path.contains(".") && + path.matches("/(.*)") + ) { + return chain.filter(exchange.mutate().request(exchange.getRequest().mutate().path("/index.html").build() ).build()) } return chain.filter(exchange) } diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource.kt.ejs index 793cadd2a..36ade8260 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource.kt.ejs @@ -18,168 +18,6 @@ limitations under the License. -%> package <%= packageName %>.web.rest -<%_ if (authenticationTypeOauth2) { _%> - <%_ if (reactive) { _%> -import <%= packageName %>.security.getCurrentUserLogin - <%_ } _%> -import <%= packageName %>.service.UserService -import <%= packageName %>.service.dto.<%= user.adminUserDto %> - -import org.slf4j.LoggerFactory -import org.springframework.security.authentication.AbstractAuthenticationToken -import org.springframework.web.bind.annotation.GetMapping -import org.springframework.web.bind.annotation.RequestMapping -import org.springframework.web.bind.annotation.RestController -<%_ if (reactive) { _%> -import org.springframework.web.server.ServerWebExchange -import reactor.core.publisher.Mono -<%_ } else { _%> -import javax.servlet.http.HttpServletRequest -<%_ } _%> - -import java.security.Principal - -/** - * REST controller for managing the current user's account. - */ -@RestController -@RequestMapping("/api") -class AccountResource(private val userService: UserService) { - - internal class AccountResourceException(message: String) : RuntimeException(message) - - private val log = LoggerFactory.getLogger(javaClass) - - /** - * `GET /account` : get the current user. - * - * @param principal the current user; resolves to `null` if not authenticated. - * @return the current user. - * @throws AccountResourceException `500 (Internal Server Error)` if the user couldn't be returned. - */ - @GetMapping("/account") - fun getAccount(principal: Principal?): <% if (reactive) { %>Mono<<%= user.adminUserDto %>><% } else { %><%= user.adminUserDto %><% } %> = - if (principal is AbstractAuthenticationToken) { - userService.getUserFromAuthentication(principal) - } else { - throw AccountResourceException("User could not be found") - } - - /** - * {@code GET /authenticate} : check if the user is authenticated, and return its login. - * - * @param request the HTTP request. - * @return the login if the user is authenticated. - */ - @GetMapping("/authenticate") - <%_ if (reactive) { _%> - fun isAuthenticated(request: ServerWebExchange): Mono { - log.debug("REST request to check if the current user is authenticated") - return request.getPrincipal().map(Principal::getName) - <%_ } else { _%> - fun isAuthenticated(request: HttpServletRequest): String? { - log.debug("REST request to check if the current user is authenticated") - return request.remoteUser - <%_ } _%> - } - - companion object { - private const val serialVersionUID = 1L - } -} -<%_ } else if (skipUserManagement) { _%> -<%_ if (!reactive) { _%> -import <%= packageName %>.security.getCurrentUserLogin -<%_ } _%> -import com.fasterxml.jackson.annotation.JsonCreator -import org.slf4j.Logger -import org.slf4j.LoggerFactory -import org.springframework.security.core.GrantedAuthority -<%_ if (reactive) { _%> -import org.springframework.security.core.context.ReactiveSecurityContextHolder -import org.springframework.security.core.context.SecurityContext -import org.springframework.security.core.userdetails.UserDetails -<%_ } else { _%> -import org.springframework.security.core.context.SecurityContextHolder -<%_ } _%> -import org.springframework.web.bind.annotation.GetMapping -import org.springframework.web.bind.annotation.RequestMapping -import org.springframework.web.bind.annotation.RestController -<%_ if (reactive) { _%> -import org.springframework.web.server.ServerWebExchange -import reactor.core.publisher.Mono -<%_ } else { _%> -import javax.servlet.http.HttpServletRequest -<%_ } _%> - -@RestController -@RequestMapping("/api") -class AccountResource { - - private val log = LoggerFactory.getLogger(javaClass) - - internal class AccountResourceException : RuntimeException() - - /** - * {@code GET /account} : get the current user. - * - * @return the current user. - * @throws AccountResourceException {@code 500 (Internal Server Error)} if the user couldn't be returned. - */ - @GetMapping("/account") - <%_ if (reactive) { _%> - fun getAccount(): Mono { - return ReactiveSecurityContextHolder.getContext() - .map { SecurityContext.getAuthentication(it) } - .map { authentication -> { - var login = "" - if (authentication.principal is UserDetails) { - login = authentication.principal.username - } else if (authentication.principal is String) { - login = authentication.principal - } else { - throw AccountResourceException() - } - val authorities = authentication.authorities() - .map { GrantedAuthority.getAuthority(it) } - .toSet() - return UserVM(login, authorities) - }} - .switchIfEmpty(Mono.error(AccountResourceException())) - <%_ } else { _%> - fun getAccount(): UserVM { - val login = getCurrentUserLogin() - .orElseThrow { AccountResourceException() } - val authorities = SecurityContextHolder.getContext().authentication.authorities - .mapNotNullTo(mutableSetOf()) { it.authority } - return UserVM(login, authorities) - <%_ } _%> - } - - /** - * {@code GET /authenticate} : check if the user is authenticated, and return its login. - * - * @param request the HTTP request. - * @return the login if the user is authenticated. - */ - @GetMapping("/authenticate") - <%_ if (reactive) { _%> - fun isAuthenticated(request: ServerWebExchange): Mono { - log.debug("REST request to check if the current user is authenticated") - return request.getPrincipal().map(Principal::getName) - <%_ } else { _%> - fun isAuthenticated(request: HttpServletRequest): String? { - log.debug("REST request to check if the current user is authenticated") - return request.remoteUser - <%_ } _%> - } - - data class UserVM @JsonCreator constructor(val login: String, val authorities: Set) { - - fun isActivated() = true - } -} -<%_ } else { _%> <%_ if (authenticationTypeSession && !reactive) { _%> import <%= packageName %>.domain.PersistentToken import <%= packageName %>.repository.PersistentTokenRepository @@ -217,7 +55,7 @@ import org.springframework.web.server.ServerWebExchange import reactor.core.publisher.Mono <%_ } _%> -<%_ if (!reactive) { _%> +<%_ if (!reactive && !authenticationTypeJwt) { _%> import javax.servlet.http.HttpServletRequest <%_ } _%> import javax.validation.Valid @@ -289,6 +127,7 @@ class AccountResource( <%_ } _%> } + <%_ if (!authenticationTypeJwt) { _%> /** * `GET /authenticate` : check if the user is authenticated, and return its login. * @@ -307,6 +146,8 @@ class AccountResource( <%_ } _%> } + <%_ } _%> + /** * `GET /account` : get the current user. * @@ -357,7 +198,7 @@ class AccountResource( val userLogin = getCurrentUserLogin() .orElseThrow { AccountResourceException("") } val existingUser = userRepository.findOneByEmailIgnoreCase(userDTO.email) - if (existingUser.isPresent && !existingUser.get().login.equals(userLogin, ignoreCase = true)) { + if (existingUser.isPresent && !existingUser.orElseThrow().login.equals(userLogin, ignoreCase = true)) { throw EmailAlreadyUsedException() } val user = userRepository.findOneByLogin(userLogin) @@ -455,7 +296,7 @@ class AccountResource( fun requestPasswordReset(@RequestBody mail: String) { val user = userService.requestPasswordReset(mail) if (user.isPresent()) { - mailService.sendPasswordResetMail(user.get()) + mailService.sendPasswordResetMail(user.orElseThrow()) } else { // Pretend the request has been successful to prevent checking which emails really exist // but log that an invalid attempt has been made @@ -491,4 +332,3 @@ class AccountResource( } private fun isPasswordLengthInvalid(password: String?) = password.isNullOrEmpty() || password.length < ManagedUserVM.PASSWORD_MIN_LENGTH || password.length > ManagedUserVM.PASSWORD_MAX_LENGTH -<%_ } _%> diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource_oauth2.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource_oauth2.kt.ejs new file mode 100644 index 000000000..04d51216b --- /dev/null +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource_oauth2.kt.ejs @@ -0,0 +1,89 @@ +<%# +Copyright 2013-2024 the original author or authors from the JHipster project. + +This file is part of the JHipster project, see https://www.jhipster.tech/ +for more information. + +Licensed under the Apache License, Version 2.0 (the " +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. +-%> +package <%= packageName %>.web.rest + +<%_ if (reactive) { _%> +import <%= packageName %>.security.getCurrentUserLogin +<%_ } _%> +import <%= packageName %>.service.UserService +import <%= packageName %>.service.dto.<%= user.adminUserDto %> + +import org.slf4j.LoggerFactory +import org.springframework.security.authentication.AbstractAuthenticationToken +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.RequestMapping +import org.springframework.web.bind.annotation.RestController +<%_ if (reactive) { _%> +import org.springframework.web.server.ServerWebExchange +import reactor.core.publisher.Mono +<%_ } else { _%> +import javax.servlet.http.HttpServletRequest +<%_ } _%> + +import java.security.Principal + +/** + * REST controller for managing the current user's account. + */ +@RestController +@RequestMapping("/api") +class AccountResource(private val userService: UserService) { + + internal class AccountResourceException(message: String) : RuntimeException(message) + + private val log = LoggerFactory.getLogger(javaClass) + + /** + * `GET /account` : get the current user. + * + * @param principal the current user; resolves to `null` if not authenticated. + * @return the current user. + * @throws AccountResourceException `500 (Internal Server Error)` if the user couldn't be returned. + */ + @GetMapping("/account") + fun getAccount(principal: Principal?): <% if (reactive) { %>Mono<<%= user.adminUserDto %>><% } else { %><%= user.adminUserDto %><% } %> = + if (principal is AbstractAuthenticationToken) { + userService.getUserFromAuthentication(principal) + } else { + throw AccountResourceException("User could not be found") + } + + /** + * {@code GET /authenticate} : check if the user is authenticated, and return its login. + * + * @param request the HTTP request. + * @return the login if the user is authenticated. + */ + @GetMapping("/authenticate") + <%_ if (reactive) { _%> + fun isAuthenticated(request: ServerWebExchange): Mono { + log.debug("REST request to check if the current user is authenticated") + return request.getPrincipal().map(Principal::getName) + } + <%_ } else { _%> + fun isAuthenticated(request: HttpServletRequest): String? { + log.debug("REST request to check if the current user is authenticated") + return request.remoteUser + } + <%_ } _%> + + companion object { + private const val serialVersionUID = 1L + } +} diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource_skipUserManagement.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource_skipUserManagement.kt.ejs new file mode 100644 index 000000000..73acd2219 --- /dev/null +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource_skipUserManagement.kt.ejs @@ -0,0 +1,174 @@ +<%# +Copyright 2013-2024 the original author or authors from the JHipster project. + +This file is part of the JHipster project, see https://www.jhipster.tech/ +for more information. + +Licensed under the Apache License, Version 2.0 (the " +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. +-%> +package <%= packageName %>.web.rest + +<%_ if (reactive) { _%> +import reactor.core.publisher.Mono +<%_ } else { _%> +import javax.servlet.http.HttpServletRequest +<%_ } _%> + +<%_ if (authenticationTypeOauth2) { _%> +import org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken + <%_ if (reactive) { _%> +import org.springframework.web.server.ServerWebExchange + <%_ } _%> +<%_ } _%> +<%_ if (authenticationTypeOauth2 || authenticationTypeJwt) { _%> +import java.security.Principal +import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken +import org.springframework.security.authentication.AbstractAuthenticationToken +<%_ } else { _%> + <%_ if (reactive) { _%> +import java.security.Principal +import org.springframework.web.server.ServerWebExchange +import org.springframework.security.core.context.ReactiveSecurityContextHolder +import org.springframework.security.core.context.SecurityContext +import org.springframework.security.core.userdetails.UserDetails + <%_ } else { _%> +import <%= packageName %>.security.SecurityUtils +import org.springframework.security.core.context.SecurityContextHolder + <%_ } _%> +<%_ } _%> + +import com.fasterxml.jackson.annotation.JsonCreator +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import org.springframework.security.core.GrantedAuthority +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.RequestMapping +import org.springframework.web.bind.annotation.RestController + +import java.util.Set +import java.util.stream.Collectors + +@RestController +@RequestMapping("/api") +class AccountResource { + + private val log = LoggerFactory.getLogger(javaClass) + + internal class AccountResourceException <% if (authenticationTypeOauth2 || authenticationTypeJwt) { %>(message: String) <% } %> : RuntimeException(<% if (authenticationTypeOauth2 || authenticationTypeJwt) { %>(message) <% } %>) + + /** + * {@code GET /account} : get the current user. + * +<%_ if (authenticationTypeOauth2 || authenticationTypeJwt) { _%> + * @param principal the current user; resolves to {@code null} if not authenticated. +<%_ } _%> + * @return the current user. + * @throws AccountResourceException {@code 500 (Internal Server Error)} if the user couldn't be returned. + */ + @GetMapping("/account") +<%_ if (reactive) { _%> + <%_ if (authenticationTypeOauth2 || authenticationTypeJwt) { _%> + fun getAccount(principal: Principal): Mono{ + if (principal is AbstractAuthenticationToken) { + return Mono.just(getUserFromAuthentication(principal as AbstractAuthenticationToken)) + } else { + throw AccountResourceException("User could not be found") + } + } + <%_ } else { _%> + fun getAccount(): Mono { + return ReactiveSecurityContextHolder.getContext() + .map { SecurityContext.getAuthentication(it) } + .map { authentication -> { + var login = "" + if (authentication.principal is UserDetails) { + login = authentication.principal.username + } else if (authentication.principal is String) { + login = authentication.principal + } else { + throw AccountResourceException() + } + val authorities = authentication.authorities() + .map { GrantedAuthority.getAuthority(it) } + .toSet() + return UserVM(login, authorities) + } + } + .switchIfEmpty(Mono.error(AccountResourceException())) + } + <%_ } _%> +<%_ } else { _%> + <%_ if (authenticationTypeOauth2 || authenticationTypeJwt) { _%> + fun getAccount(principal: Principal): UserVM { + if (principal is AbstractAuthenticationToken) { + return getUserFromAuthentication(principal as AbstractAuthenticationToken) + } else { + throw AccountResourceException("User could not be found") + } + } + <%_ } else { _%> + fun getAccount(): UserVM { + val login = getCurrentUserLogin() + .orElseThrow { AccountResourceException() } + val authorities = SecurityContextHolder.getContext().authentication.authorities + .mapNotNullTo(mutableSetOf()) { it.authority } + return UserVM(login, authorities) + } + <%_ } _%> +<%_ } _%> + +<%_ if (!authenticationTypeJwt) { _%> + /** + * {@code GET /authenticate} : check if the user is authenticated, and return its login. + * + * @param request the HTTP request. + * @return the login if the user is authenticated. + */ + @GetMapping("/authenticate") + <%_ if (reactive) { _%> + fun isAuthenticated(request: ServerWebExchange): Mono { + log.debug("REST request to check if the current user is authenticated") + return request.getPrincipal().map(Principal::getName) + } + <%_ } else { _%> + fun isAuthenticated(request: HttpServletRequest): String? { + log.debug("REST request to check if the current user is authenticated") + return request.remoteUser + } + <%_ } _%> +<%_ } _%> + + data class UserVM @JsonCreator constructor(val login: String, val authorities: Set) { + + fun isActivated() = true + } + + <%_ if (authenticationTypeOauth2 || authenticationTypeJwt) { _%> + + private fun getUserFromAuthentication(authToken: AbstractAuthenticationToken): UserVM{ + if ( + <%_ if (authenticationTypeOauth2) { _%> + !(authToken is OAuth2AuthenticationToken) && + <%_ } _%> + !(authToken is JwtAuthenticationToken) + ) { + throw IllegalArgumentException("AuthenticationToken is not OAuth2 or JWT!") + } + + return UserVM( + authToken.name, + authToken.authorities.stream().map(GrantedAuthority::getAuthority).collect(Collectors.toSet()) + ); + } + <%_ } _%> +} diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AuthenticateController.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AuthenticateController.kt.ejs index cebcabe17..caa576ece 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AuthenticateController.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AuthenticateController.kt.ejs @@ -18,57 +18,70 @@ -%> package <%= packageName %>.web.rest -import <%= packageName %>.security.jwt.JWTFilter -import <%= packageName %>.security.jwt.TokenProvider +import <%= packageName %>.security.SecurityUtils.AUTHORITIES_KEY +import <%= packageName %>.security.SecurityUtils.JWT_ALGORITHM import <%= packageName %>.web.rest.vm.LoginVM import com.fasterxml.jackson.annotation.JsonProperty +import javax.validation.Valid +import java.time.Instant +import java.time.temporal.ChronoUnit +import java.util.stream.Collectors +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import org.springframework.beans.factory.annotation.Value import org.springframework.http.HttpHeaders import org.springframework.http.HttpStatus import org.springframework.http.ResponseEntity +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken +import org.springframework.security.core.GrantedAuthority +import org.springframework.security.oauth2.jwt.JwsHeader +import org.springframework.security.oauth2.jwt.JwtClaimsSet +import org.springframework.security.oauth2.jwt.JwtEncoder +import org.springframework.security.oauth2.jwt.JwtEncoderParameters +import org.springframework.web.bind.annotation.* <%_ if (reactive) { _%> +import java.security.Principal +import reactor.core.publisher.Mono +import org.springframework.web.server.ServerWebExchange import org.springframework.security.authentication.ReactiveAuthenticationManager -<%_ } _%> -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken -<%_ if (!reactive) { _%> +<%_ } else { _%> +import javax.servlet.http.HttpServletRequest import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder import org.springframework.security.core.context.SecurityContextHolder <%_ } _%> -import org.springframework.web.bind.annotation.PostMapping -import org.springframework.web.bind.annotation.RequestBody -import org.springframework.web.bind.annotation.RequestMapping -import org.springframework.web.bind.annotation.RestController -<%_ if (reactive) { _%> -import reactor.core.publisher.Mono -import reactor.core.scheduler.Schedulers -<%_ } _%> - -import javax.validation.Valid /** * Controller to authenticate users. */ @RestController @RequestMapping("/api") -class UserJWTController( - private val tokenProvider: TokenProvider, +class AuthenticateController( + private val jwtEncoder: JwtEncoder, <%_ if (reactive) { _%> private val authenticationManager: ReactiveAuthenticationManager <%_ } else { _%> private val authenticationManagerBuilder: AuthenticationManagerBuilder <%_ } _%> ) { + + @Value("\${jhipster.security.authentication.jwt.token-validity-in-seconds:0}") + private var tokenValidityInSeconds: Long = 0 + + @Value("\${jhipster.security.authentication.jwt.token-validity-in-seconds-for-remember-me:0}") + private var tokenValidityInSecondsForRememberMe: Long = 0 + <%_ if (reactive) { _%> @PostMapping("/authenticate") fun authorize(@Valid @RequestBody loginVM: Mono): Mono> = loginVM.flatMap { login -> authenticationManager.authenticate(UsernamePasswordAuthenticationToken(login.username, login.password)) - .map { tokenProvider.createToken(it, true == login.isRememberMe) } + .map { this.createToken(it, true == login.isRememberMe) } }.map{ jwt -> val httpHeaders = HttpHeaders() - httpHeaders.add(JWTFilter.AUTHORIZATION_HEADER, "Bearer $jwt") + httpHeaders.setBearerAuth(jwt) ResponseEntity(JWTToken(jwt), httpHeaders, HttpStatus.OK) } <%_ } else { _%> @@ -79,13 +92,55 @@ class UserJWTController( val authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken) SecurityContextHolder.getContext().authentication = authentication - val jwt = tokenProvider.createToken(authentication, loginVM.isRememberMe ?: false) + val jwt = this.createToken(authentication, loginVM.isRememberMe ?: false) val httpHeaders = HttpHeaders() - httpHeaders.add(JWTFilter.AUTHORIZATION_HEADER, "Bearer $jwt") + httpHeaders.setBearerAuth(jwt) return ResponseEntity(JWTToken(jwt), httpHeaders, HttpStatus.OK) } <%_ } _%> + + + /** + * {@code GET /authenticate} : check if the user is authenticated, and return its login. + * + * @param request the HTTP request. + * @return the login if the user is authenticated. + */ + @GetMapping("/authenticate") +<%_ if (reactive) { _%> + fun isAuthenticated(request: ServerWebExchange): Mono { + log.debug("REST request to check if the current user is authenticated") + return request.getPrincipal().map(Principal::getName) +<%_ } else { _%> + fun isAuthenticated(request: HttpServletRequest): String { + log.debug("REST request to check if the current user is authenticated") + return request.getRemoteUser() +<%_ } _%> + } + + fun createToken(authentication: Authentication, rememberMe: boolean): String { + val authorities = authentication.authorities.stream().map { it.authority }.collect(Collectors.joining(" ")) + + val now = Instant.now() + var validity = if (rememberMe) { + now.plus(this.tokenValidityInSecondsForRememberMe, ChronoUnit.SECONDS); + } else { + now.plus(this.tokenValidityInSeconds, ChronoUnit.SECONDS); + } + + // @formatter:off + val claims = JwtClaimsSet.builder() + .issuedAt(now) + .expiresAt(validity) + .subject(authentication.name) + .claim(AUTHORITIES_KEY, authorities) + .build() + + val jwsHeader = JwsHeader.with(JWT_ALGORITHM).build() + return this.jwtEncoder.encode(JwtEncoderParameters.from(jwsHeader, claims)).tokenValue + } + /** * Object to return as body in JWT Authentication. */ diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/BadRequestAlertException.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/BadRequestAlertException.kt.ejs index aaa9504af..717081011 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/BadRequestAlertException.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/BadRequestAlertException.kt.ejs @@ -18,32 +18,32 @@ -%> package <%= packageName %>.web.rest.errors -import org.zalando.problem.AbstractThrowableProblem -import org.zalando.problem.Exceptional -import org.zalando.problem.Status - +import org.springframework.http.HttpStatus +import org.springframework.web.ErrorResponseException +import tech.jhipster.web.rest.errors.ProblemDetailWithCause +import tech.jhipster.web.rest.errors.ProblemDetailWithCause.ProblemDetailWithCauseBuilder import java.net.URI -@SuppressWarnings("java:S110") // Inheritance tree of classes should not be too deep -open class BadRequestAlertException(type: URI, defaultMessage: String, val entityName: String, val errorKey: String) : - AbstractThrowableProblem( - type, defaultMessage, Status.BAD_REQUEST, null, null, null, - getAlertParameters(entityName, errorKey) - ) { - - constructor(defaultMessage: String, entityName: String, errorKey: String) : - this(DEFAULT_TYPE, defaultMessage, entityName, errorKey) - - override fun getCause(): Exceptional? = super.cause +// Inheritance tree of classes should not be too deep +open class BadRequestAlertException(type: URI?, defaultMessage: String?, val entityName: String?, val errorKey: String) : ErrorResponseException( + HttpStatus.BAD_REQUEST, + ProblemDetailWithCauseBuilder + .instance() + .withStatus(HttpStatus.BAD_REQUEST.value()) + .withType(type) + .withTitle(defaultMessage) + .withProperty("message", "error.$errorKey") + .withProperty("params", entityName) + .build(), + null +) { + + constructor(defaultMessage: String?, entityName: String?, errorKey: String) : this(ErrorConstants.DEFAULT_TYPE, defaultMessage, entityName, errorKey) + + val problemDetailWithCause: ProblemDetailWithCause + get() = body as ProblemDetailWithCause companion object { - private const val serialVersionUID = 1L - - private fun getAlertParameters(entityName: String, errorKey: String) = - mutableMapOf( - "message" to "error.$errorKey", - "params" to entityName - ) } } diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/ErrorConstants.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/ErrorConstants.kt.ejs index f84bc9d43..bac0b2125 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/ErrorConstants.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/ErrorConstants.kt.ejs @@ -29,7 +29,7 @@ const val PROBLEM_BASE_URL: String = "https://www.jhipster.tech/problem" val DEFAULT_TYPE: URI = URI.create("$PROBLEM_BASE_URL/problem-with-message") @JvmField val CONSTRAINT_VIOLATION_TYPE: URI = URI.create("$PROBLEM_BASE_URL/constraint-violation") -<%_ if (!skipUserManagement) { _%> +<%_ if (generateUserManagement) { _%> @JvmField val INVALID_PASSWORD_TYPE: URI = URI.create("$PROBLEM_BASE_URL/invalid-password") @JvmField diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/ExceptionTranslator.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/ExceptionTranslator.kt.ejs index ab7ba88c7..4610ee164 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/ExceptionTranslator.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/ExceptionTranslator.kt.ejs @@ -18,6 +18,8 @@ -%> package <%= packageName %>.web.rest.errors +import org.springframework.core.annotation.AnnotatedElementUtils.findMergedAnnotation; + import tech.jhipster.config.JHipsterConstants import tech.jhipster.web.util.HeaderUtil @@ -34,27 +36,37 @@ import org.springframework.http.converter.HttpMessageConversionException <%_ if (reactive && databaseTypeSql) { _%> import org.springframework.stereotype.Component <%_ } _%> -<%_ if (!reactive) { _%> -import org.springframework.web.bind.MethodArgumentNotValidException -<%_ } _%> +import org.springframework.web.ErrorResponseException import org.springframework.web.bind.annotation.ControllerAdvice import org.springframework.web.bind.annotation.ExceptionHandler <%_ if (reactive) { _%> + <%_ if (!skipUserManagement) { _%> +import org.springframework.security.core.AuthenticationException + <%_ } _%> import org.springframework.web.bind.support.WebExchangeBindException import org.springframework.web.server.ServerWebExchange +import org.springframework.http.MediaType +import tech.jhipster.web.rest.errors.ExceptionTranslation +import org.springframework.web.reactive.result.method.annotation.ResponseEntityExceptionHandler +import org.springframework.security.core.userdetails.UsernameNotFoundException <%_ } _%> <%_ if (!reactive) { _%> import org.springframework.web.context.request.NativeWebRequest +import org.springframework.web.context.request.WebRequest +import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler <%_ } _%> import org.springframework.core.env.Environment -import org.zalando.problem.DefaultProblem -import org.zalando.problem.Problem -import org.zalando.problem.ProblemBuilder -import org.zalando.problem.Status -import org.zalando.problem.StatusType -import org.zalando.problem.spring.web<% if (reactive) { %>flux<% } %>.advice.ProblemHandling -import org.zalando.problem.spring.web<% if (reactive) { %>flux<% } %>.advice.security.SecurityAdviceTrait -import org.zalando.problem.violations.ConstraintViolationProblem +import org.springframework.http.HttpHeaders +import org.springframework.http.HttpStatus +import org.springframework.http.HttpStatusCode +import tech.jhipster.web.rest.errors.ProblemDetailWithCause +import tech.jhipster.web.rest.errors.ProblemDetailWithCause.ProblemDetailWithCauseBuilder +import org.springframework.security.access.AccessDeniedException +import org.springframework.web.ErrorResponse +import org.springframework.web.bind.annotation.ResponseStatus +import org.springframework.security.authentication.BadCredentialsException +import org.springframework.lang.Nullable +import org.springframework.web.bind.MethodArgumentNotValidException <%_ if (reactive) { _%> import reactor.core.publisher.Mono <%_ } _%> @@ -67,7 +79,7 @@ import java.net.URI private const val FIELD_ERRORS_KEY = "fieldErrors" private const val MESSAGE_KEY = "message" private const val PATH_KEY = "path" -private const val VIOLATIONS_KEY = "violations" +private const val CASUAL_CHAIN_ENABLED = false /** * Controller advice to translate the server side exceptions to client-friendly json structures. @@ -77,166 +89,241 @@ private const val VIOLATIONS_KEY = "violations" <%_ if (databaseTypeSql && reactive) { _%> @Component("jhiExceptionTranslator") <%_ } _%> -class ExceptionTranslator(private val env: Environment) : ProblemHandling, SecurityAdviceTrait { +class ExceptionTranslator(private val env: Environment) : ResponseEntityExceptionHandler()<% if (reactive) { %>, ExceptionTranslation <% } %> { <%_ let returnType; let requestClass; +let requestEntityRequestClass; if (reactive) { - returnType = 'Mono>'; + returnType = 'Mono>'; requestClass = 'ServerWebExchange'; + requestEntityRequestClass = 'ServerWebExchange'; } else { - returnType = 'ResponseEntity?'; + returnType = 'ResponseEntity'; requestClass = 'NativeWebRequest'; + requestEntityRequestClass = 'WebRequest'; } _%> @Value("\${jhipster.clientApp.name}") private val applicationName: String? = null - /** - * Post-process the Problem payload to add the message key for the front-end if needed. - */ - override fun process(entity: ResponseEntity?, request: <%= requestClass %>?): <%- returnType %> { - if (entity == null) { - <%_ if (reactive) { _%> - return Mono.empty() - <%_ } else { _%> - return null - <%_ } _%> - } - val problem = entity.body - if (!(problem is ConstraintViolationProblem || problem is DefaultProblem)) { - <%_ if (reactive) { _%> - return Mono.just(entity) - <%_ } else { _%> - return entity - <%_ } _%> + @ExceptionHandler + <% if (reactive) { %>override<% } %> fun handleAnyException(ex: Throwable, request: <%= requestClass %>): <%- returnType %> { + val pdCause = wrapAndCustomizeProblem(ex, request) + return handleExceptionInternal(ex as Exception, pdCause, buildHeaders(ex)!!, HttpStatusCode.valueOf(pdCause.status), request) + } + + @Nullable + override fun handleExceptionInternal( + ex: Exception, + @Nullable body: Any, + headers: HttpHeaders, + statusCode: HttpStatusCode, + request: <%= requestEntityRequestClass %> + ): <%- returnType %> { + var body = body + body = body ?: wrapAndCustomizeProblem(ex as Throwable, request) + <%_ if (reactive) { _%> + return if (request.response.isCommitted) { + Mono.error(ex) + } else Mono.just( + ResponseEntity(body, updateContentType(headers), HttpStatusCode.valueOf((body as ProblemDetailWithCause).status)) + ) + <%_ } else { _%> + return super.handleExceptionInternal(ex, body, headers, statusCode, request) + <%_ } _%> + } + + protected fun wrapAndCustomizeProblem(ex: Throwable, request: <%= requestClass %>): ProblemDetailWithCause { + return customizeProblem(getProblemDetailWithCause(ex), ex, request) + } + + private fun getProblemDetailWithCause(ex: Throwable): ProblemDetailWithCause { +<%_ if (!skipUserManagement) { _%> + if (ex is <%= packageName %>.service.UsernameAlreadyUsedException) return LoginAlreadyUsedException().body as ProblemDetailWithCause + if (ex is <%= packageName %>.service.EmailAlreadyUsedException) return EmailAlreadyUsedException().body as ProblemDetailWithCause + if (ex is <%= packageName %>.service.InvalidPasswordException) return InvalidPasswordException().body as ProblemDetailWithCause + <%_ if (reactive) { _%> + if (ex is AuthenticationException) { + // Ensure no information about existing users is revealed via failed authentication attempts + return ProblemDetailWithCauseBuilder + .instance() + .withStatus(toStatus(ex).value()) + .withTitle("Unauthorized") + .withDetail("Invalid credentials") + .build() } - <%_ if (!reactive) { _%> - val nativeRequest = request?.getNativeRequest(HttpServletRequest::class.java) - val requestUri = if (nativeRequest != null) nativeRequest.requestURI else StringUtils.EMPTY <%_ } _%> +<%_ } _%> + return if (ex is ErrorResponseException && ex.body is ProblemDetailWithCause) ex.body as ProblemDetailWithCause else ProblemDetailWithCauseBuilder.instance().withStatus(toStatus(ex).value()).build() + } - val builder = Problem.builder() - .withType(if (Problem.DEFAULT_TYPE == problem.type) DEFAULT_TYPE else problem.type) - .withStatus(problem.status) - .withTitle(problem.title) - <%_ if (reactive) { _%> - .with(PATH_KEY, request!!.request.path.value()) - <%_ } else { _%> - .with(PATH_KEY, requestUri) - <%_ } _%> - - if (problem is ConstraintViolationProblem) { - builder - .with(VIOLATIONS_KEY, problem.violations) - .with(MESSAGE_KEY, ERR_VALIDATION) - } else { - builder - .withCause((problem as DefaultProblem).cause) - .withDetail(problem.detail) - .withInstance(problem.instance) - problem.parameters.forEach { (key, value) -> builder.with(key, value) } - if (!problem.parameters.containsKey(MESSAGE_KEY) && problem.status != null) { - builder.with(MESSAGE_KEY, "error.http." + problem.status!!.statusCode) - } + protected fun customizeProblem(problem: ProblemDetailWithCause, err: Throwable, request: <%= requestClass %>): ProblemDetailWithCause { + if (problem.status <= 0) problem.setStatus(toStatus(err)) + if (problem.type == URI.create("about:blank")) problem.type = getMappedType(err) + + // higher precedence to Custom/ResponseStatus types + val title = extractTitle(err, problem.status) + val problemTitle = problem.title + if (problemTitle == null || problemTitle != title) { + problem.title = title + } + if (problem.detail == null) { + // higher precedence to cause + problem.detail = getCustomizedErrorDetails(err) } - return <% if (reactive) { %>Mono.just(<% } %>ResponseEntity<% if (reactive) { %><% } %>(builder.build(), entity.headers, entity.statusCode)<% if (reactive) { %>)<% } %> + val problemProperties = problem.properties + if (problemProperties == null || !problemProperties.containsKey(MESSAGE_KEY)) problem.setProperty( + MESSAGE_KEY, + if (getMappedMessageKey(err) != null) getMappedMessageKey(err) else "error.http." + problem.status + ) + if (problemProperties == null || !problemProperties.containsKey(PATH_KEY)) problem.setProperty(PATH_KEY, getPathValue(request)) + if (err is <% if (reactive) { %> WebExchangeBindException <% } else { %> MethodArgumentNotValidException <% } %> && + (problemProperties == null || !problemProperties.containsKey(FIELD_ERRORS_KEY))) problem.setProperty(FIELD_ERRORS_KEY, getFieldErrors(err)) + problem.cause = err.cause?.let { buildCause(it, request).orElse(null) } + return problem } - <%_ if (reactive) { _%> - override fun handleBindingResult( - ex: WebExchangeBindException, request: <%= requestClass %>) - : <%- returnType %> { - <%_ } else { _%> - override fun handleMethodArgumentNotValid( - ex: MethodArgumentNotValidException, request: <%= requestClass %> - ): <%- returnType %> { + private fun extractTitle(err: Throwable, statusCode: Int): String? { + return if (getCustomizedTitle(err) != null) getCustomizedTitle(err) else extractTitleForResponseStatus(err, statusCode) + } + + private fun getFieldErrors(ex: <% if (reactive) { %>WebExchangeBindException<% } else { %>MethodArgumentNotValidException<% } %>): List { + return ex + .bindingResult + .fieldErrors + .stream() + .map { f: FieldError -> + FieldErrorVM( + f.objectName.replaceFirst("<%= dtoSuffix %>$".toRegex(), ""), + f.field, + if (StringUtils.isNotBlank(f.defaultMessage)) f.defaultMessage else f.code + ) + } + .toList() + } + + private fun extractTitleForResponseStatus(err: Throwable, statusCode: Int): String { + val specialStatus = extractResponseStatus(err) + return specialStatus?.reason ?: HttpStatus.valueOf(statusCode).reasonPhrase + } + + <%_ if (!reactive) { _%> + private fun extractURI(request: <%= requestClass %>): String { + val nativeRequest = request.getNativeRequest(HttpServletRequest::class) + return nativeRequest != null ? nativeRequest.requestURI : StringUtils.EMPTY + } <%_ } _%> - val result = ex.bindingResult - val fieldErrors = result.fieldErrors.map { - FieldErrorVM( - it.objectName.replaceFirst(Regex("<%= dtoSuffix %>$"), ""), - it.field, - if (StringUtils.isNotBlank(it.defaultMessage)) it.defaultMessage else it.code + + private fun toStatus(throwable: Throwable): HttpStatus { + // Let the ErrorResponse take this responsibility + return if (throwable is ErrorResponse) HttpStatus.valueOf(throwable.body.status) else Optional + .ofNullable(getMappedStatus(throwable)) + .orElse( + Optional.ofNullable(resolveResponseStatus(throwable)).map { obj: ResponseStatus -> obj.value }.orElse(HttpStatus.INTERNAL_SERVER_ERROR) ) + } + + private fun extractResponseStatus(throwable: Throwable): ResponseStatus? { + return Optional.ofNullable(resolveResponseStatus(throwable)).orElse(null) + } + + private fun resolveResponseStatus(type: Throwable?): ResponseStatus { + val candidate = AnnotatedElementUtils.findMergedAnnotation(type!!.javaClass, ResponseStatus::class.java) + return if (candidate == null && type.cause != null) resolveResponseStatus(type.cause) else candidate!! + } + + private fun getMappedType(err: Throwable): URI { + return if (err is MethodArgumentNotValidException) ErrorConstants.CONSTRAINT_VIOLATION_TYPE else ErrorConstants.DEFAULT_TYPE + } + + private fun getMappedMessageKey(err: Throwable): String? { + if (err is MethodArgumentNotValidException) { + return ErrorConstants.ERR_VALIDATION + <%_ if (!databaseTypeNo && !databaseTypeCassandra) { _%> + } else if (err is ConcurrencyFailureException || err.cause is ConcurrencyFailureException) { + return ErrorConstants.ERR_CONCURRENCY_FAILURE + <%_ } _%> + <%_ if (reactive) { _%> + } else if (err is WebExchangeBindException) { + return ErrorConstants.ERR_VALIDATION + <%_ } _%> } + return null + } - val problem = Problem.builder() - .withType(CONSTRAINT_VIOLATION_TYPE) - .withTitle("<%_ if (reactive) { _%>Data binding and validation failure<% } else { %>Method argument not valid<% } %>") - .withStatus(<% if (reactive) { %>Status.BAD_REQUEST<% } else { %>defaultConstraintViolationStatus()<% } %>) - .with(MESSAGE_KEY, ERR_VALIDATION) - .with(FIELD_ERRORS_KEY, fieldErrors) - .build() - return create(ex, problem, request) + private fun getCustomizedTitle(err: Throwable): String? { + return if (err is MethodArgumentNotValidException) "Method argument not valid" else null } - <%_ if (!skipUserManagement) { _%> - @ExceptionHandler - fun handleEmailAlreadyUsedException(ex: <%= packageName %>.service.EmailAlreadyUsedException, request: <%= requestClass %>): <%- returnType %> { - val problem = EmailAlreadyUsedException() - return create(problem, request, HeaderUtil.createFailureAlert(applicationName, <%= enableTranslation %>, problem.entityName, problem.errorKey, problem.message)) + private fun getCustomizedErrorDetails(err: Throwable): String? { + val activeProfiles: Collection = Arrays.asList(*env.activeProfiles) + if (activeProfiles.contains(JHipsterConstants.SPRING_PROFILE_PRODUCTION)) { + if (err is HttpMessageConversionException) return "Unable to convert http message" + <%_ if (!databaseTypeNo) { _%> + if (err is DataAccessException) return "Failure during data access" + <%_ } _%> + if (containsPackageName(err.message)) return "Unexpected runtime exception" + } + return if (err.cause != null) err.cause!!.message else err.message } - @ExceptionHandler - fun handleUsernameAlreadyUsedException(ex: <%= packageName %>.service.UsernameAlreadyUsedException, request: <%= requestClass %>): <%- returnType %> { - val problem = LoginAlreadyUsedException() - return create(problem, request, HeaderUtil.createFailureAlert(applicationName, <%= enableTranslation %>, problem.entityName, problem.errorKey, problem.message)) + private fun getMappedStatus(err: Throwable): HttpStatus? { + // Where we disagree with Spring defaults + if (err is AccessDeniedException) return HttpStatus.FORBIDDEN + <%_ if (!databaseTypeNo && !databaseTypeCassandra) { _%> + if (err is ConcurrencyFailureException) return HttpStatus.CONFLICT + <%_ } _%> + if (err is BadCredentialsException) return HttpStatus.UNAUTHORIZED + <%_ if (reactive) { _%> + if (err is UsernameNotFoundException) HttpStatus.UNAUTHORIZED + <%_ } _%> + return null } - @ExceptionHandler - fun handleInvalidPasswordException(ex: <%= packageName %>.service.InvalidPasswordException, request: <%= requestClass %>): <%- returnType %> { - return create(InvalidPasswordException(), request) + private fun getPathValue(request: <%= requestClass %>): URI { + return if (request == null) URI.create("about:blank") else <% if (reactive) { %> request.request.uri <% } else { %> URI.create(extractURI(request))<% } %> } - <%_ } _%> - @ExceptionHandler - fun handleBadRequestAlertException( - ex: BadRequestAlertException, - request: <%= requestClass %> - ): <%- returnType %> = - create( - ex, request, - HeaderUtil.createFailureAlert(applicationName, <%= enableTranslation %>, ex.entityName, ex.errorKey, ex.message) - ) - <%_ if (!databaseTypeNo && !databaseTypeCassandra) { _%> + private fun buildHeaders(err: Throwable): HttpHeaders? { + return if (err is BadRequestAlertException) HeaderUtil.createFailureAlert( + applicationName, + true, + err.entityName, + err.errorKey, + err.message + ) else null + } - @ExceptionHandler - fun handleConcurrencyFailure(ex: ConcurrencyFailureException, request: <%= requestClass %>): <%- returnType %> { - val problem = Problem.builder() - .withStatus(Status.CONFLICT) - .with(MESSAGE_KEY, ERR_CONCURRENCY_FAILURE) - .build() - return create(ex, problem, request) + <%_ if (reactive) { _%> + private fun updateContentType(headers: HttpHeaders): HttpHeaders { + var headers: HttpHeaders? = headers + if (headers == null) { + headers = HttpHeaders() + headers.contentType = MediaType.APPLICATION_PROBLEM_JSON + } + return headers } <%_ } _%> - override fun prepare(throwable: Throwable, status: StatusType, type: URI): ProblemBuilder { - val activeProfiles = env.activeProfiles - var detail = throwable.message - if (activeProfiles.contains(JHipsterConstants.SPRING_PROFILE_PRODUCTION)) { - detail = when (throwable) { - is HttpMessageConversionException -> "Unable to convert http message" - <%_ if (!databaseTypeNo) { _%> - is DataAccessException -> "Failure during data access" - <%_ } _%> - else -> { - if (containsPackageName(throwable.message)) { - "Unexpected runtime exception" - } else { - throwable.message - } - } - } - } - return Problem.builder() - .withType(type) - .withTitle(status.reasonPhrase) - .withStatus(status) - .withDetail(detail) - .withCause(throwable.cause.takeIf { isCausalChainsEnabled }?.let { toProblem(it) }) + fun buildCause(throwable: Throwable, request: <%= requestClass %>): Optional { + return if (throwable != null && isCasualChainEnabled) { + Optional.of(customizeProblem(getProblemDetailWithCause(throwable), throwable, request)) + } else Optional.ofNullable(null) + } + + private fun containsPackageName(message: String?): Boolean { + // This list is for sure not complete + return StringUtils.containsAny(message, "org.", "java.", "net.", "jakarta.", "javax.", "com.", "io.", "de.", "<%= packageName %>") + } + + companion object { + private const val FIELD_ERRORS_KEY = "fieldErrors" + private const val MESSAGE_KEY = "message" + private const val PATH_KEY = "path" + private const val isCasualChainEnabled = false } - private fun containsPackageName(message: String?) = listOf("org.", "java.", "net.", "javax.", "com.", "io.", "de.", "<%= packageName %>").any { it == message } } + diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/InvalidPasswordException.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/InvalidPasswordException.kt.ejs index 853e35c3d..244144ebb 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/InvalidPasswordException.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/InvalidPasswordException.kt.ejs @@ -18,17 +18,20 @@ -%> package <%= packageName %>.web.rest.errors -import org.zalando.problem.AbstractThrowableProblem -import org.zalando.problem.Exceptional -import org.zalando.problem.Status +import org.springframework.http.HttpStatus +import org.springframework.web.ErrorResponseException +import tech.jhipster.web.rest.errors.ProblemDetailWithCause.ProblemDetailWithCauseBuilder +import java.net.URI @SuppressWarnings("java:S110") // Inheritance tree of classes should not be too deep -class InvalidPasswordException : - AbstractThrowableProblem(INVALID_PASSWORD_TYPE, "Incorrect password", Status.BAD_REQUEST) { - - override fun getCause(): Exceptional? = super.cause - - companion object { - private const val serialVersionUID = 1L - } -} +class InvalidPasswordException(type: URI?, defaultMessage: String?, val entityName: String?, val errorKey: String) : ErrorResponseException( + HttpStatus.BAD_REQUEST, + ProblemDetailWithCauseBuilder + .instance() + .withStatus(HttpStatus.BAD_REQUEST.value()) + .withType(ErrorConstants.INVALID_PASSWORD_TYPE) + .withTitle("Incorrect password") + .build(), + null +) { +} \ No newline at end of file diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/IntegrationTest.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/IntegrationTest.kt.ejs index f21121e01..28ff4019e 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/IntegrationTest.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/IntegrationTest.kt.ejs @@ -36,9 +36,6 @@ import <%= packageName %>.config.EmbeddedCouchbase <%_ if (searchEngineElasticsearch) { _%> import <%= packageName %>.config.EmbeddedElasticsearch <%_ } _%> -<%_ if (messageBrokerKafka) { _%> -import <%= packageName %>.config.EmbeddedKafka -<%_ } _%> <%_ if (databaseTypeNeo4j) { _%> import <%= packageName %>.config.EmbeddedNeo4j <%_ } _%> @@ -80,9 +77,6 @@ import org.springframework.boot.test.context.SpringBootTest <%_ if (searchEngineElasticsearch) { _%> @EmbeddedElasticsearch <%_ } _%> -<%_ if (messageBrokerKafka) { _%> -@EmbeddedKafka -<%_ } _%> <%_ if (databaseTypeNeo4j) { _%> @EmbeddedNeo4j <%_ } _%> @@ -93,7 +87,11 @@ import org.springframework.boot.test.context.SpringBootTest annotation class IntegrationTest { <%_ if (reactive) { _%> companion object { - // 5s is the spring default https://github.com/spring-projects/spring-framework/blob/29185a3d28fa5e9c1b4821ffe519ef6f56b51962/spring-test/src/main/java/org/springframework/test/web/reactive/server/DefaultWebTestClient.java#L106 + // 5s is Spring's default https://github.com/spring-projects/spring-framework/blob/main/spring-test/src/main/java/org/springframework/test/web/reactive/server/DefaultWebTestClient.java#L106 + <%_ if (databaseTypeMongodb && reactive) { _%> + const val DEFAULT_TIMEOUT: String = "PT10S" + const val DEFAULT_ENTITY_TIMEOUT: String = "PT10S" + <%_ } else { _%> const val DEFAULT_TIMEOUT: String = "PT5S" const val DEFAULT_ENTITY_TIMEOUT: String = "PT5S" } diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/TechnicalStructureTest.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/TechnicalStructureTest.kt.ejs index aaf77e8df..f85a1abec 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/TechnicalStructureTest.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/TechnicalStructureTest.kt.ejs @@ -37,15 +37,16 @@ _%> class TechnicalStructureTest { @ArchTest val respectsTechnicalArchitectureLayers = layeredArchitecture() - .layer("Config").definedBy("..config..") + .consideringAllDependencies() + .layer("Config").definedBy("..config..") <%_ if (hasClientLayer) { _%> - .layer("Client").definedBy("..client..") + .layer("Client").definedBy("..client..") <%_ } _%> - .layer("Web").definedBy("..web..") - .optionalLayer("Service").definedBy("..service..") - .layer("Security").definedBy("..security..") + .layer("Web").definedBy("..web..") + .optionalLayer("Service").definedBy("..service..") + .layer("Security").definedBy("..security..") <%_ if (hasDomainLayer) { _%> - .layer("Persistence").definedBy("..repository..") + .optionalLayer("Persistence").definedBy("..repository..") .layer("Domain").definedBy("..domain..") <%_ } _%> diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/service/UserServiceIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/service/UserServiceIT.kt.ejs index 91ad37923..b217fe380 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/service/UserServiceIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/service/UserServiceIT.kt.ejs @@ -365,7 +365,7 @@ class UserServiceIT { <%_ if (searchEngineElasticsearch) { _%> // Verify Elasticsearch mock - verify(spiedUserSearchRepository, times(1)).delete(user) + verify(spiedUserSearchRepository, times(1)).delete<% if (!reactive) { %>FromIndex<% } %>(user) <%_ } _%> } @@ -398,7 +398,7 @@ class UserServiceIT { <%_ if (searchEngineElasticsearch) { _%> // Verify Elasticsearch mock - verify(spiedUserSearchRepository, never()).delete(user) + verify(spiedUserSearchRepository, never()).delete<% if (!reactive) { %>FromIndex<% } %>(user) <%_ } _%> } <%_ } _%> diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/UserResourceIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/UserResourceIT.kt.ejs index c83880df9..d339d33fc 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/UserResourceIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/UserResourceIT.kt.ejs @@ -49,9 +49,6 @@ import <%= packageName %>.service.dto.<%= user.adminUserDto %> import <%= packageName %>.repository.EntityManager <%_ } _%> import <%= packageName %>.service.mapper.UserMapper -<%_ if (!authenticationTypeOauth2) { _%> -import <%= packageName %>.web.rest.vm.ManagedUserVM -<%_ } _%> import org.apache.commons.lang3.RandomStringUtils import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test @@ -200,9 +197,8 @@ class UserResourceIT { val databaseSizeBeforeCreate = userRepository.findAll()<% if (reactive) { %> .collectList().block()!!<% } %>.size // Create the User - val managedUserVM = ManagedUserVM().apply { + val user = <%= user.adminUserDto %>().apply { login = DEFAULT_LOGIN - password = DEFAULT_PASSWORD firstName = DEFAULT_FIRSTNAME lastName = DEFAULT_LASTNAME email = DEFAULT_EMAIL @@ -217,14 +213,14 @@ class UserResourceIT { <%_ if (reactive) { _%> webTestClient.post().uri("/api/admin/users") .contentType(MediaType.APPLICATION_JSON) - .bodyValue(convertObjectToJsonBytes(managedUserVM)) + .bodyValue(convertObjectToJsonBytes(user)) .exchange() .expectStatus().isCreated <%_ } else { _%> restUserMockMvc.perform( post("/api/admin/users") .contentType(MediaType.APPLICATION_JSON) - .content(convertObjectToJsonBytes(managedUserVM))<% if (authenticationUsesCsrf) { %> + .content(convertObjectToJsonBytes(user))<% if (authenticationUsesCsrf) { %> .with(csrf())<% } %> ) .andExpect(status().isCreated) @@ -260,7 +256,7 @@ class UserResourceIT { val databaseSizeBeforeCreate = userRepository.findAll()<% if (reactive) { %> .collectList().block()!!<% } %>.size - val managedUserVM = ManagedUserVM().apply { + val user = <%= user.adminUserDto %>().apply { <%_ if (databaseTypeCassandra) { _%> id = UUID.randomUUID().toString() <%_ } else if (databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { _%> @@ -269,7 +265,6 @@ class UserResourceIT { id = DEFAULT_ID <%_ } _%> login = DEFAULT_LOGIN - password = DEFAULT_PASSWORD firstName = DEFAULT_FIRSTNAME lastName = DEFAULT_LASTNAME email = DEFAULT_EMAIL @@ -285,14 +280,14 @@ class UserResourceIT { <%_ if (reactive) { _%> webTestClient.post().uri("/api/admin/users") .contentType(MediaType.APPLICATION_JSON) - .bodyValue(convertObjectToJsonBytes(managedUserVM)) + .bodyValue(convertObjectToJsonBytes(user)) .exchange() .expectStatus().isBadRequest <%_ } else { _%> restUserMockMvc.perform( post("/api/admin/users") .contentType(MediaType.APPLICATION_JSON) - .content(convertObjectToJsonBytes(managedUserVM))<% if (authenticationUsesCsrf) { %> + .content(convertObjectToJsonBytes(user))<% if (authenticationUsesCsrf) { %> .with(csrf())<% } %> ) .andExpect(status().isBadRequest) @@ -324,9 +319,8 @@ class UserResourceIT { val databaseSizeBeforeCreate = userRepository.findAll()<% if (reactive) { %> .collectList().block()!!<% } %>.size - val managedUserVM = ManagedUserVM().apply { + val user = <%= user.adminUserDto %>().apply { login = DEFAULT_LOGIN // this login should already be used - password = DEFAULT_PASSWORD firstName = DEFAULT_FIRSTNAME lastName = DEFAULT_LASTNAME email = "anothermail@localhost" @@ -342,14 +336,14 @@ class UserResourceIT { <%_ if (reactive) { _%> webTestClient.post().uri("/api/admin/users") .contentType(MediaType.APPLICATION_JSON) - .bodyValue(convertObjectToJsonBytes(managedUserVM)) + .bodyValue(convertObjectToJsonBytes(user)) .exchange() .expectStatus().isBadRequest <%_ } else { _%> restUserMockMvc.perform( post("/api/admin/users") .contentType(MediaType.APPLICATION_JSON) - .content(convertObjectToJsonBytes(managedUserVM))<% if (authenticationUsesCsrf) { %> + .content(convertObjectToJsonBytes(user))<% if (authenticationUsesCsrf) { %> .with(csrf())<% } %> ) .andExpect(status().isBadRequest) @@ -378,9 +372,8 @@ class UserResourceIT { val databaseSizeBeforeCreate = userRepository.findAll()<% if (reactive) { %> .collectList().block()!!<% } %>.size - val managedUserVM = ManagedUserVM().apply { + val user = <%= user.adminUserDto %>().apply { login = "anotherlogin" - password = DEFAULT_PASSWORD firstName = DEFAULT_FIRSTNAME lastName = DEFAULT_LASTNAME email = DEFAULT_EMAIL // this email should already be used @@ -396,14 +389,14 @@ class UserResourceIT { <%_ if (reactive) { _%> webTestClient.post().uri("/api/admin/users") .contentType(MediaType.APPLICATION_JSON) - .bodyValue(convertObjectToJsonBytes(managedUserVM)) + .bodyValue(convertObjectToJsonBytes(user)) .exchange() .expectStatus().isBadRequest <%_ } else { _%> restUserMockMvc.perform( post("/api/admin/users") .contentType(MediaType.APPLICATION_JSON) - .content(convertObjectToJsonBytes(managedUserVM))<% if (authenticationUsesCsrf) { %> + .content(convertObjectToJsonBytes(user))<% if (authenticationUsesCsrf) { %> .with(csrf())<% } %> ) .andExpect(status().isBadRequest) @@ -582,10 +575,9 @@ class UserResourceIT { val updatedUser = userRepository.findById(user.id!!).<% if (reactive) { %>block<% } else { %>get<% } %>() assertNotNull(updatedUser) - val managedUserVM = ManagedUserVM().apply { + val user = <%= user.adminUserDto %>().apply { id = updatedUser.id login = updatedUser.login - password = UPDATED_PASSWORD firstName = UPDATED_FIRSTNAME lastName = UPDATED_LASTNAME email = UPDATED_EMAIL @@ -606,14 +598,14 @@ class UserResourceIT { <%_ if (reactive) { _%> webTestClient.put().uri("/api/admin/users") .contentType(MediaType.APPLICATION_JSON) - .bodyValue(convertObjectToJsonBytes(managedUserVM)) + .bodyValue(convertObjectToJsonBytes(user)) .exchange() .expectStatus().isOk <%_ } else { _%> restUserMockMvc.perform( put("/api/admin/users") .contentType(MediaType.APPLICATION_JSON) - .content(convertObjectToJsonBytes(managedUserVM))<% if (authenticationUsesCsrf) { %> + .content(convertObjectToJsonBytes(user))<% if (authenticationUsesCsrf) { %> .with(csrf())<% } %> ) .andExpect(status().isOk) @@ -649,13 +641,12 @@ class UserResourceIT { .collectList().block()!!<% } %>.size // Update the user - val updatedUser = userRepository.findById(user.id!!).<% if (reactive) { %>block<% } else { %>get<% } %>() + val updatedUser = userRepository.findById(user.id!!).<% if (reactive) { %>block<% } else { %>orElseThrow<% } %>() assertNotNull(updatedUser) - val managedUserVM = ManagedUserVM().apply { + val user = <%= user.adminUserDto %>().apply { id = updatedUser.id login = UPDATED_LOGIN - password = UPDATED_PASSWORD firstName = UPDATED_FIRSTNAME lastName = UPDATED_LASTNAME email = UPDATED_EMAIL @@ -676,14 +667,14 @@ class UserResourceIT { <%_ if (reactive) { _%> webTestClient.put().uri("/api/admin/users") .contentType(MediaType.APPLICATION_JSON) - .bodyValue(convertObjectToJsonBytes(managedUserVM)) + .bodyValue(convertObjectToJsonBytes(user)) .exchange() .expectStatus().isOk <%_ } else { _%> restUserMockMvc.perform( put("/api/admin/users") .contentType(MediaType.APPLICATION_JSON) - .content(convertObjectToJsonBytes(managedUserVM))<% if (authenticationUsesCsrf) { %> + .content(convertObjectToJsonBytes(user))<% if (authenticationUsesCsrf) { %> .with(csrf())<% } %> ) .andExpect(status().isOk) @@ -747,10 +738,9 @@ class UserResourceIT { val updatedUser = userRepository.findById(user.id!!).<% if (reactive) { %>block<% } else { %>get<% } %>() assertNotNull(updatedUser) - val managedUserVM = ManagedUserVM().apply { + val user = <%= user.adminUserDto %>().apply { id = updatedUser.id login = updatedUser.login - password = updatedUser.password firstName = updatedUser.firstName lastName = updatedUser.lastName email = "jhipster@localhost" // this email should already be used by anotherUser @@ -771,14 +761,14 @@ class UserResourceIT { <%_ if (reactive) { _%> webTestClient.put().uri("/api/admin/users") .contentType(MediaType.APPLICATION_JSON) - .bodyValue(convertObjectToJsonBytes(managedUserVM)) + .bodyValue(convertObjectToJsonBytes(user)) .exchange() .expectStatus().isBadRequest <%_ } else { _%> restUserMockMvc.perform( put("/api/admin/users") .contentType(MediaType.APPLICATION_JSON) - .content(convertObjectToJsonBytes(managedUserVM))<% if (authenticationUsesCsrf) { %> + .content(convertObjectToJsonBytes(user))<% if (authenticationUsesCsrf) { %> .with(csrf())<% } %> ) .andExpect(status().isBadRequest) @@ -826,13 +816,12 @@ class UserResourceIT { <%_ } _%> // Update the user - val updatedUser = userRepository.findById(user.id!!).<% if (reactive) { %>block<% } else { %>get<% } %>() + val updatedUser = userRepository.findById(user.id!!).<% if (reactive) { %>block<% } else { %>orElseThrow<% } %>() assertNotNull(updatedUser) - val managedUserVM = ManagedUserVM().apply { + val user = <%= user.adminUserDto %>().apply { id = updatedUser.id login = "jhipster" // this login should already be used by anotherUser - password = updatedUser.password firstName = updatedUser.firstName lastName = updatedUser.lastName email = updatedUser.email @@ -853,14 +842,14 @@ class UserResourceIT { <%_ if (reactive) { _%> webTestClient.put().uri("/api/admin/users") .contentType(MediaType.APPLICATION_JSON) - .bodyValue(convertObjectToJsonBytes(managedUserVM)) + .bodyValue(convertObjectToJsonBytes(user)) .exchange() .expectStatus().isBadRequest <%_ } else { _%> restUserMockMvc.perform( put("/api/admin/users") .contentType(MediaType.APPLICATION_JSON) - .content(convertObjectToJsonBytes(managedUserVM))<% if (authenticationUsesCsrf) { %> + .content(convertObjectToJsonBytes(user))<% if (authenticationUsesCsrf) { %> .with(csrf())<% } %> ) .andExpect(status().isBadRequest) diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs index 979940546..0dc9c3045 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs @@ -19,6 +19,7 @@ package <%= entityAbsolutePackage %>.web.rest <%_ +var filterTestableRelationships = reactive ? reactiveEagerRelations : relationships; const fieldsToTest = fields.filter(field => !field.id && !field.autoGenerate && !field.transient); let mapsIdEntity; let mapsIdEntityInstance; @@ -48,7 +49,7 @@ if (databaseTypeSql && reactive) { } let idValue = `${persistInstance}.${primaryKey.name}`; -if (primaryKey.typeLong) { +if (primaryKey.typeLong || primaryKey.typeInteger`) { idValue = idValue + '?.toInt()'; } else if (primaryKey.typeUUID) { idValue = idValue + '.toString()'; @@ -62,9 +63,6 @@ _%> import <%= packageName %>.web.rest.* <% } %> import <%= packageName %>.IntegrationTest -<%_ if (reactive) { _%> -import <%= packageName %>.IntegrationTest.Companion.DEFAULT_TIMEOUT -<%_ } _%> import <%= entityAbsolutePackage %>.domain.<%= persistClass %> <%_ var imported = []; @@ -72,12 +70,18 @@ import <%= entityAbsolutePackage %>.domain.<%= persistClass %> const relationshipValidate = relationship.relationshipValidate; const otherEntityNameCapitalized = relationship.otherEntityNameCapitalized; const isUsingMapsIdL1 = relationship.id; - if(imported.indexOf(otherEntityNameCapitalized) === -1 && persistClass !== asEntity(otherEntityNameCapitalized)) { + if(imported.indexOf(otherEntityNameCapitalized) === -1 && persistClass !== relationship.otherEntity.persistClass) { if ((relationshipValidate !== null && relationshipValidate) || jpaMetamodelFiltering || (isUsingMapsIdL1)) { _%> -import <%= entityAbsolutePackage %>.domain.<%= asEntity(otherEntityNameCapitalized) %> +import <%= entityAbsolutePackage %>.domain.<%= relationship.otherEntity.persistClass %> <%_ imported.push(otherEntityNameCapitalized); } } } _%> +<%_ + if(jpaMetamodelFiltering && reactive) { + filterTestableRelationships.forEach(relationship => { _%> +import <%= entityAbsolutePackage %>.repository.<%= relationship.otherEntityNameCapitalized %>Repository +<%_ }); + } _%> <%_ if (saveUserSnapshot) { _%> import <%= entityAbsolutePackage %>.repository.UserRepository <%_ } _%> @@ -98,7 +102,7 @@ import <%= entityAbsolutePackage %>.service.<%= entityClass %>Service import <%= entityAbsolutePackage %>.service.dto.<%= dtoClass %> import <%= entityAbsolutePackage %>.service.mapper.<%= entityClass %>Mapper <%_ } _%> -<%_ if (jpaMetamodelFiltering) { _%> +<%_ if (jpaMetamodelFiltering & !reactive) { _%> import <%= entityAbsolutePackage %>.service.criteria.<%= entityClass %>Criteria <%_ } _%> import kotlin.test.assertNotNull @@ -169,7 +173,7 @@ import javax.persistence.EntityManager <%_ if (anyFieldIsBigDecimal) { _%> import java.math.BigDecimal <%_ } _%> -<%_ if (anyFieldIsBlobDerived&& databaseTypeCassandra) { _%> +<%_ if (anyFieldIsBlobDerived && databaseTypeCassandra) { _%> import java.nio.ByteBuffer <%_ } _%> <%_ if (reactive || anyFieldIsDuration) { _%> @@ -185,7 +189,7 @@ import java.time.Instant import java.time.ZonedDateTime import java.time.ZoneOffset <%_ } _%> -<%_ if (anyFieldIsLocalDate|| anyFieldIsZonedDateTime) { _%> +<%_ if (anyFieldIsLocalDate || anyFieldIsZonedDateTime) { _%> import java.time.ZoneId <%_ } _%> <%_ if (anyFieldIsInstant) { _%> @@ -194,10 +198,22 @@ import java.time.temporal.ChronoUnit <%_ if (anyFieldIsUUID || primaryKey.typeString || otherEntityPrimaryKeyTypesIncludesUUID) { _%> import java.util.UUID <%_ } _%> -<%_ if (!embedded && primaryKey.hasLong) { _%> +<%_ if (!embedded && (primaryKey.hasLong || primaryKey.hasInteger)) { _%> import java.util.Random + <%_ if (primaryKey.hasLong) { _%> import java.util.concurrent.atomic.AtomicLong + <%_ } else if (primaryKey.hasInteger) { _%> +import java.util.concurrent.atomic.AtomicInteger + <%_ } _%> +<%_ } _%> + +<%_ if (anyFieldIsBigDecimal) { _%> +import <%= packageName %>.web.rest.TestUtil.sameNumber +<%_ } _%> +<%_ if (anyFieldIsZonedDateTime) { _%> +import <%= packageName %>.web.rest.TestUtil.sameInstant <%_ } _%> + import java.util.stream.Stream import org.assertj.core.api.Assertions.assertThat @@ -239,7 +255,7 @@ import <%= packageName %>.domain.enumeration.<%= field.fieldType %> ) <%_ } _%> <%_ if (reactive) { _%> -@AutoConfigureWebTestClient(timeout = IntegrationTest.DEFAULT_TIMEOUT) +@AutoConfigureWebTestClient <%_ } else { _%> @AutoConfigureMockMvc <%_ } _%> @@ -305,6 +321,13 @@ class <%= entityClass %>ResourceIT { private lateinit var <%= persistInstance %>: <%= persistClass %> + <%_ if(jpaMetamodelFiltering && reactive) { + filterTestableRelationships.forEach((relationship) => { _%> + @Autowired + private lateinit var <%= relationship.otherEntity.persistInstance %>Repository: <%= relationship.otherEntity.persistClass %>Repository + <%_ }); + } _%> + <%_ if (databaseTypeSql && reactive) { _%> @AfterEach fun cleanup() { @@ -412,7 +435,7 @@ class <%= entityClass %>ResourceIT { <%_ if (primaryKey.typeUUID && databaseTypeSql) { _%> <%= entityInstance %>Repository.<%= saveMethod %>(<%= persistInstance %>)<%= callBlock %> <%_ } else { _%> - <%= persistInstance %>.<%= primaryKey.name %> = <% if (primaryKey.typeUUID) { %>UUID.randomUUID()<% } else if (primaryKey.typeLong) { %>1L<% } else { %>"existing_id"<% } %> + <%= persistInstance %>.<%= primaryKey.name %> = <% if (primaryKey.typeUUID) { %>UUID.randomUUID()<% } else if (primaryKey.typeLong) { %>1L<% } else if (primaryKey.typeInteger) { %>1<% } else { %>"existing_id"<% } %> <%_ } _%> <%_ if (dtoMapstruct) { _%> val <%= dtoInstance %> = <%= entityInstance %>Mapper.toDto(<%= persistInstance %>) @@ -478,7 +501,7 @@ class <%= entityClass %>ResourceIT { <%_ } break; } _%> // Load the <%= entityInstance %> - val updated<%= persistClass %> = <%= entityInstance %>Repository.findById(<%= persistInstance %>.<%= primaryKey.name %>)<%= reactive ? '.block()' : '.get()' %> + val updated<%= persistClass %> = <%= entityInstance %>Repository.findById(<%= persistInstance %>.<%= primaryKey.name %>)<%= reactive ? '.block()' : '.orElseThrow()' %> assertThat(updated<%= persistClass %>).isNotNull<% if (databaseTypeSql && !reactive) { %> // Disconnect from session so that the updates on updated<%= persistClass %> are not directly saved in db em.detach(updated<%= persistClass %>)<% } %> @@ -577,7 +600,7 @@ class <%= entityClass %>ResourceIT { // Initialize the database <%_ if (!primaryKey.derived) { _%> <%_ for (field of primaryKey.fields.filter(f => !f.autoGenerateByRepository)) { _%> - <%= persistInstance %>.<%= field.fieldName %> = <%- field.javaValueGenerator %> + <%= persistInstance %>.<%= field.fieldName %> = <%- this.getJavaValueGeneratorForType(field.fieldType) %> <%_ } _%> <%_ } _%> <%= entityInstance %>Repository.save(<%= persistInstance %>)<%= callBlock %> @@ -620,7 +643,7 @@ class <%= entityClass %>ResourceIT { // Initialize the database <%_ if (!primaryKey.derived) { _%> <%_ for (field of primaryKey.fields.filter(f => !f.autoGenerateByRepository)) { _%> - <%= persistInstance %>.<%= field.fieldName %> = <%- field.javaValueGenerator %> + <%= persistInstance %>.<%= field.fieldName %> = <%- this.getJavaValueGeneratorForType(field.fieldType) %> <%_ } _%> <%_ } _%> <%= entityInstance %>Repository.<%= saveMethod %>(<%= persistInstance %>)<%= callBlock %> @@ -712,7 +735,7 @@ class <%= entityClass %>ResourceIT { // Initialize the database <%_ if (!primaryKey.derived) { _%> <%_ for (field of primaryKey.fields.filter(f => !f.autoGenerateByRepository)) { _%> - <%= persistInstance %>.<%= field.fieldName %> = <%- field.javaValueGenerator %> + <%= persistInstance %>.<%= field.fieldName %> = <%- this.getJavaValueGeneratorForType(field.fieldType) %> <%_ } _%> <%_ } _%> <%= entityInstance %>Repository.<%= saveMethod %>(<%= persistInstance %>)<%= callBlock %> @@ -771,7 +794,7 @@ class <%= entityClass %>ResourceIT { <%_ } _%> } <%_ fieldsToTest.forEach((searchBy) => { /* we can't filter by all the fields. */ _%> - <%_ if (searchBy.filterableField) { _%> + <%_ if (isFilterableType(searchBy.fieldType)) { _%> @Test<%= transactionalAnnotation %> <% if (!reactive) { %>@Throws(Exception::class)<% } %> fun getAll<%= entityClassPlural %>By<%= searchBy.fieldInJavaBeanMethod %>IsEqualToSomething() { @@ -1100,7 +1123,7 @@ class <%= entityClass %>ResourceIT { // Initialize the database <%_ if (!primaryKey.derived) { _%> <%_ for (field of primaryKey.fields.filter(f => !f.autoGenerateByRepository)) { _%> - <%= persistInstance %>.<%= field.fieldName %> = <%- field.javaValueGenerator %> + <%= persistInstance %>.<%= field.fieldName %> = <%- this.getJavaValueGeneratorForType(field.fieldType) %> <%_ } _%> <%_ } _%> <%= entityInstance %>Repository.<%= saveMethod %>(<%= persistInstance %>)<%= callBlock %> @@ -1112,7 +1135,7 @@ class <%= entityClass %>ResourceIT { val searchDatabaseSizeBefore = IterableUtil.sizeOf(<%= entityInstance %>SearchRepository.findAll()<%= callListBlock %>) <%_ } _%> // Update the <%= entityInstance %> - val updated<%= persistClass %> = <%= entityInstance %>Repository.findById(<%= persistInstance %>.<%= primaryKey.name %>)<%= reactive ? '.block()' : '.get()' %> + val updated<%= persistClass %> = <%= entityInstance %>Repository.findById(<%= persistInstance %>.<%= primaryKey.name %>)<%= reactive ? '.block()' : '.orElseThrow()' %> <%_ if (databaseTypeSql && !reactive) { _%> // Disconnect from session so that the updates on updated<%= persistClass %> are not directly saved in db em.detach(updated<%= persistClass %>) @@ -1128,14 +1151,14 @@ class <%= entityClass %>ResourceIT { <%_ } _%> <%_ if (reactive) { _%> - webTestClient.put().uri(ENTITY_API_URL_ID, <%= (dtoMapstruct ? asDto(entityInstance) : 'updated' + persistClass) %>.<%= primaryKey.name %>) + webTestClient.put().uri(ENTITY_API_URL_ID, <%= (dtoMapstruct ? dtoInstance : 'updated' + persistClass) %>.<%= primaryKey.name %>) .contentType(MediaType.APPLICATION_JSON) .bodyValue(convertObjectToJsonBytes(<%= (dtoMapstruct ? dtoInstance : 'updated' + persistClass) %>)) .exchange() .expectStatus().isOk <%_ } else { _%> rest<%= entityClass %>MockMvc.perform( - put(ENTITY_API_URL_ID, <%= (dtoMapstruct ? asDto(entityInstance) : 'updated' + persistClass) %>.<%= primaryKey.name %>)<% if (authenticationUsesCsrf) { %>.with(csrf())<% }%> + put(ENTITY_API_URL_ID, <%= (dtoMapstruct ? dtoInstance : 'updated' + persistClass) %>.<%= primaryKey.name %>)<% if (authenticationUsesCsrf) { %>.with(csrf())<% }%> .contentType(MediaType.APPLICATION_JSON) .content(convertObjectToJsonBytes(<% if (dtoMapstruct) { %><%= dtoInstance %><% } else { %>updated<%= persistClass %><% } %>)) ).andExpect(status().isOk) @@ -1188,7 +1211,7 @@ class <%= entityClass %>ResourceIT { <%_ if (searchEngineElasticsearch) { _%> val searchDatabaseSizeBefore = IterableUtil.sizeOf(<%= entityInstance %>SearchRepository.findAll()<%= callListBlock %>) <%_ } _%> - <%= persistInstance %>.<%= primaryKey.name %> = <%= getJavaValueGeneratorForType(primaryKey.type) %> + <%= persistInstance %>.<%= primaryKey.name %> = <%= this.getJavaValueGeneratorForType(primaryKey.type) %> <%_ if (dtoMapstruct) { _%> // Create the <%= entityClass %> @@ -1228,7 +1251,7 @@ class <%= entityClass %>ResourceIT { <%_ if (searchEngineElasticsearch) { _%> val searchDatabaseSizeBefore = IterableUtil.sizeOf(<%= entityInstance %>SearchRepository.findAll()<%= callListBlock %>) <%_ } _%> - <%= persistInstance %>.<%= primaryKey.name %> = <%= getJavaValueGeneratorForType(primaryKey.type) %> + <%= persistInstance %>.<%= primaryKey.name %> = <%= this.getJavaValueGeneratorForType(primaryKey.type) %> <%_ if (dtoMapstruct) { _%> // Create the <%= entityClass %> @@ -1238,12 +1261,12 @@ class <%= entityClass %>ResourceIT { // If url ID doesn't match entity ID, it will throw BadRequestAlertException <%_ if (!reactive) { _%> rest<%= entityClass %>MockMvc.perform( - put(ENTITY_API_URL_ID, <%= getJavaValueGeneratorForType(primaryKey.type) %>)<% if (authenticationUsesCsrf) { %>.with(csrf())<% }%> + put(ENTITY_API_URL_ID, <%= this.getJavaValueGeneratorForType(primaryKey.type) %>)<% if (authenticationUsesCsrf) { %>.with(csrf())<% }%> .contentType(MediaType.APPLICATION_JSON) .content(convertObjectToJsonBytes(<%= restInstance %>)) ).andExpect(status().isBadRequest) <%_ } else { _%> - webTestClient.put().uri(ENTITY_API_URL_ID, <%= getJavaValueGeneratorForType(primaryKey.type) %>) + webTestClient.put().uri(ENTITY_API_URL_ID, <%= this.getJavaValueGeneratorForType(primaryKey.type) %>) .contentType(MediaType.APPLICATION_JSON) .bodyValue(convertObjectToJsonBytes(<%= restInstance %>)) .exchange() @@ -1269,7 +1292,7 @@ class <%= entityClass %>ResourceIT { <%_ if (searchEngineElasticsearch) { _%> val searchDatabaseSizeBefore = IterableUtil.sizeOf(<%= entityInstance %>SearchRepository.findAll()<%= callListBlock %>); <%_ } _%> - <%= persistInstance %>.<%= primaryKey.name %> = <%= getJavaValueGeneratorForType(primaryKey.type) %> + <%= persistInstance %>.<%= primaryKey.name %> = <%= this.getJavaValueGeneratorForType(primaryKey.type) %> <%_ if (dtoMapstruct) { _%> // Create the <%= entityClass %> @@ -1316,12 +1339,12 @@ class <%= entityClass %>ResourceIT { fun partialUpdate<%= entityClass %>WithPatch() { <%_ if (!primaryKey.derived) { _%> <%_ for (field of primaryKey.fields.filter(f => !f.autoGenerateByRepository)) { _%> - <%= persistInstance %>.<%= field.fieldName %> = <%- field.javaValueGenerator %> + <%= persistInstance %>.<%= field.fieldName %> = <%- this.getJavaValueGeneratorForType(field.fieldType) %> <%_ } _%> <%_ } _%> <%= entityInstance %>Repository.<%= saveMethod %>(<%= persistInstance %>)<%= callBlock %> <% const fieldsToIncludeInPartialPatchTest = fieldsToTest.map(field => prepareFieldForPatchTest(field, () => faker.datatype.boolean())); %> - <%- include('/_global_partials_entity_/it_patch_update.partial.kt.ejs', {fields: fieldsToIncludeInPartialPatchTest, saveMethod, asEntity, callBlock, callListBlock, getPrimaryKeyValue, authenticationUsesCsrf}); -%> + <%- include('/_global_partials_entity_/it_patch_update.partial.kt.ejs', {fields: fieldsToIncludeInPartialPatchTest, saveMethod, callBlock, callListBlock}); -%> } @Test<%= transactionalAnnotation %> @@ -1329,12 +1352,12 @@ class <%= entityClass %>ResourceIT { fun fullUpdate<%= entityClass %>WithPatch() { <%_ if (!primaryKey.derived) { _%> <%_ for (field of primaryKey.fields.filter(f => !f.autoGenerateByRepository)) { _%> - <%= persistInstance %>.<%= field.fieldName %> = <%- field.javaValueGenerator %> + <%= persistInstance %>.<%= field.fieldName %> = <%- this.getJavaValueGeneratorForType(field.fieldType) %> <%_ } _%> <%_ } _%> <%= entityInstance %>Repository.<%= saveMethod %>(<%= persistInstance %>)<%= callBlock %> <% const fieldsToIncludeInFullPatchTest = fieldsToTest.map(field => prepareFieldForPatchTest(field, () => true)); %> - <%- include('/_global_partials_entity_/it_patch_update.partial.kt.ejs', {fields: fieldsToIncludeInFullPatchTest, saveMethod, asEntity, callBlock, callListBlock, getPrimaryKeyValue, authenticationUsesCsrf}); -%> + <%- include('/_global_partials_entity_/it_patch_update.partial.kt.ejs', {fields: fieldsToIncludeInFullPatchTest, saveMethod, callBlock, callListBlock}); -%> } @Test<%= transactionalAnnotation %> @@ -1344,24 +1367,24 @@ class <%= entityClass %>ResourceIT { <%_ if (searchEngineElasticsearch) { _%> val searchDatabaseSizeBefore = IterableUtil.sizeOf(<%= entityInstance %>SearchRepository.findAll()<%= callListBlock %>) <%_ } _%> - <%= asEntity(entityInstance) %>.<%= primaryKey.name %> = <%= getJavaValueGeneratorForType(primaryKey.type) %> + <%= persistInstance %>.<%= primaryKey.name %> = <%= this.getJavaValueGeneratorForType(primaryKey.type) %> <%_ if (dtoMapstruct) { _%> // Create the <%= entityClass %> - val <%= asDto(entityInstance) %> = <%= entityInstance %>Mapper.toDto(<%= asEntity(entityInstance) %>) + val <%= dtoInstance %> = <%= entityInstance %>Mapper.toDto(<%= persistInstance %>) <%_ } _%> // If the entity doesn't have an ID, it will throw BadRequestAlertException <%_ if (reactive) { _%> - webTestClient.patch().uri(ENTITY_API_URL_ID, <%= (dtoMapstruct ? asDto(entityInstance) : asEntity(entityInstance)) %>.<%= primaryKey.name %>) + webTestClient.patch().uri(ENTITY_API_URL_ID, <%= restInstance %>.<%= primaryKey.name %>) .contentType(MediaType.valueOf("application/merge-patch+json")) - .bodyValue(convertObjectToJsonBytes(<%= (dtoMapstruct ? asDto(entityInstance) : asEntity(entityInstance)) %>)) + .bodyValue(convertObjectToJsonBytes(<%= restInstance %>)) .exchange() .expectStatus().isBadRequest <%_ } else { _%> - rest<%= entityClass %>MockMvc.perform(patch(ENTITY_API_URL_ID, <%= (dtoMapstruct ? asDto(entityInstance) : asEntity(entityInstance)) %>.<%= primaryKey.name %>)<% if (authenticationUsesCsrf) { %>.with(csrf())<% }%> + rest<%= entityClass %>MockMvc.perform(patch(ENTITY_API_URL_ID, <%= restInstance %>.<%= primaryKey.name %>)<% if (authenticationUsesCsrf) { %>.with(csrf())<% }%> .contentType("application/merge-patch+json") - .content(convertObjectToJsonBytes(<%= (dtoMapstruct ? asDto(entityInstance) : asEntity(entityInstance)) %>))) + .content(convertObjectToJsonBytes(<%= restInstance %>))) .andExpect(status().isBadRequest) <%_ } _%> @@ -1384,24 +1407,24 @@ class <%= entityClass %>ResourceIT { <%_ if (searchEngineElasticsearch) { _%> val searchDatabaseSizeBefore = IterableUtil.sizeOf(<%= entityInstance %>SearchRepository.findAll()<%= callListBlock %>) <%_ } _%> - <%= asEntity(entityInstance) %>.<%= primaryKey.name %> = <%= getJavaValueGeneratorForType(primaryKey.type) %> + <%= persistInstance %>.<%= primaryKey.name %> = <%= this.getJavaValueGeneratorForType(primaryKey.type) %> <%_ if (dtoMapstruct) { _%> // Create the <%= entityClass %> - val <%= asDto(entityInstance) %> = <%= entityInstance %>Mapper.toDto(<%= asEntity(entityInstance) %>) + val <%= dtoInstance %> = <%= entityInstance %>Mapper.toDto(<%= persistInstance %>) <%_ } _%> // If url ID doesn't match entity ID, it will throw BadRequestAlertException <%_ if (reactive) { _%> - webTestClient.patch().uri(ENTITY_API_URL_ID, <%= getJavaValueGeneratorForType(primaryKey.type) %>) + webTestClient.patch().uri(ENTITY_API_URL_ID, <%= this.getJavaValueGeneratorForType(primaryKey.type) %>) .contentType(MediaType.valueOf("application/merge-patch+json")) - .bodyValue(convertObjectToJsonBytes(<%= (dtoMapstruct ? asDto(entityInstance) : asEntity(entityInstance)) %>)) + .bodyValue(convertObjectToJsonBytes(<%= restInstance %>)) .exchange() .expectStatus().isBadRequest <%_ } else { _%> - rest<%= entityClass %>MockMvc.perform(patch(ENTITY_API_URL_ID, <%= getJavaValueGeneratorForType(primaryKey.type) %>)<% if (authenticationUsesCsrf) { %>.with(csrf())<% } %> + rest<%= entityClass %>MockMvc.perform(patch(ENTITY_API_URL_ID, <%= this.getJavaValueGeneratorForType(primaryKey.type) %>)<% if (authenticationUsesCsrf) { %>.with(csrf())<% } %> .contentType("application/merge-patch+json") - .content(convertObjectToJsonBytes(<%= (dtoMapstruct ? asDto(entityInstance) : asEntity(entityInstance)) %>))) + .content(convertObjectToJsonBytes(<%= restInstance %>))) .andExpect(status().isBadRequest) <%_ } _%> @@ -1424,24 +1447,24 @@ class <%= entityClass %>ResourceIT { <%_ if (searchEngineElasticsearch) { _%> val searchDatabaseSizeBefore = IterableUtil.sizeOf(<%= entityInstance %>SearchRepository.findAll()<%= callListBlock %>); <%_ } _%> - <%= asEntity(entityInstance) %>.<%= primaryKey.name %> = <%= getJavaValueGeneratorForType(primaryKey.type) %> + <%= persistInstance %>.<%= primaryKey.name %> = <%= this.getJavaValueGeneratorForType(primaryKey.type) %> <%_ if (dtoMapstruct) { _%> // Create the <%= entityClass %> - val <%= asDto(entityInstance) %> = <%= entityInstance %>Mapper.toDto(<%= asEntity(entityInstance) %>) + val <%= dtoInstance %> = <%= entityInstance %>Mapper.toDto(<%= persistInstance %>) <%_ } _%> // If url ID doesn't match entity ID, it will throw BadRequestAlertException <%_ if (reactive) { _%> webTestClient.patch().uri(ENTITY_API_URL) .contentType(MediaType.valueOf("application/merge-patch+json")) - .bodyValue(convertObjectToJsonBytes(<%= (dtoMapstruct ? asDto(entityInstance) : asEntity(entityInstance)) %>)) + .bodyValue(convertObjectToJsonBytes(<%= restInstance %>)) .exchange() .expectStatus().isEqualTo(405) <%_ } else { _%> rest<%= entityClass %>MockMvc.perform(patch(ENTITY_API_URL)<% if (authenticationUsesCsrf) { %>.with(csrf())<% } %> .contentType("application/merge-patch+json") - .content(convertObjectToJsonBytes(<%= (dtoMapstruct ? asDto(entityInstance) : asEntity(entityInstance)) %>))) + .content(convertObjectToJsonBytes(<%= restInstance %>))) .andExpect(status().isMethodNotAllowed) <%_ } _%> @@ -1463,7 +1486,7 @@ class <%= entityClass %>ResourceIT { // Initialize the database <%_ if (!primaryKey.derived) { _%> <%_ for (field of primaryKey.fields.filter(f => !f.autoGenerateByRepository)) { _%> - <%= persistInstance %>.<%= field.fieldName %> = <%- field.javaValueGenerator %> + <%= persistInstance %>.<%= field.fieldName %> = <%- this.getJavaValueGeneratorForType(field.fieldType) %> <%_ } _%> <%_ } _%> <%= entityInstance %>Repository.<%= saveMethod %>(<%= persistInstance %>)<%= callBlock %> @@ -1503,7 +1526,7 @@ class <%= entityClass %>ResourceIT { } <%_ } _%> -<%_ if (searchEngine) { _%> +<%_ if (searchEngineAny) { _%> <%_ if (searchEngineCouchbase) { _%> @Timeout(value = 15, unit = TimeUnit.MINUTES) <%_ } _%> @@ -1513,7 +1536,7 @@ class <%= entityClass %>ResourceIT { // Initialize the database <%_ if (!primaryKey.derived) { _%> <%_ for (field of primaryKey.fields.filter(f => !f.autoGenerateByRepository)) { _%> - <%= persistInstance %>.<%= field.fieldName %> = <%- field.javaValueGenerator %> + <%= persistInstance %>.<%= field.fieldName %> = <%- this.getJavaValueGeneratorForType(field.fieldType) %> <%_ } _%> <%_ } _%> <%= persistInstance %> = <%= entityInstance %>Repository.<%= saveMethod %>(<%= persistInstance %>)<%= callBlock %> @@ -1732,13 +1755,16 @@ class <%= entityClass %>ResourceIT { private val ENTITY_API_URL: String = "/api/<%= entityApiUrl %>" private val ENTITY_API_URL_ID: String = ENTITY_API_URL + "/{<%= primaryKey.name %>}" - <%_ if (searchEngine !== false) { _%> - private val ENTITY_SEARCH_API_URL: String = "/api/_search/<%= entityApiUrl %>" + <%_ if (searchEngineAny) { _%> + private val ENTITY_SEARCH_API_URL: String = "/api/<%= entityApiUrl %>/_search/" <%_ } _%> - <%_ if (!embedded && primaryKey.hasLong) { _%> - + <%_ if (!embedded && (primaryKey.hasLong || primaryKey.hasInteger)) { _%> private val random: Random = Random() - private val count: AtomicLong = AtomicLong(random.nextInt().toLong() + ( 2 * Integer.MAX_VALUE )) + <%_ if (primaryKey.hasLong) { _%> + private val longCount: AtomicLong = AtomicLong(random.nextInt() + ( 2 * Integer.MAX_VALUE )) + <%_ } else if (primaryKey.hasInteger) { _%> + private val intCount: AtomicInteger = AtomicInteger(random.nextInt() + ( 2 * Short.MAX_VALUE )) + <%_ } _%> <%_ } _%> @@ -1800,17 +1826,17 @@ class <%= entityClass %>ResourceIT { <%= otherEntityName %>.<%= primaryKey.name %> = "fixed-id-for-tests" <%_ } _%> <%_ } else { _%> - val <%= otherEntityName %>: <%= asEntity(otherEntityNameCapitalized) %> + val <%= otherEntityName %>: <%= relationship.otherEntity.persistClass %> <%_ if (databaseTypeSql && !reactive) { _%> <%_ if (!isUsingMapsId || fieldStatus !== "UPDATED_") { _%> - if (findAll(em, <%= asEntity(otherEntityNameCapitalized) %>::class).isEmpty()) { + if (findAll(em, <%= relationship.otherEntity.persistClass %>::class).isEmpty()) { <%_ } _%> <%= otherEntityName %> = <%= createEntityPrefix %><%= otherEntityNameCapitalized %>ResourceIT.create<% if (fieldStatus === 'UPDATED_') { %>Updated<% } %>Entity(<% if (databaseTypeSql) { %>em<% } %>)<%= createEntityPostfix %> em.persist(<%= otherEntityName %>) em.flush() <%_ if (!isUsingMapsId || fieldStatus !== "UPDATED_") { _%> } else { - <%= otherEntityName %> = findAll(em, <%= asEntity(otherEntityNameCapitalized) %>::class)[0] + <%= otherEntityName %> = findAll(em, <%= relationship.otherEntity.persistClass %>::class)[0] } <%_ } _%> <%_ } else { _%> diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/config/JHipsterBlockHoundIntegration.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/config/JHipsterBlockHoundIntegration.kt.ejs index f34c9fe3b..03831529b 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/config/JHipsterBlockHoundIntegration.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/config/JHipsterBlockHoundIntegration.kt.ejs @@ -23,36 +23,39 @@ import reactor.blockhound.integration.BlockHoundIntegration class JHipsterBlockHoundIntegration: BlockHoundIntegration { override fun applyTo(builder: BlockHound.Builder) { - builder.allowBlockingCallsInside("org.springframework.test.web.reactive.server.DefaultWebTestClient\$DefaultRequestBodyUriSpec", "exchange") - - // Workaround until https://github.com/reactor/reactor-core/issues/2137 is fixed - builder.allowBlockingCallsInside("reactor.core.scheduler.BoundedElasticScheduler\$BoundedState", "dispose") - builder.allowBlockingCallsInside("reactor.core.scheduler.BoundedElasticScheduler", "schedule") builder.allowBlockingCallsInside("org.springframework.validation.beanvalidation.SpringValidatorAdapter", "validate") builder.allowBlockingCallsInside("<%= packageName %>.service.MailService", "sendEmailFromTemplate") builder.allowBlockingCallsInside("<%= packageName %>.security.DomainUserDetailsService", "createSpringSecurityUser") <%_ if (databaseTypeCouchbase) { _%> builder.allowBlockingCallsInside("org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter", "read") - builder.allowBlockingCallsInside("com.github.couchmove.repository.CouchbaseRepositoryImpl", "lambda\$query\$2") - builder.allowBlockingCallsInside("com.github.couchmove.repository.CouchbaseRepositoryImpl", "lambda\$importFtsIndex\$1") -<%_} _%> -<%_ if (prodDatabaseTypeMysql || prodDatabaseTypeMariadb) { _%> + builder.allowBlockingCallsInside("com.github.couchmove.repository.CouchbaseRepositoryImpl", "lambda$query$2") + builder.allowBlockingCallsInside("com.github.couchmove.repository.CouchbaseRepositoryImpl", "lambda$importFtsIndex$1") +<%_ } _%> +<%_ if (prodDatabaseTypeMariadb) { _%> builder.allowBlockingCallsInside("org.mariadb.r2dbc.message.client.HandshakeResponse", "writeConnectAttributes") builder.allowBlockingCallsInside("org.mariadb.r2dbc.client.MariadbPacketDecoder", "decode") -<%_} _%> -<%_ if (devDatabaseTypeMssql || prodDatabaseTypeMssql) { _%> + builder.allowBlockingCallsInside("org.mariadb.r2dbc.client.SimpleClient", "lambda$receive$18") +<%_ } _%> +<%_ if (prodDatabaseTypeMssql) { _%> builder.allowBlockingCallsInside("io.r2dbc.mssql.client.ssl.TdsSslHandler", "createSslHandler") -<%_} _%> +<%_ } _%> <%_ if (searchEngineElasticsearch) { _%> builder.allowBlockingCallsInside("org.elasticsearch.client.indices.CreateIndexRequest", "settings") -<%_} _%> - - // v8 entries +<%_ } _%> +<%_ if (databaseTypeCassandra) { _%> + builder.allowBlockingCallsInside("io.netty.util.NetUtil", "") +<%_ } _%> +<%_ if (databaseTypeNeo4j) { _%> + <%_ if (databaseMigrationLiquibase) { _%> + builder.allowBlockingCallsInside("io.netty.util.concurrent.DefaultPromise", "awaitUninterruptibly") + <%_ } _%> + builder.allowBlockingCallsInside("org.springframework.data.neo4j.core.PropertyFilterSupport", "getInputProperties") +<%_ } _%> +<%_ if (messageBrokerPulsar) { _%> + builder.allowBlockingCallsInside("com.scurrilous.circe.utils.NativeUtils", "loadLibraryFromJar") +<%_ } _%> builder.allowBlockingCallsInside("org.springframework.web.reactive.result.method.InvocableHandlerMethod", "invoke") builder.allowBlockingCallsInside("org.springdoc.core.service.OpenAPIService", "build") builder.allowBlockingCallsInside("org.springdoc.core.service.AbstractRequestService", "build") - - // jhipster-needle-blockhound-integration - JHipster will add additional gradle plugins here } - } diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/config/TestContainersSpringContextCustomizerFactory.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/config/TestContainersSpringContextCustomizerFactory.kt.ejs index c19c0da3b..38d92a7aa 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/config/TestContainersSpringContextCustomizerFactory.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/config/TestContainersSpringContextCustomizerFactory.kt.ejs @@ -20,14 +20,6 @@ package <%= packageName %>.config import java.util.* -<%_ if (databaseTypeCassandra) { _%> -import org.cassandraunit.CQLDataLoader -<%_ } _%> -<%_ if (databaseTypeSql) { _%> -import java.util.Arrays -import tech.jhipster.config.JHipsterConstants -<%_ } _%> - import org.slf4j.Logger import org.slf4j.LoggerFactory import org.springframework.beans.factory.config.ConfigurableListableBeanFactory @@ -39,45 +31,21 @@ import org.springframework.test.context.ContextCustomizer import org.springframework.test.context.ContextCustomizerFactory import org.springframework.beans.factory.support.DefaultListableBeanFactory import org.springframework.boot.test.util.TestPropertyValues -<%_ if (databaseTypeCassandra) { _%> -import org.testcontainers.containers.CassandraContainer -<%_ } _%> -<%_ if (messageBrokerKafka) { _%> -import org.testcontainers.containers.KafkaContainer -<%_ } _%> class TestContainersSpringContextCustomizerFactory: ContextCustomizerFactory { private val log = LoggerFactory.getLogger(TestContainersSpringContextCustomizerFactory::class.java) companion object { - <%_ if (cacheProviderRedis) { _%> - private var redisBean: RedisTestContainer? = null - <%_ } _%> - <%_ if (messageBrokerKafka) { _%> - private var kafkaBean: KafkaTestContainer? = null - <%_ } _%> <%_ if (databaseTypeMongodb) { _%> private var mongoDbBean: MongoDbTestContainer? = null <%_ } _%> - <%_ if (databaseTypeCassandra) { _%> - private var cassandraBean: CassandraTestContainer? = null - <%_ } _%> <%_ if (searchEngineElasticsearch) { _%> private var elasticsearchBean: ElasticsearchTestContainer? = null <%_ } _%> <%_ if (databaseTypeCouchbase || searchEngineCouchbase) { _%> private var couchbaseBean: CouchbaseTestContainer? = null <%_ } _%> - <%_ if (databaseTypeNeo4j) { _%> - private var neo4jBean: Neo4jTestContainer? = null - <%_ } _%> - <%_ if (devDatabaseTypeMysql || devDatabaseTypeMariadb || devDatabaseTypeMssql || devDatabaseTypePostgres) { _%> - private var devTestContainer: SqlTestContainer? = null - <%_ } _%> - <%_ if (prodDatabaseTypeMysql || prodDatabaseTypeMariadb || prodDatabaseTypeMssql || prodDatabaseTypePostgresql) { _%> - private var prodTestContainer: SqlTestContainer? = null - <%_ } _%> } override fun createContextCustomizer( @@ -119,133 +87,6 @@ class TestContainersSpringContextCustomizerFactory: ContextCustomizerFactory { mongoDbBean?.let { testValues = testValues.and("spring.data.mongodb.uri=" + it.getMongoDBContainer().replicaSetUrl) } - } -<%_ } _%> -<%_ if (cacheProviderRedis) { _%> - val redisAnnotation = AnnotatedElementUtils.findMergedAnnotation(testClass, EmbeddedRedis::class.java) - if (null != redisAnnotation) { - log.debug("detected the EmbeddedRedis annotation on class {}", testClass.name) - log.info("Warming up the redis database") - if (null == redisBean) { - redisBean = beanFactory.createBean(RedisTestContainer::class.java) - beanFactory.registerSingleton(RedisTestContainer::class.java.name, redisBean) - // (beanFactory as (DefaultListableBeanFactory)).registerDisposableBean(RedisTestContainer::class.java.name, redisBean) - } - redisBean?.let { - testValues = testValues.and("jhipster.cache.redis.server=redis://" + it.getRedisContainer()?.containerIpAddress + ":" + it.getRedisContainer()?.getMappedPort(6379)) - } - } -<%_ } _%> -<%_ if (databaseTypeSql) { _%> - val sqlAnnotation = AnnotatedElementUtils.findMergedAnnotation(testClass, EmbeddedSQL::class.java) - if (null != sqlAnnotation) { - log.debug("detected the EmbeddedSQL annotation on class {}", testClass.name) - log.info("Warming up the sql database") - <%_ if (devDatabaseTypeMysql || devDatabaseTypeMariadb || devDatabaseTypeMssql || devDatabaseTypePostgres) { _%> - if (context.environment.activeProfiles.contains("test${JHipsterConstants.SPRING_PROFILE_DEVELOPMENT}")) { - if (null == devTestContainer) { - try { - val containerClass = Class.forName("${javaClass.packageName}.<% if (devDatabaseTypeMysql) { %>Mysql<% } else if (devDatabaseTypeMariadb) { %>Mariadb<% } else if (devDatabaseTypeMssql) { %>MsSql<% } else if (devDatabaseTypePostgres) { %>PostgreSql<% } %>TestContainer") as (Class) - devTestContainer = beanFactory.createBean(containerClass) - beanFactory.registerSingleton(containerClass.name, devTestContainer) - // (beanFactory as DefaultListableBeanFactory).registerDisposableBean(containerClass.name, devTestContainer) - } catch (e: ClassNotFoundException) { - throw RuntimeException(e) - } - } - devTestContainer?.let { -<%_ if (reactive) { _%> - testValues = testValues.and("spring.r2dbc.url=" + it.getTestContainer().jdbcUrl.replace("jdbc", "r2dbc")<% if (devDatabaseTypeMysql) { %>.replace("mysql", "mariadb")<% } else if (devDatabaseTypeMssql) { %>.replace("encrypt=false", "")<% } %> + "<%- prodDatabaseExtraOptions %>") - testValues = testValues.and("spring.r2dbc.username=" + it.getTestContainer().username) - testValues = testValues.and("spring.r2dbc.password=" + it.getTestContainer().password) - testValues = testValues.and("spring.liquibase.url=" + it.getTestContainer().jdbcUrl + "<%- prodDatabaseExtraOptions %>" ) -<%_ } else { _%> - testValues = testValues.and("spring.datasource.url=" + it.getTestContainer().jdbcUrl + "<%- prodDatabaseExtraOptions %>") - testValues = testValues.and("spring.datasource.username=" + it.getTestContainer().username) - testValues = testValues.and("spring.datasource.password=" + it.getTestContainer().password) -<%_ } _%> - } - } -<%_ } _%> -<%_ if (prodDatabaseTypeMysql || prodDatabaseTypeMariadb || prodDatabaseTypeMssql || prodDatabaseTypePostgresql) { _%> - if (context.environment.activeProfiles.asList().contains("test${JHipsterConstants.SPRING_PROFILE_PRODUCTION}")) { - if (null == prodTestContainer) { - try { - val containerClass = Class.forName("${javaClass.packageName}.<% if (prodDatabaseTypeMysql) { %>Mysql<% } else if (prodDatabaseTypeMariadb) { %>Mariadb<% } else if (prodDatabaseTypeMssql) { %>MsSql<% } else if (prodDatabaseTypePostgresql) { %>PostgreSql<% } %>TestContainer") as (Class) - prodTestContainer = beanFactory.createBean(containerClass) - beanFactory.registerSingleton(containerClass.name, prodTestContainer) - // (beanFactory as (DefaultListableBeanFactory)).registerDisposableBean(containerClass.name, prodTestContainer) - } catch (e: ClassNotFoundException) { - throw RuntimeException(e) - } - } - prodTestContainer?.let { -<%_ if (reactive) { _%> - testValues = testValues.and("spring.r2dbc.url=" + it.getTestContainer().jdbcUrl.replace("jdbc", "r2dbc")<% if (prodDatabaseTypeMysql) { %>.replace("mysql", "mariadb")<% } else if (prodDatabaseTypeMssql) { %>.replace("encrypt=false", "")<% } %> + "<%- prodDatabaseExtraOptions %>") - testValues = testValues.and("spring.r2dbc.username=" + it.getTestContainer().username) - testValues = testValues.and("spring.r2dbc.password=" + it.getTestContainer().password) - testValues = testValues.and("spring.liquibase.url=" + it.getTestContainer().jdbcUrl + "<%- prodDatabaseExtraOptions %>") -<%_ } else { _%> - testValues = testValues.and("spring.datasource.url=" + it.getTestContainer().jdbcUrl + "<%- prodDatabaseExtraOptions %>") - testValues = testValues.and("spring.datasource.username=" + it.getTestContainer().username) - testValues = testValues.and("spring.datasource.password=" + it.getTestContainer().password) -<%_ } _%> - } - } -<%_ } _%> - } -<%_ } _%> - -<%_ if (databaseTypeCassandra) { _%> - val cassandraAnnotation = AnnotatedElementUtils.findMergedAnnotation(testClass, EmbeddedCassandra::class.java) - if (null != cassandraAnnotation) { - log.debug("detected the EmbeddedCassandra annotation on class {}", testClass.name) - log.info("Warming up the cassandra database") - if (null == cassandraBean) { - cassandraBean = beanFactory.createBean(CassandraTestContainer::class.java) - beanFactory.registerSingleton(CassandraTestContainer::class.java.name, cassandraBean) - // (beanFactory as (DefaultListableBeanFactory)).registerDisposableBean(CassandraTestContainer::class.java.name, cassandraBean) - } - cassandraBean?.let { - testValues = testValues.and("spring.data.cassandra.port=" + it.getCassandraContainer().getMappedPort(CassandraContainer.CQL_PORT)) - .and("spring.data.cassandra.contact-points=" + it.getCassandraContainer().host) - .and("spring.data.cassandra.keyspace-name=" + CQLDataLoader.DEFAULT_KEYSPACE_NAME) - .and("spring.data.cassandra.local-datacenter=" + it.getCassandraContainer().cluster.metadata.allHosts.iterator().next().datacenter) - .and("spring.data.cassandra.cluster-name=" + it.getCassandraContainer().cluster.metadata.clusterName) - } - } -<%_ } _%> -<%_ if (databaseTypeNeo4j) { _%> - val neo4jAnnotation = AnnotatedElementUtils.findMergedAnnotation(testClass, EmbeddedNeo4j::class.java) - if (null != neo4jAnnotation) { - log.debug("detected the EmbeddedNeo4j annotation on class {}", testClass.name) - log.info("Warming up the neo4j database") - if (null == neo4jBean) { - neo4jBean = beanFactory.createBean(Neo4jTestContainer::class.java) - beanFactory.registerSingleton(Neo4jTestContainer::class.java.name, neo4jBean) - // (beanFactory as (DefaultListableBeanFactory)).registerDisposableBean(Neo4jTestContainer::class.java.name, neo4jBean) - } - neo4jBean?.let { - testValues = - testValues.and( - "spring.neo4j.uri=" + it.getNeo4jContainer()?.boltUrl - ) - } - } -<%_ } _%> -<%_ if (messageBrokerKafka) { _%> - val kafkaAnnotation = AnnotatedElementUtils.findMergedAnnotation(testClass, EmbeddedKafka::class.java) - if (null != kafkaAnnotation) { - log.debug("detected the EmbeddedKafka annotation on class {}", testClass.name) - log.info("Warming up the kafka broker") - if (null == kafkaBean) { - kafkaBean = beanFactory.createBean(KafkaTestContainer::class.java) - beanFactory.registerSingleton(KafkaTestContainer::class.java.name, kafkaBean) - // (beanFactory as (DefaultListableBeanFactory)).registerDisposableBean(KafkaTestContainer::class.java.name, kafkaBean) - } - kafkaBean?.let { - testValues = testValues.and("spring.cloud.stream.kafka.binder.brokers=" + it.getKafkaContainer().host + ':' + it.getKafkaContainer().getMappedPort(KafkaContainer.KAFKA_PORT)) - } } <%_ } _%> <%_ if (searchEngineElasticsearch) { _%> @@ -269,5 +110,4 @@ class TestContainersSpringContextCustomizerFactory: ContextCustomizerFactory { testValues.applyTo(context) } } - } diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/AuthenticationIntegrationTest.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/AuthenticationIntegrationTest.kt.ejs new file mode 100644 index 000000000..ffc4f9b18 --- /dev/null +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/AuthenticationIntegrationTest.kt.ejs @@ -0,0 +1,76 @@ +package <%= packageName %>.security.jwt + +import java.lang.annotation.ElementType +import java.lang.annotation.Retention +import java.lang.annotation.RetentionPolicy +import java.lang.annotation.Target + +import org.springframework.test.annotation.DirtiesContext + +import <%= packageName %>.config.SecurityConfiguration +import <%= packageName %>.config.SecurityJwtConfiguration +import <%= packageName %>.config.WebConfigurer +import <%= packageName %>.management.SecurityMetersService +<%_ if (!applicationTypeMicroservice) { _%> +import <%= packageName %>.web.rest.AuthenticateController +<%_ } _%> + +import tech.jhipster.config.JHipsterProperties + +<%_ if (reactive) { %> +import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest +import org.springframework.context.annotation.ComponentScan +import org.springframework.context.annotation.Import + +<%_ } else { _%> +import org.springframework.boot.test.context.SpringBootTest + +<%_ } _%> +@Target(AnnotationTarget.CLASS) +@Retention(AnnotationRetention.RUNTIME) +<%_ if (reactive) { %> +@Import( + [ + JHipsterProperties::class, + WebConfigurer::class, + SecurityConfiguration::class, + SecurityJwtConfiguration::class, + SecurityMetersService::class, + JwtAuthenticationTestUtils::class, + ] +) +@WebFluxTest( +<%_ if (applicationTypeMicroservice) { _%> + controllers = [ TestAuthenticationResource::class ], +<%_ } else { _%> + controllers = [ AuthenticateController::class ], +<%_ } _%> + properties = [ + "jhipster.security.authentication.jwt.base64-secret=fd54a45s65fds737b9aafcb3412e07ed99b267f33413274720ddbb7f6c5e64e9f14075f2d7ed041592f0b7657baf8", + "jhipster.security.authentication.jwt.token-validity-in-seconds=60000", + ] +) +@ComponentScan({}) +<%_ } else { _%> +@SpringBootTest( +<%_ if (!applicationTypeMicroservice) { _%> + properties = [ + "jhipster.security.authentication.jwt.base64-secret=fd54a45s65fds737b9aafcb3412e07ed99b267f33413274720ddbb7f6c5e64e9f14075f2d7ed041592f0b7657baf8", + "jhipster.security.authentication.jwt.token-validity-in-seconds=60000", + ], +<%_ } _%> + classes = { + JHipsterProperties::class, + WebConfigurer::class, + SecurityConfiguration::class, + SecurityJwtConfiguration::class, + SecurityMetersService::class, +<%_ if (!applicationTypeMicroservice) { _%> + AuthenticateController::class, +<%_ } _%> + JwtAuthenticationTestUtils::class + } +) +<%_ } _%> +@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) +annotation class AuthenticationIntegrationTest diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/JwtAuthenticationTestUtils.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/JwtAuthenticationTestUtils.kt.ejs new file mode 100644 index 000000000..98d62c1c9 --- /dev/null +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/JwtAuthenticationTestUtils.kt.ejs @@ -0,0 +1,132 @@ +package <%= packageName %>.security.jwt + +import <%= packageName %>.security.SecurityUtils.AUTHORITIES_KEY +import <%= packageName %>.security.SecurityUtils.JWT_ALGORITHM + +import com.nimbusds.jose.jwk.source.ImmutableSecret +import com.nimbusds.jose.util.Base64 +import io.micrometer.core.instrument.MeterRegistry +import io.micrometer.core.instrument.simple.SimpleMeterRegistry +import java.time.Instant +import java.util.Collections +import javax.crypto.Mac +import javax.crypto.SecretKey +import javax.crypto.spec.SecretKeySpec +import org.springframework.context.annotation.Bean +import org.springframework.security.crypto.codec.Hex +import org.springframework.security.oauth2.jwt.JwsHeader +import org.springframework.security.oauth2.jwt.JwtClaimsSet +import org.springframework.security.oauth2.jwt.JwtEncoder +import org.springframework.security.oauth2.jwt.JwtEncoderParameters +import org.springframework.security.oauth2.jwt.NimbusJwtEncoder +<%_ if (!reactive) { _%> +import org.springframework.web.servlet.handler.HandlerMappingIntrospector +<%_ } _%> +<%_ if (reactive && generateBuiltInUserEntity) { _%> +import <%= packageName %>.repository.UserRepository +<%_ } _%> +<%_ if (reactive) { _%> +import org.springframework.boot.test.mock.mockito.MockBean +import org.springframework.security.core.userdetails.ReactiveUserDetailsService +<%_ } _%> + +class JwtAuthenticationTestUtils { +<%_ if (!reactive) { _%> + + @Bean + private fun mvcHandlerMappingIntrospector(): HandlerMappingIntrospector { + return HandlerMappingIntrospector() + } +<%_ } _%> +<%_ if (applicationTypeMicroservice && !reactive) { _%> + + @Bean + private fun authenticationResource(): TestAuthenticationResource { + return TestAuthenticationResource() + } +<%_ } _%> + + @Bean + private fun meterRegistry(): MeterRegistry { + return SimpleMeterRegistry() + } +<%_ if (reactive) { _%> + + @MockBean + private lateinit var userDetailsService: ReactiveUserDetailsService +<%_ } _%> +<%_ if (reactive && generateBuiltInUserEntity) { _%> + + @MockBean + private lateinit var userRepository: UserRepository +<%_ } _%> + + companion object { + <%_ if (!reactive) { _%> + const val BEARER = "Bearer " + <%_ } _%> + + fun createValidToken(jwtKey: String): String { + return createValidTokenForUser(jwtKey, "anonymous") + } + + fun createValidTokenForUser(jwtKey: String, user: String?): String { + val encoder = jwtEncoder(jwtKey) + val now = Instant.now() + val claims = JwtClaimsSet + .builder() + .issuedAt(now) + .expiresAt(now.plusSeconds(60)) + .subject(user) + .claims { customClain: MutableMap -> customClain[SecurityUtils.AUTHORITIES_KEY] = listOf("ROLE_ADMIN") } + .build() + val jwsHeader = JwsHeader.with(SecurityUtils.JWT_ALGORITHM).build() + return encoder.encode(JwtEncoderParameters.from(jwsHeader, claims)).tokenValue + } + + fun createTokenWithDifferentSignature(): String { + val encoder = jwtEncoder("Xfd54a45s65fds737b9aafcb3412e07ed99b267f33413274720ddbb7f6c5e64e9f14075f2d7ed041592f0b7657baf8") + val now = Instant.now() + val past = now.plusSeconds(60) + val claims = JwtClaimsSet.builder().issuedAt(now).expiresAt(past).subject("anonymous").build() + val jwsHeader = JwsHeader.with(SecurityUtils.JWT_ALGORITHM).build() + return encoder.encode(JwtEncoderParameters.from(jwsHeader, claims)).tokenValue + } + + fun createExpiredToken(jwtKey: String): String { + val encoder = jwtEncoder(jwtKey) + val now = Instant.now() + val past = now.minusSeconds(600) + val claims = JwtClaimsSet.builder().issuedAt(past).expiresAt(past.plusSeconds(1)).subject("anonymous").build() + val jwsHeader = JwsHeader.with(SecurityUtils.JWT_ALGORITHM).build() + return encoder.encode(JwtEncoderParameters.from(jwsHeader, claims)).tokenValue + } + + @Throws(Exception::class) + fun createInvalidToken(jwtKey: String): String { + return createValidToken(jwtKey).substring(1) + } + + @Throws(Exception::class) + fun createSignedInvalidJwt(jwtKey: String): String { + return calculateHMAC("foo", jwtKey) + } + + private fun jwtEncoder(jwtKey: String): JwtEncoder { + return NimbusJwtEncoder(ImmutableSecret(getSecretKey(jwtKey))) + } + + private fun getSecretKey(jwtKey: String): SecretKey { + val keyBytes = Base64.from(jwtKey).decode() + return SecretKeySpec(keyBytes, 0, keyBytes.size, SecurityUtils.JWT_ALGORITHM.getName()) + } + + @Throws(Exception::class) + private fun calculateHMAC(data: String, key: String): String { + val secretKeySpec = SecretKeySpec(Base64.from(key).decode(), "HmacSHA512") + val mac = Mac.getInstance("HmacSHA512") + mac.init(secretKeySpec) + return String(Hex.encode(mac.doFinal(data.toByteArray()))) + } + } +} diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/TestAuthenticationResource.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/TestAuthenticationResource.kt.ejs new file mode 100644 index 000000000..ae822ec6d --- /dev/null +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/TestAuthenticationResource.kt.ejs @@ -0,0 +1,18 @@ +package <%= packageName %>.security.jwt + +import org.springframework.web.bind.annotation.* + +/** + * REST controller for managing testing authentication token. + */ +@RestController +@RequestMapping("/api") +class TestAuthenticationResource { + /** + * {@code GET /authenticate} : check if the authentication token correctly validates + * + * @return ok. + */ + @GetMapping("/authenticate") + fun isAuthenticated() = "isOk" +} diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/TokenAuthenticationIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/TokenAuthenticationIT.kt.ejs new file mode 100644 index 000000000..57acb58d6 --- /dev/null +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/TokenAuthenticationIT.kt.ejs @@ -0,0 +1,96 @@ +package <%= packageName %>.security.jwt + +import <%= packageName %>.security.jwt.JwtAuthenticationTestUtils.* + +import org.junit.jupiter.api.Test +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.beans.factory.annotation.Value + +<%_ if (reactive) { %> +import <%= packageName %>.IntegrationTest +import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient +import org.springframework.test.web.reactive.server.WebTestClient + +@AutoConfigureWebTestClient(timeout = IntegrationTest.DEFAULT_TIMEOUT) +<%_ } else { _%> +import org.springframework.http.HttpHeaders.AUTHORIZATION +import org.springframework.test.web.servlet.result.MockMvcResultMatchers.* + +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc +import org.springframework.test.web.servlet.MockMvc +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders + +@AutoConfigureMockMvc +<%_ } _%> +@AuthenticationIntegrationTest +class TokenAuthenticationIT { + + @Autowired +<%_ if (reactive) { _%> + private lateinit var webTestClient: WebTestClient +<%_ } else { _%> + private lateinit var mvc: MockMvc +<%_ } _%> + + @Value("\${jhipster.security.authentication.jwt.base64-secret}") + private lateinit var jwtKey: String + + @Test + @Throws(Exception::class) + fun testLoginWithValidToken() { + expectOk(JwtAuthenticationTestUtils.createValidToken(jwtKey)) + } + + @Test + @Throws(Exception::class) + fun testReturnFalseWhenJWThasInvalidSignature() { + expectUnauthorized(JwtAuthenticationTestUtils.createTokenWithDifferentSignature()) + } + + @Test + @Throws(Exception::class) + fun testReturnFalseWhenJWTisMalformed() { + expectUnauthorized(JwtAuthenticationTestUtils.createSignedInvalidJwt(jwtKey)) + } + + @Test + @Throws(Exception::class) + fun testReturnFalseWhenJWTisExpired() { + expectUnauthorized(JwtAuthenticationTestUtils.createExpiredToken(jwtKey)) + } +<%_ if (reactive) { %> + + private fun expectOk(token: String) { + webTestClient + .get() + .uri("/api/authenticate") + .headers { headers -> headers.setBearerAuth(token) } + .exchange() + .expectStatus() + .isOk() + } + + private fun expectUnauthorized(token: String) { + webTestClient + .get() + .uri("/api/authenticate") + .headers{ headers -> headers.setBearerAuth(token) } + .exchange() + .expectStatus() + .isUnauthorized() + } +<%_ } else { _%> + + @Throws(Exception::class) + private fun expectOk(token: String) { + mvc.perform(MockMvcRequestBuilders.get("/api/authenticate").header(HttpHeaders.AUTHORIZATION, JwtAuthenticationTestUtils.BEARER + token)).andExpect(MockMvcResultMatchers.status().isOk()) + } + + @Throws(Exception::class) + private fun expectUnauthorized(token: String) { + mvc + .perform(MockMvcRequestBuilders.get("/api/authenticate").header(HttpHeaders.AUTHORIZATION, JwtAuthenticationTestUtils.BEARER + token)) + .andExpect(MockMvcResultMatchers.status().isUnauthorized()) + } +<%_ } _%> +} diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/TokenAuthenticationSecurityMetersIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/TokenAuthenticationSecurityMetersIT.kt.ejs index 708953698..05a44101f 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/TokenAuthenticationSecurityMetersIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/TokenAuthenticationSecurityMetersIT.kt.ejs @@ -18,179 +18,112 @@ -%> package <%= packageName %>.security.jwt -import <%= packageName %>.security.ANONYMOUS -import <%= packageName %>.management.SecurityMetersService - -import io.jsonwebtoken.Jwts -import io.jsonwebtoken.SignatureAlgorithm -import io.jsonwebtoken.io.Decoders -import io.jsonwebtoken.security.Keys +import <%= packageName %>.security.jwt.JwtAuthenticationTestUtils.* +import org.assertj.core.api.Assertions.assertThat import io.micrometer.core.instrument.Counter import io.micrometer.core.instrument.MeterRegistry -import io.micrometer.core.instrument.simple.SimpleMeterRegistry - -import org.junit.jupiter.api.BeforeEach +import java.util.Collection import org.junit.jupiter.api.Test +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.beans.factory.annotation.Value + +<%_ if (reactive) { _%> +import <%= packageName %>.IntegrationTest +import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient +import org.springframework.test.web.reactive.server.WebTestClient + +@AutoConfigureWebTestClient(timeout = IntegrationTest.DEFAULT_TIMEOUT) +<%_ } else { _%> +import org.springframework.http.HttpHeaders.AUTHORIZATION +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc +import org.springframework.test.web.servlet.MockMvc +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders + +@AutoConfigureMockMvc +<%_ } _%> +@AuthenticationIntegrationTest +class TokenAuthenticationSecurityMetersIT { + + companion object { + private const val INVALID_TOKENS_METER_EXPECTED_NAME = "security.authentication.invalid-tokens" + } -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken -import org.springframework.security.core.Authentication -import org.springframework.security.core.GrantedAuthority -import org.springframework.security.core.authority.SimpleGrantedAuthority -import org.springframework.test.util.ReflectionTestUtils -import tech.jhipster.config.JHipsterProperties - -import java.security.Key -import java.util.Date - -import org.assertj.core.api.Assertions.assertThat - -private const val ONE_MINUTE = 60000 -private const val INVALID_TOKENS_METER_EXPECTED_NAME = "security.authentication.invalid-tokens" + @Autowired +<%_ if (reactive) { _%> + private lateinit var webTestClient: WebTestClient +<%_ } else { _%> + private lateinit var mvc: MockMvc +<%_ } _%> -class TokenProviderSecurityMetersTests { + @Value("\${jhipster.security.authentication.jwt.base64-secret}") + private lateinit var jwtKey: String + @Autowired private lateinit var meterRegistry: MeterRegistry - private lateinit var tokenProvider: TokenProvider - - - @BeforeEach - fun setup() { - val jHipsterProperties = JHipsterProperties() - val base64Secret = "fd54a45s65fds737b9aafcb3412e07ed99b267f33413274720ddbb7f6c5e64e9f14075f2d7ed041592f0b7657baf8" - jHipsterProperties.security.authentication.jwt.base64Secret = base64Secret - - meterRegistry = SimpleMeterRegistry() - - val securityMetersService = SecurityMetersService(meterRegistry) - - tokenProvider = TokenProvider(jHipsterProperties, securityMetersService) - val key = Keys.hmacShaKeyFor(Decoders.BASE64.decode(base64Secret)) - - ReflectionTestUtils.setField(tokenProvider, "key", key) - ReflectionTestUtils.setField(tokenProvider, "tokenValidityInMilliseconds", ONE_MINUTE) - } - @Test + @Throws(Exception::class) fun testValidTokenShouldNotCountAnything() { val counters = meterRegistry.find(INVALID_TOKENS_METER_EXPECTED_NAME).counters() - - assertThat(aggregate(counters)).isZero() - - val validToken = createValidToken() - - tokenProvider.validateToken(validToken) - - assertThat(aggregate(counters)).isZero() + val count = aggregate(counters) + tryToAuthenticate(JwtAuthenticationTestUtils.createValidToken(jwtKey)) + Assertions.assertThat(aggregate(counters)).isEqualTo(count) } @Test + @Throws(Exception::class) fun testTokenExpiredCount() { - assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME) - .tag("cause", "expired") - .counter().count()).isZero() - - val expiredToken = createExpiredToken() - - tokenProvider.validateToken(expiredToken) - - assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME) - .tag("cause", "expired") - .counter().count()).isEqualTo(1.0) - } - - @Test - fun testTokenUnsupportedCount() { - assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME) - .tag("cause", "unsupported") - .counter().count()).isZero() - - val unsupportedToken = createUnsupportedToken() - - tokenProvider.validateToken(unsupportedToken) - - assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME) - .tag("cause", "unsupported") - .counter().count()).isEqualTo(1.0) + val count = meterRegistry[INVALID_TOKENS_METER_EXPECTED_NAME].tag("cause", "expired").counter().count() + tryToAuthenticate(JwtAuthenticationTestUtils.createExpiredToken(jwtKey)) + Assertions.assertThat(meterRegistry[INVALID_TOKENS_METER_EXPECTED_NAME].tag("cause", "expired").counter().count()).isEqualTo(count + 1) } @Test + @Throws(Exception::class) fun testTokenSignatureInvalidCount() { - assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME) - .tag("cause", "invalid-signature") - .counter().count()).isZero() - - val tokenWithDifferentSignature = createTokenWithDifferentSignature() - - tokenProvider.validateToken(tokenWithDifferentSignature) - - assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME) - .tag("cause", "invalid-signature") - .counter().count()).isEqualTo(1.0) + val count = meterRegistry[INVALID_TOKENS_METER_EXPECTED_NAME].tag("cause", "invalid-signature").counter().count() + tryToAuthenticate(JwtAuthenticationTestUtils.createTokenWithDifferentSignature()) + Assertions.assertThat(meterRegistry[INVALID_TOKENS_METER_EXPECTED_NAME].tag("cause", "invalid-signature").counter().count()) + .isEqualTo(count + 1) } @Test + @Throws(Exception::class) fun testTokenMalformedCount() { - assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME) - .tag("cause", "malformed") - .counter().count()).isZero() - - val malformedToken = createMalformedToken() - - tokenProvider.validateToken(malformedToken) - - assertThat(meterRegistry.get(INVALID_TOKENS_METER_EXPECTED_NAME) - .tag("cause", "malformed") - .counter().count()).isEqualTo(1.0) - } - - private fun createValidToken(): String { - val authentication = createAuthentication() - - return tokenProvider.createToken(authentication, false) - } - - private fun createExpiredToken(): String { - ReflectionTestUtils.setField(tokenProvider, "tokenValidityInMilliseconds", -ONE_MINUTE) - - val authentication = createAuthentication() - - return tokenProvider.createToken(authentication, false) - } - - private fun createAuthentication(): Authentication { - val authorities = listOf(SimpleGrantedAuthority(ANONYMOUS)) - return UsernamePasswordAuthenticationToken("anonymous", "anonymous", authorities) + val count = meterRegistry[INVALID_TOKENS_METER_EXPECTED_NAME].tag("cause", "malformed").counter().count() + tryToAuthenticate(JwtAuthenticationTestUtils.createSignedInvalidJwt(jwtKey)) + Assertions.assertThat(meterRegistry[INVALID_TOKENS_METER_EXPECTED_NAME].tag("cause", "malformed").counter().count()).isEqualTo(count + 1) } - private fun createUnsupportedToken(): String { - val key = ReflectionTestUtils.getField(tokenProvider, "key") as Key - - return Jwts.builder().setPayload("payload").signWith(key, SignatureAlgorithm.HS256).compact() + @Test + @Throws(Exception::class) + fun testTokenInvalidCount() { + val count = meterRegistry[INVALID_TOKENS_METER_EXPECTED_NAME].tag("cause", "malformed").counter().count() + tryToAuthenticate(JwtAuthenticationTestUtils.createInvalidToken(jwtKey)) + Assertions.assertThat(meterRegistry[INVALID_TOKENS_METER_EXPECTED_NAME].tag("cause", "malformed").counter().count()).isEqualTo(count + 1) } - - private fun createMalformedToken(): String { - val validToken = createValidToken() - - return "X$validToken" +<%_ if (reactive) { _%> + + private fun tryToAuthenticate(token: String) { + webTestClient + .get() + .uri("/api/authenticate") + .headers { headers -> headers.setBearerAuth(token) } + .exchange() + .returnResult(String::class.java) + .getResponseBody() + .blockLast() } +<%_ } else { _%> - private fun createTokenWithDifferentSignature(): String { - val otherKey = Keys.hmacShaKeyFor( - Decoders.BASE64.decode("Xfd54a45s65fds737b9aafcb3412e07ed99b267f33413274720ddbb7f6c5e64e9f14075f2d7ed041592f0b7657baf8") - ) - - return Jwts - .builder() - .setSubject("anonymous") - .signWith(otherKey, SignatureAlgorithm.HS512) - .setExpiration(Date(Date().time + ONE_MINUTE)) - .compact() + @Throws(Exception::class) + private fun tryToAuthenticate(token: String) { + mvc.perform(MockMvcRequestBuilders.get("/api/authenticate").header(HttpHeaders.AUTHORIZATION, JwtAuthenticationTestUtils.BEARER + token)) } +<%_ } _%> private fun aggregate(counters: Collection): Double { - return counters.sumOf(Counter::count) + return counters.stream().mapToDouble { obj: Counter -> obj.count() }.sum() } - } diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/security/oauth2/AuthorizationHeaderUtilTest.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/security/oauth2/AuthorizationHeaderUtilTest.kt.ejs new file mode 100644 index 000000000..3893ae2eb --- /dev/null +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/security/oauth2/AuthorizationHeaderUtilTest.kt.ejs @@ -0,0 +1,238 @@ +<%# + Copyright 2013-2024 the original author or authors from the JHipster project. + +This file is part of the JHipster project, see https://jhipster.github.io/ + for more information. + + 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. +-%> +package <%= packageName %>.security.oauth2 + +import org.junit.jupiter.api.Assertions.fail +import org.mockito.ArgumentMatchers.* +import org.mockito.Mockito.* + +import java.time.Duration +import java.time.Instant +import java.util.List +import java.util.Map +import java.util.Optional +import org.assertj.core.api.Assertions +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.extension.ExtendWith +import org.mockito.InjectMocks +import org.mockito.Mock +import org.mockito.junit.jupiter.MockitoExtension +import org.springframework.boot.web.client.RestTemplateBuilder +import org.springframework.http.RequestEntity +import org.springframework.http.ResponseEntity +import org.springframework.http.converter.HttpMessageConverter +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken +import org.springframework.security.core.authority.SimpleGrantedAuthority +import org.springframework.security.core.context.SecurityContext +import org.springframework.security.core.context.SecurityContextHolder +import org.springframework.security.oauth2.client.OAuth2AuthorizedClient +import org.springframework.security.oauth2.client.OAuth2AuthorizedClientService +import org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken +import org.springframework.security.oauth2.client.registration.ClientRegistration +import org.springframework.security.oauth2.core.* +import org.springframework.security.oauth2.core.oidc.OidcIdToken +import org.springframework.security.oauth2.core.oidc.user.DefaultOidcUser +import org.springframework.security.oauth2.jwt.Jwt +import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken +import org.springframework.web.client.ResponseErrorHandler +import org.springframework.web.client.RestTemplate + +/** + * Test class for the [AuthorizationHeaderUtil] utility class. + */ +@ExtendWith(MockitoExtension::class) +class AuthorizationHeaderUtilTest { + + companion object { + const val VALID_REGISTRATION_ID: String = "OIDC" + const val SUB_VALUE: String = "123456" + } + + @Mock private lateinit var clientService: OAuth2AuthorizedClientService + @Mock private lateinit var restTemplateBuilder: RestTemplateBuilder + @Mock private lateinit var securityContext: SecurityContext + @InjectMocks private lateinit var authorizationHeaderUtil: AuthorizationHeaderUtil + + @BeforeEach + fun setup() { + SecurityContextHolder.setContext(securityContext) + } + + @Test + fun getAuthorizationHeader_Authentication() { + val authenticationToken = UsernamePasswordAuthenticationToken("principal", "credentials") + doReturn(authenticationToken).`when`(securityContext).authentication + + val header = authorizationHeaderUtil.getAuthorizationHeader() + + Assertions.assertThat(header).isNotNull().isEmpty() + } + + @Test + fun getAuthorizationHeader_JwtAuthentication() { + val jwtToken = JwtAuthenticationToken(Jwt("tokenVal", Instant.now(), + Instant.now().plus(Duration.ofMinutes(3)), hashMapOf("alg" to "HS256") as Map?, hashMapOf("sub" to SUB_VALUE) as Map? + )) + doReturn(jwtToken).`when`(securityContext).authentication + + val header = authorizationHeaderUtil.getAuthorizationHeader() + + Assertions.assertThat(header).isNotNull.isNotEmpty.get().isEqualTo("Bearer tokenVal") + } + + @Test + fun getAuthorizationHeader_OAuth2Authentication_InvalidClient() { + val oauth2Token = getTestOAuth2AuthenticationToken("INVALID") + + doReturn(oauth2Token).`when`(securityContext).authentication + + Assertions.assertThatThrownBy { + authorizationHeaderUtil.getAuthorizationHeader() + }.isInstanceOf(OAuth2AuthorizationException::class.java).hasMessageContaining("[access_denied] The token is expired") + } + + @Test + fun getAuthorizationHeader_OAuth2Authentication() { + val oauth2Token = getTestOAuth2AuthenticationToken(VALID_REGISTRATION_ID) + val authorizedClient = getTestOAuth2AuthorizedClient() + + doReturn(oauth2Token).`when`(securityContext).authentication + doReturn(authorizedClient).`when`(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) + + val header = authorizationHeaderUtil.getAuthorizationHeader() + Assertions.assertThat(header).isNotNull.isNotEmpty.get().isEqualTo("Bearer tokenVal") + } + + @Test + fun getAuthorizationHeader_OAuth2Authentication_RefreshToken() { + + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).additionalMessageConverters(any(HttpMessageConverter::class.java)) + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).errorHandler(any(ResponseErrorHandler::class.java)) + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).basicAuthentication(anyString(), anyString()) + + val oauth2Token = getTestOAuth2AuthenticationToken(VALID_REGISTRATION_ID) + val authorizedClient = getTestOAuth2AuthorizedClient(true) + + doReturn(oauth2Token).`when`(securityContext).authentication + doReturn(authorizedClient).`when`(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) + + val restTemplate = mock(RestTemplate::class.java) + val refreshResponse = ResponseEntity.of(getTestOAuthIdpTokenResponseDTO(true)) + doReturn(refreshResponse).`when`(restTemplate).exchange(any(RequestEntity::class.java), eq(OAuthIdpTokenResponseDTO::class.java)) + doReturn(restTemplate).`when`(restTemplateBuilder).build() + + val header = authorizationHeaderUtil.getAuthorizationHeader() + Assertions.assertThat(header).isNotNull.isNotEmpty.get().isEqualTo("Bearer tokenVal") + } + + @Test + fun getAuthorizationHeader_OAuth2Authentication_RefreshToken_NoRefreshToken() { + + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).additionalMessageConverters(any(HttpMessageConverter::class.java)) + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).errorHandler(any(ResponseErrorHandler::class.java)) + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).basicAuthentication(anyString(), anyString()) + + val oauth2Token = getTestOAuth2AuthenticationToken(VALID_REGISTRATION_ID) + val authorizedClient = getTestOAuth2AuthorizedClient(true) + + doReturn(oauth2Token).`when`(securityContext).authentication + doReturn(authorizedClient).`when`(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) + + val restTemplate = mock(RestTemplate::class.java) + val refreshResponse = ResponseEntity.of(getTestOAuthIdpTokenResponseDTO(false)) + doReturn(refreshResponse).`when`(restTemplate).exchange(any(RequestEntity::class.java), eq(OAuthIdpTokenResponseDTO::class.java)) + doReturn(restTemplate).`when`(restTemplateBuilder).build() + + val header = authorizationHeaderUtil.getAuthorizationHeader() + Assertions.assertThat(header).isNotNull.isNotEmpty.get().isEqualTo("Bearer tokenVal") + } + + @Test + fun getAuthorizationHeader_OAuth2Authentication_RefreshTokenFails() { + + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).additionalMessageConverters(any(HttpMessageConverter::class.java)) + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).errorHandler(any(ResponseErrorHandler::class.java)) + doReturn(restTemplateBuilder).`when`(restTemplateBuilder).basicAuthentication(anyString(), anyString()) + + val oauth2Token = getTestOAuth2AuthenticationToken(VALID_REGISTRATION_ID) + val authorizedClient = getTestOAuth2AuthorizedClient(true) + + doReturn(oauth2Token).`when`(securityContext).authentication + doReturn(authorizedClient).`when`(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) + + val restTemplate = mock(RestTemplate::class.java) + doThrow(OAuth2AuthorizationException(OAuth2Error("E"), "error")).`when`(restTemplate).exchange(any(RequestEntity::class.java), eq(OAuthIdpTokenResponseDTO::class.java)) + doReturn(restTemplate).`when`(restTemplateBuilder).build() + + Assertions.assertThatThrownBy { authorizationHeaderUtil.getAuthorizationHeader() }.isInstanceOf(OAuth2AuthenticationException::class.java) + .hasMessageContaining("error") + } + + private fun getTestOAuth2AuthorizedClient() = getTestOAuth2AuthorizedClient(false) + + private fun getTestOAuth2AuthorizedClient(accessTokenExpired: Boolean):OAuth2AuthorizedClient { + val issuedAt = Instant.now() + var expiresAt: Instant? = null + if (accessTokenExpired) { + expiresAt = issuedAt.plus(Duration.ofNanos(1)) + try { + Thread.sleep(1) + } catch (e: Exception) { + fail("Error in Thread.sleep(1) : " + e.message) + } + } else { + expiresAt = issuedAt.plus(Duration.ofMinutes(3)) + } + val token = OAuth2AccessToken(OAuth2AccessToken.TokenType.BEARER, "tokenVal", issuedAt, expiresAt) + + return OAuth2AuthorizedClient( + ClientRegistration.withRegistrationId(VALID_REGISTRATION_ID) + .authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE) + .clientId("web-app") + .clientSecret("secret") + .redirectUri("/login/oauth2/code/oidc") + .authorizationUri("http://localhost:8080/auth/realms/master/protocol/openid-connect/auth") + .tokenUri("https://localhost:8080/auth/realms/master/protocol/openid-connect/token") + .build(), + "sub", + token, + OAuth2RefreshToken("refreshVal", Instant.now())) + } + + private fun getTestOAuth2AuthenticationToken(registrationId: String): OAuth2AuthenticationToken { + return OAuth2AuthenticationToken( + DefaultOidcUser(listOf(SimpleGrantedAuthority("USER")), + OidcIdToken.withTokenValue("tokenVal").claim("sub", SUB_VALUE).build()), + listOf(SimpleGrantedAuthority("USER")), registrationId) + } + + private fun getTestOAuthIdpTokenResponseDTO(hasRefreshToken: Boolean): Optional { + val dto = OAuthIdpTokenResponseDTO() + dto.accessToken = "tokenVal" + dto.idToken = "tokenVal" + dto.notBefore = 0L + dto.refreshExpiresIn = "1800" + dto.sessionState = "ccea4a55" + dto.expiresIn = 300L + dto.refreshToken = if (hasRefreshToken) "tokenVal" else null + dto.scope = "openid email profile offline_access" + return Optional.of(dto) + } +} diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/service/MailServiceIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/service/MailServiceIT.kt.ejs index a5f402447..d311046b5 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/service/MailServiceIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/service/MailServiceIT.kt.ejs @@ -233,7 +233,7 @@ class MailServiceIT { verify(javaMailSender, atLeastOnce()).send(messageCaptor.capture()) val message = messageCaptor.value - val propertyFilePath = "i18n/messages_${getJavaLocale(langKey)}.properties" + val propertyFilePath = "i18n/messages_${getMessageSourceSuffixForLanguage(langKey)}.properties" val resource = this::class.java.classLoader.getResource(propertyFilePath) assertNotNull(resource) val file = File(URI(resource.file).path) @@ -250,7 +250,7 @@ class MailServiceIT { /** * Convert a lang key to the Java locale. */ - private fun getJavaLocale(langKey: String): String { + private fun getMessageSourceSuffixForLanguage(langKey: String): String { var javaLangKey = langKey val matcher2 = PATTERN_LOCALE_2.matcher(langKey) if (matcher2.matches()) { diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/web/filter/SpaWebFilterIT_imperative.java.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/web/filter/SpaWebFilterIT_imperative.java.ejs new file mode 100644 index 000000000..ecfdbc012 --- /dev/null +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/web/filter/SpaWebFilterIT_imperative.java.ejs @@ -0,0 +1,121 @@ +package <%= packageName %>.web.filter; + +import <%= packageName %>.IntegrationTest; +import <%= packageName %>.security.AuthoritiesConstants; + +import org.junit.jupiter.api.Test +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc +import org.springframework.security.test.context.support.WithMockUser +import org.springframework.test.web.servlet.MockMvc +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders +import org.springframework.test.web.servlet.result.MockMvcResultMatchers + + +@AutoConfigureMockMvc +@WithMockUser +@IntegrationTest +class SpaWebFilterIT { + @Autowired + private lateinit var mockMvc: MockMvc + + @Test + @Throws(Exception::class) + fun testFilterForwardsToIndex() { + mockMvc.perform(MockMvcRequestBuilders.get("/")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.forwardedUrl("/index.html")) + } + +<%_ if (!skipUserManagement) { _%> + + @Test + @Throws(Exception::class) + fun testFilterDoesNotForwardToIndexForApi() { + mockMvc.perform(MockMvcRequestBuilders.get("/api/<% if (!applicationTypeMicroservice) { %>authenticate<% } else { %>users<% } %>")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.forwardedUrl(null)) + } + +<%_ } _%> + + @Test + @WithMockUser(authorities = [AuthoritiesConstants.ADMIN]) + @Throws(Exception::class) + fun testFilterDoesNotForwardToIndexForV3ApiDocs() { + mockMvc.perform(MockMvcRequestBuilders.get("/v3/api-docs")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.forwardedUrl(null)) + } + + @Test + @Throws(Exception::class) + fun testFilterDoesNotForwardToIndexForDotFile() { + mockMvc.perform(MockMvcRequestBuilders.get("/file.js")) + .andExpect(MockMvcResultMatchers.status().isNotFound()) + } + + @Test + @Throws(Exception::class) + fun getBackendEndpoint() { + mockMvc.perform(MockMvcRequestBuilders.get("/test")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.forwardedUrl("/index.html")) + } + + @Test + @Throws(Exception::class) + fun forwardUnmappedFirstLevelMapping() { + mockMvc.perform(MockMvcRequestBuilders.get("/first-level")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.forwardedUrl("/index.html")) + } + + @Test + @Throws(Exception::class) + fun forwardUnmappedSecondLevelMapping() { + mockMvc.perform(MockMvcRequestBuilders.get("/first-level/second-level")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.forwardedUrl("/index.html")) + } + + @Test + @Throws(Exception::class) + fun forwardUnmappedThirdLevelMapping() { + mockMvc.perform(MockMvcRequestBuilders.get("/first-level/second-level/third-level")) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andExpect(MockMvcResultMatchers.forwardedUrl("/index.html")) + } + + @Test + @Throws(Exception::class) + fun forwardUnmappedDeepMapping() { + mockMvc.perform(MockMvcRequestBuilders.get("/1/2/3/4/5/6/7/8/9/10")) + .andExpect(MockMvcResultMatchers.forwardedUrl("/index.html")) + } + + @Throws(Exception::class) + @Test + fun getUnmappedFirstLevelFile() { + mockMvc.perform(MockMvcRequestBuilders.get("/foo.js")) + .andExpect(MockMvcResultMatchers.status().isNotFound()) + } + + + /** + * This test verifies that any files that aren't permitted by Spring Security will be forbidden. + * If you want to change this to return isNotFound(), you need to add a request mapping that + * allows this file in SecurityConfiguration. + */ + @Throws(Exception::class) + @Test + fun getUnmappedSecondLevelFile() { + mockMvc.perform(MockMvcRequestBuilders.get("/foo/bar.js")).andExpect(MockMvcResultMatchers.status().isForbidden()) + } + + @Throws(Exception::class) + @Test + fun getUnmappedThirdLevelFile() { + mockMvc.perform(MockMvcRequestBuilders.get("/foo/another/bar.js")).andExpect(MockMvcResultMatchers.status().isForbidden()) + } +} diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/web/filter/SpaWebFilterIT_reactive.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/web/filter/SpaWebFilterIT_reactive.kt.ejs new file mode 100644 index 000000000..528b7cdbd --- /dev/null +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/web/filter/SpaWebFilterIT_reactive.kt.ejs @@ -0,0 +1,155 @@ +package <%= packageName %>.web.filter + +import <%= packageName %>.IntegrationTest +import <%= packageName %>.security.AuthoritiesConstants +import java.time.Duration +import org.junit.jupiter.api.Test +import org.springframework.test.web.reactive.server.WebTestClient +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient +import org.springframework.security.test.context.support.WithMockUser +import org.springframework.http.MediaType + +@AutoConfigureWebTestClient(timeout = IntegrationTest.DEFAULT_TIMEOUT) +@WithMockUser +@IntegrationTest +class SpaWebFilterIT { + + @Test + fun testFilterForwardsToIndex() { + webTestClient + .get() + .uri("/") + .exchange() + .expectStatus().isOk() + .expectHeader().contentType("text/html;charset=UTF-8") + .expectBody(String::class.java).isEqualTo(SpaWebFilterTestController.INDEX_HTML_TEST_CONTENT) + } +<%_ if (!skipUserManagement) { _%> + + @Test + fun testFilterDoesNotForwardToIndexForApi() { + webTestClient + .get() + .uri("/api/<% if (!applicationTypeMicroservice) { %>authenticate<% } else { %>users<% } %>") + .exchange() + .expectStatus().isOk() + .expectBody(String::class.java).isEqualTo("user") + } +<%_ } _%> + + @Test + @WithMockUser(authorities = [AuthoritiesConstants.ADMIN]) + fun testFilterDoesNotForwardToIndexForV3ApiDocs() { + webTestClient + .mutate() + .responseTimeout(Duration.ofMillis(10000)) + .build() + .get() + .uri("/v3/api-docs") + .exchange() + .expectStatus() + .isOk() + .expectHeader() + .contentType(MediaType.APPLICATION_JSON) + } + + @Test + fun testFilterDoesNotForwardToIndexForDotFile() { + webTestClient + .get() + .uri("/file.js") + .exchange() + .expectStatus().isNotFound() + } + + @Test + fun getBackendEndpoint() { + webTestClient + .get() + .uri("/test") + .exchange() + .expectStatus().isOk() + .expectHeader().contentType("text/html;charset=UTF-8") + .expectBody(String::class.java).isEqualTo(SpaWebFilterTestController.INDEX_HTML_TEST_CONTENT) + } + + @Test + fun forwardUnmappedFirstLevelMapping() { + webTestClient + .get() + .uri("/first-level") + .exchange() + .expectStatus().isOk() + .expectHeader().contentType("text/html;charset=UTF-8") + .expectBody(String::class.java).isEqualTo(SpaWebFilterTestController.INDEX_HTML_TEST_CONTENT) + } + + @Test + fun forwardUnmappedSecondLevelMapping() { + webTestClient + .get() + .uri("/first-level/second-level") + .exchange() + .expectStatus().isOk() + .expectHeader().contentType("text/html;charset=UTF-8") + .expectBody(String::class.java).isEqualTo(SpaWebFilterTestController.INDEX_HTML_TEST_CONTENT) + } + + @Test + fun forwardUnmappedThirdLevelMapping() { + webTestClient + .get() + .uri("/first-level/second-level/third-level") + .exchange() + .expectStatus().isOk() + .expectHeader().contentType("text/html;charset=UTF-8") + .expectBody(String::class.java).isEqualTo(SpaWebFilterTestController.INDEX_HTML_TEST_CONTENT) + } + + @Test + fun forwardUnmappedDeepMapping() { + webTestClient + .get() + .uri("/1/2/3/4/5/6/7/8/9/10") + .exchange() + .expectStatus().isOk() + .expectHeader().contentType("text/html;charset=UTF-8") + .expectBody(String::class.java).isEqualTo(SpaWebFilterTestController.INDEX_HTML_TEST_CONTENT) + } + + @Test + fun getUnmappedFirstLevelFile() { + webTestClient + .get() + .uri("/foo.js") + .exchange() + .expectStatus() + .isNotFound() + } + + /** + * This test verifies that any files that aren't permitted by Spring Security will be forbidden. + * If you want to change this to return isNotFound(), you need to add a request mapping that + * allows this file in SecurityConfiguration. + */ + @Test + fun getUnmappedSecondLevelFile() { + webTestClient + .get() + .uri("/foo/bar.js") + .exchange() + .expectStatus() + .isForbidden() + } + + @Test + fun getUnmappedThirdLevelFile() { + webTestClient + .get() + .uri("/foo/another/bar.js") + .exchange() + .expectStatus() + .isForbidden() + } +} diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/web/filter/SpaWebFilterTestController_reactive.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/web/filter/SpaWebFilterTestController_reactive.kt.ejs new file mode 100644 index 000000000..d9dbb3c7d --- /dev/null +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/web/filter/SpaWebFilterTestController_reactive.kt.ejs @@ -0,0 +1,16 @@ +package <%= packageName %>.web.filter; + +import org.springframework.http.MediaType +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.RestController + +@RestController +class SpaWebFilterTestController { + @GetMapping(value = ["/index.html"], produces = [MediaType.TEXT_HTML_VALUE]) + fun getIndexHtmlTestContent(): String { + return INDEX_HTML_TEST_CONTENT + } + companion object { + const val INDEX_HTML_TEST_CONTENT = "test" + } +} \ No newline at end of file diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/AccountResourceIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/AccountResourceIT.kt.ejs index 747406d79..ccce79a75 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/AccountResourceIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/AccountResourceIT.kt.ejs @@ -42,8 +42,8 @@ import <%= packageName %>.security.ADMIN import <%= packageName %>.security.USER import <%= packageName %>.service.UserService import <%= packageName %>.service.dto.PasswordChangeDTO -import <%= packageName %>.service.dto.<%= user.restClass %> import <%= packageName %>.service.dto.<%= user.adminUserDto %> +import <%= packageName %>.service.dto.<%= user.dtoClass %> import <%= packageName %>.web.rest.vm.KeyAndPasswordVM import <%= packageName %>.web.rest.vm.ManagedUserVM import org.apache.commons.lang3.RandomStringUtils @@ -96,7 +96,6 @@ import org.mockito.Mockito.* import org.hamcrest.Matchers.containsString import org.hamcrest.Matchers.hasItem <%_ } _%> -import <%= packageName %>.web.rest.TEST_USER_LOGIN <%_ if (reactive) { _%> <%_ if (authenticationUsesCsrf) { _%> import org.springframework.security.test.web.reactive.server.SecurityMockServerConfigurers.csrf @@ -129,7 +128,6 @@ import <%= packageName %>.config.SYSTEM_ACCOUNT <%_ } else { _%> @AutoConfigureMockMvc <%_ } _%> -@WithMockUser(value = TEST_USER_LOGIN) @IntegrationTest class AccountResourceIT { @@ -196,6 +194,7 @@ class AccountResourceIT { } @Test + @WithMockUser(TEST_USER_LOGIN) <%_ if (reactive) { _%> fun testAuthenticatedUser() { accountWebTestClient @@ -208,10 +207,7 @@ class AccountResourceIT { @Throws(Exception::class) fun testAuthenticatedUser() { restAccountMockMvc.perform(get("/api/authenticate") - .with { request -> - request.remoteUser = TEST_USER_LOGIN - request - } + .with(request -> request) .accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk) .andExpect(content().string(TEST_USER_LOGIN)) @@ -219,6 +215,7 @@ class AccountResourceIT { } @Test + @WithMockUser(TEST_USER_LOGIN) <%_ if (!reactive) { _%> @Throws(Exception::class) <%_ } _%> @@ -278,13 +275,17 @@ class AccountResourceIT { accountWebTestClient.get().uri("/api/account") .accept(MediaType.APPLICATION_JSON) .exchange() - .expectStatus().isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR) + <%_ if (authenticationTypeSession) { _%> + .expectStatus().isEqualTo(HttpStatus.OK); + <%_ } else { _%> + .expectStatus().isEqualTo(HttpStatus.UNAUTHORIZED); + <%_ } _%> <%_ } else { _%> @Throws(Exception::class) fun testGetUnknownAccount() { restAccountMockMvc.perform(get("/api/account") .accept(MediaType.APPLICATION_PROBLEM_JSON)) - .andExpect(status().isInternalServerError) + .andExpect(status().isUnauthorized) <%_ } _%> } @@ -564,8 +565,8 @@ class AccountResourceIT { val testUser = userRepository.findOneByEmailIgnoreCase("alice2@example.com")<% if (reactive) { %>.blockOptional()<% } %> assertThat(testUser).isPresent - testUser.get().activated = true - userRepository.save(testUser.get())<% if (reactive) { %>.block()<% } %> + testUser.orElseThrow().activated = true + userRepository.save(testUser.orElseThrow())<% if (reactive) { %>.block()<% } %> // Second (already activated) user <%_ if (reactive) { _%> @@ -698,10 +699,10 @@ class AccountResourceIT { val testUser4 = userRepository.findOneByLogin("test-register-duplicate-email-3")<% if (reactive) { %>.blockOptional()<% } %> assertThat(testUser4).isPresent - assertThat(testUser4.get().email).isEqualTo("test-register-duplicate-email@example.com") + assertThat(testUser4.orElseThrow().email).isEqualTo("test-register-duplicate-email@example.com") - testUser4.get().activated = true - userService.updateUser((<%= user.adminUserDto %>(testUser4.get())))<% if (reactive) { %>.block()<% } %> + testUser4.orElseThrow().activated = true + userService.updateUser((<%= user.adminUserDto %>(testUser4.orElseThrow())))<% if (reactive) { %>.block()<% } %> // Register 4th (already activated) user <%_ if (reactive) { _%> @@ -759,8 +760,8 @@ class AccountResourceIT { val userDup = userRepository.findOne<% if (databaseTypeSql) { %>WithAuthorities<% } %>ByLogin("badguy")<% if (reactive) { %>.blockOptional()<% } %> assertThat(userDup).isPresent - assertThat(userDup.get().authorities).hasSize(1) - assertContains(userDup.get().authorities, <% if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { %>authorityRepository.findById(USER).<% if (reactive) { %>block<% } else { %>get<% } %>()<% } %><% if (databaseTypeCassandra || databaseTypeCouchbase) { %>USER<% } %>) + assertThat(userDup.orElseThrow().authorities).hasSize(1) + assertContains(userDup.orElseThrow().authorities, <% if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { %>authorityRepository.findById(USER).<% if (reactive) { %>block<% } else { %>get<% } %>()<% } %><% if (databaseTypeCassandra || databaseTypeCouchbase) { %>USER<% } %>) } @Test<% if (databaseTypeSql && !reactive) { %> diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/AccountResourceIT_oauth2.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/AccountResourceIT_oauth2.kt.ejs index c6cc05b07..c37e97f3b 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/AccountResourceIT_oauth2.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/AccountResourceIT_oauth2.kt.ejs @@ -72,7 +72,6 @@ import org.springframework.transaction.annotation.Transactional <%_ } else { _%> @AutoConfigureMockMvc <%_ } _%> -@WithMockUser(value = TEST_USER_LOGIN) @IntegrationTest class AccountResourceIT { @@ -124,7 +123,9 @@ class AccountResourceIT { .expectHeader().contentType(MediaType.APPLICATION_JSON_VALUE) .expectBody() .jsonPath("$.login").isEqualTo("jane") + <%_ if (generateBuiltInUserEntity) { _%> .jsonPath("$.email").isEqualTo("jane.doe@jhipster.com") + <%_ } _%> .jsonPath("$.authorities").isEqualTo(ADMIN) <%_ } else { _%> TestSecurityContextHolder @@ -138,7 +139,9 @@ class AccountResourceIT { .andExpect(status().isOk) .andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE)) .andExpect(jsonPath("\$.login").value(TEST_USER_LOGIN)) + <%_ if (generateBuiltInUserEntity) { _%> .andExpect(jsonPath("\$.email").value("john.doe@jhipster.com")) + <%_ } _%> .andExpect(jsonPath("\$.authorities").value(ADMIN)) <%_ } _%> } @@ -150,11 +153,11 @@ class AccountResourceIT { webTestClient.get().uri("/api/account") .accept(MediaType.APPLICATION_JSON) .exchange() - .expectStatus().is5xxServerError() + .expectStatus().is3xxServerError() <%_ } else { _%> restAccountMockMvc.perform(get("/api/account") .accept(MediaType.APPLICATION_JSON)) - .andExpect(status().isInternalServerError()) + .andExpect(status().isUnauthorized()) <%_ } _%> } @@ -178,6 +181,7 @@ class AccountResourceIT { } @Test + @WithMockUser(TEST_USER_LOGIN) <% if (!reactive) { %>@Throws(Exception::class)<% } %> <%_ if (reactive) { _%> fun testAuthenticatedUser() { @@ -190,10 +194,7 @@ class AccountResourceIT { <%_ } else { _%> fun testAuthenticatedUser() { restAccountMockMvc.perform(get("/api/authenticate") - .with { request -> - request.remoteUser = TEST_USER_LOGIN - request - } + .with(request -> request) .accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk) .andExpect(content().string(TEST_USER_LOGIN)) diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/AccountResourceIT_skipUserManagement.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/AccountResourceIT_skipUserManagement.kt.ejs index 82b53d889..d4941a92e 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/AccountResourceIT_skipUserManagement.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/AccountResourceIT_skipUserManagement.kt.ejs @@ -18,13 +18,21 @@ This file is part of the JHipster project, see https://jhipster.github.io/ -%> package <%= packageName %>.web.rest -import <%= packageName %>.IntegrationTest +<%_ if (authenticationTypeJwt) { _%> +import <%= packageName %>.security.jwt.JwtAuthenticationTestUtils.createValidTokenForUser +import org.springframework.beans.factory.annotation.Value + <%_ if (!reactive) { _%> +import <%= packageName %>.security.jwt.JwtAuthenticationTestUtils.BEARER +import org.springframework.http.HttpHeaders.AUTHORIZATION + <%_ } _%> +<%_ } _%> <%_ if (reactive) { _%> import <%= packageName %>.IntegrationTest.Companion.DEFAULT_TIMEOUT <%_ } _%> <%_ if (reactive && searchEngineElasticsearch) { _%> import <%= packageName %>.repository.search.UserSearchRepository <%_ } _%> +import <%= packageName %>.IntegrationTest import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired <%_ if (!reactive) { _%> @@ -47,7 +55,6 @@ import reactor.core.publisher.Mono import org.mockito.Mockito.* <%_ } _%> -import <%= packageName %>.web.rest.TEST_USER_LOGIN /** * Integration tests for the {@link AccountResource} REST controller. @@ -57,7 +64,6 @@ import <%= packageName %>.web.rest.TEST_USER_LOGIN <%_ } else { _%> @AutoConfigureMockMvc <%_ } _%> -@WithMockUser(value = TEST_USER_LOGIN) @IntegrationTest class AccountResourceIT { @@ -68,13 +74,23 @@ class AccountResourceIT { private lateinit var restAccountMockMvc: MockMvc <%_ } _%> + <%_ if (authenticationTypeJwt) { _%> + @Value("\${jhipster.security.authentication.jwt.base64-secret}") + private lateinit var jwtKey: String + <%_ } _%> + @Test <% if (!reactive) { %>@Throws(Exception::class)<% } %> + <%_ if (!authenticationTypeJwt) { _%> @WithMockUser(username = TEST_USER_LOGIN, authorities = [ADMIN]) + <%_ } _%> fun testGetExistingAccount() { <%_ if (reactive) { _%> accountWebTestClient.get().uri("/api/account") .accept(MediaType.APPLICATION_JSON) + <%_ if (authenticationTypeJwt) { _%> + .headers { header -> header.setBearerAuth(createValidTokenForUser(jwtKey, TEST_USER_LOGIN)) } + <%_ } _%> .exchange() .expectStatus().isOk .expectHeader().contentType(MediaType.APPLICATION_JSON) @@ -85,6 +101,9 @@ class AccountResourceIT { restAccountMockMvc.perform( get("/api/account") .accept(MediaType.APPLICATION_JSON) + <%_ if (authenticationTypeJwt) { _%> + .header(AUTHORIZATION, BEARER + createValidTokenForUser(jwtKey, TEST_USER_LOGIN)) + <%_ } _%> ) .andExpect(status().isOk) .andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE)) @@ -113,6 +132,7 @@ class AccountResourceIT { } @Test + @WithMockUser(TEST_USER_LOGIN) <% if (!reactive) { %>@Throws(Exception::class)<% } %> <%_ if (reactive) { _%> fun testAuthenticatedUser() { @@ -125,10 +145,7 @@ class AccountResourceIT { <%_ } else { _%> fun testAuthenticatedUser() { restAccountMockMvc.perform(get("/api/authenticate") - .with(request -> { - request.setRemoteUser(TEST_USER_LOGIN) - return request - }) + .with(request -> request) .accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk) .andExpect(content().string(TEST_USER_LOGIN)) diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/AuthenticateControllerIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/AuthenticateControllerIT.kt.ejs index 1a1ad0ba7..2043eaaa8 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/AuthenticateControllerIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/AuthenticateControllerIT.kt.ejs @@ -22,7 +22,10 @@ import <%= packageName %>.IntegrationTest <%_ if (databaseTypeSql && reactive) { _%> import <%= packageName %>.config.SYSTEM_ACCOUNT <%_ } _%> -<%_ if (!skipUserManagement) { _%> +<%_ if (generateUserManagement) { _%> + <%_ if (databaseTypeSql && reactive) { _%> +import <%= packageName %>.config.Constants + <%_ } _%> import <%= user.entityAbsoluteClass %> import <%= packageName %>.repository.UserRepository <%_ } _%> @@ -35,7 +38,7 @@ import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWeb import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc <%_ } _%> import org.springframework.http.MediaType -<%_ if (!skipUserManagement) { _%> +<%_ if (generateUserManagement) { _%> import org.springframework.security.crypto.password.PasswordEncoder <%_ } _%> <%_ if (reactive) { _%> @@ -60,7 +63,7 @@ import org.hamcrest.Matchers.* <%_ } _%> /** - * Integration tests for the [UserJWTController] REST controller. + * Integration tests for the [AuthenticateController] REST controller. */ <%_ if (reactive) { _%> @AutoConfigureWebTestClient(timeout = IntegrationTest.DEFAULT_TIMEOUT) @@ -68,9 +71,9 @@ import org.hamcrest.Matchers.* @AutoConfigureMockMvc <%_ } _%> @IntegrationTest -class UserJWTControllerIT { +class AuthenticateControllerIT { -<%_ if (!skipUserManagement) { _%> +<%_ if (generateUserManagement) { _%> @Autowired private lateinit var userRepository: UserRepository @@ -86,7 +89,7 @@ class UserJWTControllerIT { <%_ }  _%> @Test -<%_ if (!skipUserManagement) { _%> +<%_ if (generateUserManagement) { _%> <%_ if (databaseTypeSql && !reactive) { _%> @Transactional <%_ } _%> @@ -137,7 +140,7 @@ class UserJWTControllerIT { } @Test - <%_ if (!skipUserManagement) { _%> + <%_ if (generateUserManagement) { _%> <%_ if (databaseTypeSql && !reactive) { _%> @Transactional <%_ } _%> diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/errors/ExceptionTranslatorIT_imperative.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/errors/ExceptionTranslatorIT_imperative.kt.ejs index 007511be2..b0d8a2e3c 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/errors/ExceptionTranslatorIT_imperative.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/errors/ExceptionTranslatorIT_imperative.kt.ejs @@ -118,7 +118,7 @@ class ExceptionTranslatorIT { .andExpect(status().isMethodNotAllowed) .andExpect(content().contentType(MediaType.APPLICATION_PROBLEM_JSON)) .andExpect(jsonPath("\$.message").value("error.http.405")) - .andExpect(jsonPath("\$.detail").value("Request method 'POST' not supported")) + .andExpect(jsonPath("\$.detail").value("Request method 'POST' is not supported.")) } @Test diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/errors/ExceptionTranslatorIT_reactive.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/errors/ExceptionTranslatorIT_reactive.kt.ejs index cfd0d769b..8c97c008d 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/errors/ExceptionTranslatorIT_reactive.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/errors/ExceptionTranslatorIT_reactive.kt.ejs @@ -19,9 +19,8 @@ package <%= packageName %>.web.rest.errors import <%= packageName %>.IntegrationTest -<%_ if (reactive) { _%> -import <%= packageName %>.IntegrationTest.Companion.DEFAULT_TIMEOUT -<%_ } _%> +import org.hamcrest.core.AnyOf +import org.hamcrest.core.IsEqual import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootTest @@ -123,7 +122,8 @@ class ExceptionTranslatorIT { .expectBody() .jsonPath("\$.message").isEqualTo("error.http.401") .jsonPath("$.path").isEqualTo("/api/exception-translator-test/unauthorized") - .jsonPath("\$.detail").isEqualTo("test authentication failed!") + .jsonPath("\$.detail") + .value(AnyOf.anyOf(IsEqual.equalTo("test authentication failed!"), IsEqual.equalTo("Invalid credentials"))) } @Test @@ -134,7 +134,7 @@ class ExceptionTranslatorIT { .expectHeader().contentType(MediaType.APPLICATION_PROBLEM_JSON) .expectBody() .jsonPath("\$.message").isEqualTo("error.http.405") - .jsonPath("\$.detail").isEqualTo("405 METHOD_NOT_ALLOWED \"Request method 'POST' not supported\"") + .jsonPath("\$.detail").isEqualTo("405 METHOD_NOT_ALLOWED \"Request method 'POST' is not supported.\"") } @Test From 0fed472ee6a256c84f187da3f5f6afb3c5502560 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Wed, 7 Aug 2024 09:51:57 -0300 Subject: [PATCH 02/17] fix template --- .../kotlin/_package_/IntegrationTest.kt.ejs | 4 ---- .../web/rest/_entityClass_ResourceIT.kt.ejs | 20 +++++++++---------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/IntegrationTest.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/IntegrationTest.kt.ejs index 28ff4019e..81646a97c 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/IntegrationTest.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/IntegrationTest.kt.ejs @@ -88,10 +88,6 @@ annotation class IntegrationTest { <%_ if (reactive) { _%> companion object { // 5s is Spring's default https://github.com/spring-projects/spring-framework/blob/main/spring-test/src/main/java/org/springframework/test/web/reactive/server/DefaultWebTestClient.java#L106 - <%_ if (databaseTypeMongodb && reactive) { _%> - const val DEFAULT_TIMEOUT: String = "PT10S" - const val DEFAULT_ENTITY_TIMEOUT: String = "PT10S" - <%_ } else { _%> const val DEFAULT_TIMEOUT: String = "PT5S" const val DEFAULT_ENTITY_TIMEOUT: String = "PT5S" } diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs index 0dc9c3045..84429142b 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs @@ -49,7 +49,7 @@ if (databaseTypeSql && reactive) { } let idValue = `${persistInstance}.${primaryKey.name}`; -if (primaryKey.typeLong || primaryKey.typeInteger`) { +if (primaryKey.typeLong || primaryKey.typeInteger) { idValue = idValue + '?.toInt()'; } else if (primaryKey.typeUUID) { idValue = idValue + '.toString()'; @@ -600,7 +600,7 @@ class <%= entityClass %>ResourceIT { // Initialize the database <%_ if (!primaryKey.derived) { _%> <%_ for (field of primaryKey.fields.filter(f => !f.autoGenerateByRepository)) { _%> - <%= persistInstance %>.<%= field.fieldName %> = <%- this.getJavaValueGeneratorForType(field.fieldType) %> + <%= persistInstance %>.<%= field.fieldName %> = <%- field.javaValueGenerator %> <%_ } _%> <%_ } _%> <%= entityInstance %>Repository.save(<%= persistInstance %>)<%= callBlock %> @@ -643,7 +643,7 @@ class <%= entityClass %>ResourceIT { // Initialize the database <%_ if (!primaryKey.derived) { _%> <%_ for (field of primaryKey.fields.filter(f => !f.autoGenerateByRepository)) { _%> - <%= persistInstance %>.<%= field.fieldName %> = <%- this.getJavaValueGeneratorForType(field.fieldType) %> + <%= persistInstance %>.<%= field.fieldName %> = <%- field.javaValueGenerator %> <%_ } _%> <%_ } _%> <%= entityInstance %>Repository.<%= saveMethod %>(<%= persistInstance %>)<%= callBlock %> @@ -735,7 +735,7 @@ class <%= entityClass %>ResourceIT { // Initialize the database <%_ if (!primaryKey.derived) { _%> <%_ for (field of primaryKey.fields.filter(f => !f.autoGenerateByRepository)) { _%> - <%= persistInstance %>.<%= field.fieldName %> = <%- this.getJavaValueGeneratorForType(field.fieldType) %> + <%= persistInstance %>.<%= field.fieldName %> = <%- field.javaValueGenerator %> <%_ } _%> <%_ } _%> <%= entityInstance %>Repository.<%= saveMethod %>(<%= persistInstance %>)<%= callBlock %> @@ -794,7 +794,7 @@ class <%= entityClass %>ResourceIT { <%_ } _%> } <%_ fieldsToTest.forEach((searchBy) => { /* we can't filter by all the fields. */ _%> - <%_ if (isFilterableType(searchBy.fieldType)) { _%> + <%_ if (searchBy.filterableField) { _%> @Test<%= transactionalAnnotation %> <% if (!reactive) { %>@Throws(Exception::class)<% } %> fun getAll<%= entityClassPlural %>By<%= searchBy.fieldInJavaBeanMethod %>IsEqualToSomething() { @@ -1123,7 +1123,7 @@ class <%= entityClass %>ResourceIT { // Initialize the database <%_ if (!primaryKey.derived) { _%> <%_ for (field of primaryKey.fields.filter(f => !f.autoGenerateByRepository)) { _%> - <%= persistInstance %>.<%= field.fieldName %> = <%- this.getJavaValueGeneratorForType(field.fieldType) %> + <%= persistInstance %>.<%= field.fieldName %> = <%- field.javaValueGenerator %> <%_ } _%> <%_ } _%> <%= entityInstance %>Repository.<%= saveMethod %>(<%= persistInstance %>)<%= callBlock %> @@ -1339,7 +1339,7 @@ class <%= entityClass %>ResourceIT { fun partialUpdate<%= entityClass %>WithPatch() { <%_ if (!primaryKey.derived) { _%> <%_ for (field of primaryKey.fields.filter(f => !f.autoGenerateByRepository)) { _%> - <%= persistInstance %>.<%= field.fieldName %> = <%- this.getJavaValueGeneratorForType(field.fieldType) %> + <%= persistInstance %>.<%= field.fieldName %> = <%- field.javaValueGenerator %> <%_ } _%> <%_ } _%> <%= entityInstance %>Repository.<%= saveMethod %>(<%= persistInstance %>)<%= callBlock %> @@ -1352,7 +1352,7 @@ class <%= entityClass %>ResourceIT { fun fullUpdate<%= entityClass %>WithPatch() { <%_ if (!primaryKey.derived) { _%> <%_ for (field of primaryKey.fields.filter(f => !f.autoGenerateByRepository)) { _%> - <%= persistInstance %>.<%= field.fieldName %> = <%- this.getJavaValueGeneratorForType(field.fieldType) %> + <%= persistInstance %>.<%= field.fieldName %> = <%- field.javaValueGenerator %> <%_ } _%> <%_ } _%> <%= entityInstance %>Repository.<%= saveMethod %>(<%= persistInstance %>)<%= callBlock %> @@ -1486,7 +1486,7 @@ class <%= entityClass %>ResourceIT { // Initialize the database <%_ if (!primaryKey.derived) { _%> <%_ for (field of primaryKey.fields.filter(f => !f.autoGenerateByRepository)) { _%> - <%= persistInstance %>.<%= field.fieldName %> = <%- this.getJavaValueGeneratorForType(field.fieldType) %> + <%= persistInstance %>.<%= field.fieldName %> = <%- field.javaValueGenerator %> <%_ } _%> <%_ } _%> <%= entityInstance %>Repository.<%= saveMethod %>(<%= persistInstance %>)<%= callBlock %> @@ -1536,7 +1536,7 @@ class <%= entityClass %>ResourceIT { // Initialize the database <%_ if (!primaryKey.derived) { _%> <%_ for (field of primaryKey.fields.filter(f => !f.autoGenerateByRepository)) { _%> - <%= persistInstance %>.<%= field.fieldName %> = <%- this.getJavaValueGeneratorForType(field.fieldType) %> + <%= persistInstance %>.<%= field.fieldName %> = <%- field.javaValueGenerator %> <%_ } _%> <%_ } _%> <%= persistInstance %> = <%= entityInstance %>Repository.<%= saveMethod %>(<%= persistInstance %>)<%= callBlock %> From 01e56e48c9a314a9f558183c454dbd8618e4fce6 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Wed, 7 Aug 2024 17:04:40 -0300 Subject: [PATCH 03/17] templates adjusts --- .../web/rest/_entityClass_ResourceIT.kt.ejs | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs index 84429142b..485c52898 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs @@ -1211,7 +1211,7 @@ class <%= entityClass %>ResourceIT { <%_ if (searchEngineElasticsearch) { _%> val searchDatabaseSizeBefore = IterableUtil.sizeOf(<%= entityInstance %>SearchRepository.findAll()<%= callListBlock %>) <%_ } _%> - <%= persistInstance %>.<%= primaryKey.name %> = <%= this.getJavaValueGeneratorForType(primaryKey.type) %> + <%= persistInstance %>.<%= primaryKey.name %> = <%= primaryKey.javaValueGenerator %> <%_ if (dtoMapstruct) { _%> // Create the <%= entityClass %> @@ -1251,7 +1251,7 @@ class <%= entityClass %>ResourceIT { <%_ if (searchEngineElasticsearch) { _%> val searchDatabaseSizeBefore = IterableUtil.sizeOf(<%= entityInstance %>SearchRepository.findAll()<%= callListBlock %>) <%_ } _%> - <%= persistInstance %>.<%= primaryKey.name %> = <%= this.getJavaValueGeneratorForType(primaryKey.type) %> + <%= persistInstance %>.<%= primaryKey.name %> = <%= primaryKey.javaValueGenerator %> <%_ if (dtoMapstruct) { _%> // Create the <%= entityClass %> @@ -1261,12 +1261,12 @@ class <%= entityClass %>ResourceIT { // If url ID doesn't match entity ID, it will throw BadRequestAlertException <%_ if (!reactive) { _%> rest<%= entityClass %>MockMvc.perform( - put(ENTITY_API_URL_ID, <%= this.getJavaValueGeneratorForType(primaryKey.type) %>)<% if (authenticationUsesCsrf) { %>.with(csrf())<% }%> + put(ENTITY_API_URL_ID, <%= primaryKey.javaValueGenerator %>)<% if (authenticationUsesCsrf) { %>.with(csrf())<% }%> .contentType(MediaType.APPLICATION_JSON) .content(convertObjectToJsonBytes(<%= restInstance %>)) ).andExpect(status().isBadRequest) <%_ } else { _%> - webTestClient.put().uri(ENTITY_API_URL_ID, <%= this.getJavaValueGeneratorForType(primaryKey.type) %>) + webTestClient.put().uri(ENTITY_API_URL_ID, <%= primaryKey.javaValueGenerator %>) .contentType(MediaType.APPLICATION_JSON) .bodyValue(convertObjectToJsonBytes(<%= restInstance %>)) .exchange() @@ -1292,7 +1292,7 @@ class <%= entityClass %>ResourceIT { <%_ if (searchEngineElasticsearch) { _%> val searchDatabaseSizeBefore = IterableUtil.sizeOf(<%= entityInstance %>SearchRepository.findAll()<%= callListBlock %>); <%_ } _%> - <%= persistInstance %>.<%= primaryKey.name %> = <%= this.getJavaValueGeneratorForType(primaryKey.type) %> + <%= persistInstance %>.<%= primaryKey.name %> = <%= primaryKey.javaValueGenerator %> <%_ if (dtoMapstruct) { _%> // Create the <%= entityClass %> @@ -1367,7 +1367,7 @@ class <%= entityClass %>ResourceIT { <%_ if (searchEngineElasticsearch) { _%> val searchDatabaseSizeBefore = IterableUtil.sizeOf(<%= entityInstance %>SearchRepository.findAll()<%= callListBlock %>) <%_ } _%> - <%= persistInstance %>.<%= primaryKey.name %> = <%= this.getJavaValueGeneratorForType(primaryKey.type) %> + <%= persistInstance %>.<%= primaryKey.name %> = <%= primaryKey.javaValueGenerator %> <%_ if (dtoMapstruct) { _%> // Create the <%= entityClass %> @@ -1407,7 +1407,7 @@ class <%= entityClass %>ResourceIT { <%_ if (searchEngineElasticsearch) { _%> val searchDatabaseSizeBefore = IterableUtil.sizeOf(<%= entityInstance %>SearchRepository.findAll()<%= callListBlock %>) <%_ } _%> - <%= persistInstance %>.<%= primaryKey.name %> = <%= this.getJavaValueGeneratorForType(primaryKey.type) %> + <%= persistInstance %>.<%= primaryKey.name %> = <%= primaryKey.javaValueGenerator %> <%_ if (dtoMapstruct) { _%> // Create the <%= entityClass %> @@ -1416,13 +1416,13 @@ class <%= entityClass %>ResourceIT { <%_ } _%> // If url ID doesn't match entity ID, it will throw BadRequestAlertException <%_ if (reactive) { _%> - webTestClient.patch().uri(ENTITY_API_URL_ID, <%= this.getJavaValueGeneratorForType(primaryKey.type) %>) + webTestClient.patch().uri(ENTITY_API_URL_ID, <%= primaryKey.javaValueGenerator %>) .contentType(MediaType.valueOf("application/merge-patch+json")) .bodyValue(convertObjectToJsonBytes(<%= restInstance %>)) .exchange() .expectStatus().isBadRequest <%_ } else { _%> - rest<%= entityClass %>MockMvc.perform(patch(ENTITY_API_URL_ID, <%= this.getJavaValueGeneratorForType(primaryKey.type) %>)<% if (authenticationUsesCsrf) { %>.with(csrf())<% } %> + rest<%= entityClass %>MockMvc.perform(patch(ENTITY_API_URL_ID, <%= primaryKey.javaValueGenerator %>)<% if (authenticationUsesCsrf) { %>.with(csrf())<% } %> .contentType("application/merge-patch+json") .content(convertObjectToJsonBytes(<%= restInstance %>))) .andExpect(status().isBadRequest) @@ -1447,7 +1447,7 @@ class <%= entityClass %>ResourceIT { <%_ if (searchEngineElasticsearch) { _%> val searchDatabaseSizeBefore = IterableUtil.sizeOf(<%= entityInstance %>SearchRepository.findAll()<%= callListBlock %>); <%_ } _%> - <%= persistInstance %>.<%= primaryKey.name %> = <%= this.getJavaValueGeneratorForType(primaryKey.type) %> + <%= persistInstance %>.<%= primaryKey.name %> = <%= primaryKey.javaValueGenerator %> <%_ if (dtoMapstruct) { _%> // Create the <%= entityClass %> From e4e8c2641af1b1d9ef1175aef9b7ea1c25606d0b Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Wed, 7 Aug 2024 22:17:51 -0300 Subject: [PATCH 04/17] use dockerContainers --- .../src/test/kotlin/_package_/config/KafkaTestContainer.kt.ejs | 2 +- .../src/test/kotlin/_package_/config/RedisTestContainer.kt.ejs | 2 +- .../test/kotlin/_package_/config/CassandraTestContainer.kt.ejs | 2 +- .../test/kotlin/_package_/config/CouchbaseTestContainer.kt.ejs | 2 +- .../kotlin/_package_/config/ElasticsearchTestContainer.kt.ejs | 2 +- .../test/kotlin/_package_/config/MongoDbTestContainer.kt.ejs | 2 +- .../src/test/kotlin/_package_/config/Neo4jTestContainer.kt.ejs | 2 +- .../test/kotlin/_package_/config/MariadbTestContainer.kt.ejs | 2 +- .../src/test/kotlin/_package_/config/MsSqlTestContainer.kt.ejs | 2 +- .../src/test/kotlin/_package_/config/MysqlTestContainer.kt.ejs | 2 +- .../test/kotlin/_package_/config/PostgreSqlTestContainer.kt.ejs | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/generators/spring-boot/templates/kafka/src/test/kotlin/_package_/config/KafkaTestContainer.kt.ejs b/generators/spring-boot/templates/kafka/src/test/kotlin/_package_/config/KafkaTestContainer.kt.ejs index 0fff0f9ac..188614087 100644 --- a/generators/spring-boot/templates/kafka/src/test/kotlin/_package_/config/KafkaTestContainer.kt.ejs +++ b/generators/spring-boot/templates/kafka/src/test/kotlin/_package_/config/KafkaTestContainer.kt.ejs @@ -32,7 +32,7 @@ class KafkaTestContainer: InitializingBean, DisposableBean { private val log = LoggerFactory.getLogger(KafkaTestContainer::class.java) @JvmStatic - private var kafkaContainer: KafkaContainer = KafkaContainer(DockerImageName.parse("<%= DOCKER_KAFKA %>")) + private var kafkaContainer: KafkaContainer = KafkaContainer(DockerImageName.parse("<%= dockerContainers.kafka %>")) .withLogConsumer(Slf4jLogConsumer(log)) .withReuse(true) } diff --git a/generators/spring-boot/templates/spring-cache/src/test/kotlin/_package_/config/RedisTestContainer.kt.ejs b/generators/spring-boot/templates/spring-cache/src/test/kotlin/_package_/config/RedisTestContainer.kt.ejs index 887d175aa..db6d562fb 100644 --- a/generators/spring-boot/templates/spring-cache/src/test/kotlin/_package_/config/RedisTestContainer.kt.ejs +++ b/generators/spring-boot/templates/spring-cache/src/test/kotlin/_package_/config/RedisTestContainer.kt.ejs @@ -39,7 +39,7 @@ class RedisTestContainer: InitializingBean, DisposableBean { override fun afterPropertiesSet() { if (null == redisContainer) { - redisContainer = GenericContainer("<%= DOCKER_REDIS %>") + redisContainer = GenericContainer("<%= dockerContainers.redis %>") .withExposedPorts(6379) .withLogConsumer(Slf4jLogConsumer(log)) .withReuse(true) diff --git a/generators/spring-boot/templates/spring-data-cassandra/src/test/kotlin/_package_/config/CassandraTestContainer.kt.ejs b/generators/spring-boot/templates/spring-data-cassandra/src/test/kotlin/_package_/config/CassandraTestContainer.kt.ejs index 9004ec681..5ab07fe5f 100644 --- a/generators/spring-boot/templates/spring-data-cassandra/src/test/kotlin/_package_/config/CassandraTestContainer.kt.ejs +++ b/generators/spring-boot/templates/spring-data-cassandra/src/test/kotlin/_package_/config/CassandraTestContainer.kt.ejs @@ -56,7 +56,7 @@ class CassandraTestContainer : InitializingBean, DisposableBean { private val CONTAINER_STARTUP_TIMEOUT_MINUTES = 10.toLong() @JvmStatic - private var cassandraContainer: CassandraContainer<*> = CassandraContainer(DockerImageName.parse("<%= DOCKER_CASSANDRA %>")) + private var cassandraContainer: CassandraContainer<*> = CassandraContainer(DockerImageName.parse("<%= dockerContainers.cassandra %>")) .withStartupTimeout(Duration.of(CONTAINER_STARTUP_TIMEOUT_MINUTES, ChronoUnit.MINUTES)) .withLogConsumer(Slf4jLogConsumer(log)) .withReuse(true) as CassandraContainer<*> diff --git a/generators/spring-boot/templates/spring-data-couchbase/src/test/kotlin/_package_/config/CouchbaseTestContainer.kt.ejs b/generators/spring-boot/templates/spring-data-couchbase/src/test/kotlin/_package_/config/CouchbaseTestContainer.kt.ejs index 5c3717790..cff716713 100644 --- a/generators/spring-boot/templates/spring-data-couchbase/src/test/kotlin/_package_/config/CouchbaseTestContainer.kt.ejs +++ b/generators/spring-boot/templates/spring-data-couchbase/src/test/kotlin/_package_/config/CouchbaseTestContainer.kt.ejs @@ -46,7 +46,7 @@ class CouchbaseTestContainer : InitializingBean, DisposableBean { override fun afterPropertiesSet() { if (null == couchbaseContainer) { - val dockerImage = DockerImageName.parse("<%= DOCKER_COUCHBASE %>") + val dockerImage = DockerImageName.parse("<%= dockerContainers.couchbase %>") .asCompatibleSubstituteFor("couchbase/server") couchbaseContainer = CouchbaseContainer(dockerImage) .withBucket(BucketDefinition(bucketName)) diff --git a/generators/spring-boot/templates/spring-data-elasticsearch/src/test/kotlin/_package_/config/ElasticsearchTestContainer.kt.ejs b/generators/spring-boot/templates/spring-data-elasticsearch/src/test/kotlin/_package_/config/ElasticsearchTestContainer.kt.ejs index 1ba45c38f..8c42d32c6 100644 --- a/generators/spring-boot/templates/spring-data-elasticsearch/src/test/kotlin/_package_/config/ElasticsearchTestContainer.kt.ejs +++ b/generators/spring-boot/templates/spring-data-elasticsearch/src/test/kotlin/_package_/config/ElasticsearchTestContainer.kt.ejs @@ -47,7 +47,7 @@ class ElasticsearchTestContainer: InitializingBean, DisposableBean { override fun afterPropertiesSet() { if (null == elasticsearchContainer) { elasticsearchContainer = - ElasticsearchContainer(DockerImageName.parse("<%= DOCKER_ELASTICSEARCH_CONTAINER %>").withTag("<%= ELASTICSEARCH_VERSION %>%>")) + ElasticsearchContainer(DockerImageName.parse("<%= dockerContainers.elasticsearchImage %>").withTag("<%= dockerContainers.elasticsearchTag %>%>")) .withStartupTimeout(Duration.of(CONTAINER_STARTUP_TIMEOUT_MINUTES, ChronoUnit.MINUTES)) .withSharedMemorySize(256000000L) .withEnv("ES_JAVA_OPTS", "-Xms256m -Xmx256m") diff --git a/generators/spring-boot/templates/spring-data-mongodb/src/test/kotlin/_package_/config/MongoDbTestContainer.kt.ejs b/generators/spring-boot/templates/spring-data-mongodb/src/test/kotlin/_package_/config/MongoDbTestContainer.kt.ejs index 3f7c068cb..eb61d5eb7 100644 --- a/generators/spring-boot/templates/spring-data-mongodb/src/test/kotlin/_package_/config/MongoDbTestContainer.kt.ejs +++ b/generators/spring-boot/templates/spring-data-mongodb/src/test/kotlin/_package_/config/MongoDbTestContainer.kt.ejs @@ -36,7 +36,7 @@ class MongoDbTestContainer: InitializingBean, DisposableBean { private val log = LoggerFactory.getLogger(MongoDbTestContainer::class.java) @JvmStatic - private var mongodbContainer: MongoDBContainer = MongoDBContainer("<%= DOCKER_MONGODB %>") + private var mongodbContainer: MongoDBContainer = MongoDBContainer("<%= dockerContainers.mongodb %>") .withTmpFs(Collections.singletonMap("/testtmpfs", "rw")) /* .withCommand( "--nojournal --wiredTigerCacheSizeGB 0.25 --wiredTigerCollectionBlockCompressor none --slowOpSampleRate 0 --setParameter ttlMonitorEnabled=false --setParameter diagnosticDataCollectionEnabled=false --setParameter logicalSessionRefreshMillis=6000000 --setParameter enableFlowControl=false --setParameter oplogFetcherUsesExhaust=false --setParameter disableResumableRangeDeleter=true --setParameter enableShardedIndexConsistencyCheck=false --setParameter enableFinerGrainedCatalogCacheRefresh=false --setParameter readHedgingMode=off --setParameter loadRoutingTableOnStartup=false --setParameter rangeDeleterBatchDelayMS=2000000 --setParameter skipShardingConfigurationChecks=true --setParameter syncdelay=3600" diff --git a/generators/spring-boot/templates/spring-data-neo4j/src/test/kotlin/_package_/config/Neo4jTestContainer.kt.ejs b/generators/spring-boot/templates/spring-data-neo4j/src/test/kotlin/_package_/config/Neo4jTestContainer.kt.ejs index bfa307538..20976007c 100644 --- a/generators/spring-boot/templates/spring-data-neo4j/src/test/kotlin/_package_/config/Neo4jTestContainer.kt.ejs +++ b/generators/spring-boot/templates/spring-data-neo4j/src/test/kotlin/_package_/config/Neo4jTestContainer.kt.ejs @@ -46,7 +46,7 @@ class Neo4jTestContainer: InitializingBean, DisposableBean { override fun afterPropertiesSet() { if (null == neo4jContainer) { - neo4jContainer = Neo4jContainer(DockerImageName.parse("<%= DOCKER_NEO4J %>")) + neo4jContainer = Neo4jContainer(DockerImageName.parse("<%= dockerContainers.neo4j %>")) .withoutAuthentication() .withStartupTimeout(Duration.of(CONTAINER_STARTUP_TIMEOUT_MINUTES, ChronoUnit.MINUTES)) .withLogConsumer(Slf4jLogConsumer(log)) diff --git a/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/config/MariadbTestContainer.kt.ejs b/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/config/MariadbTestContainer.kt.ejs index 2c9b336a1..be80deabb 100644 --- a/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/config/MariadbTestContainer.kt.ejs +++ b/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/config/MariadbTestContainer.kt.ejs @@ -40,7 +40,7 @@ class MariadbTestContainer: SqlTestContainer { override fun afterPropertiesSet() { if (null == mariaDBContainer) { - mariaDBContainer = MariaDBContainer("<%= DOCKER_MARIADB %>") + mariaDBContainer = MariaDBContainer("<%= dockerContainers.mariadb %>") .withDatabaseName("<%= baseName %>") .withTmpFs(Collections.singletonMap("/testtmpfs", "rw")) .withLogConsumer(Slf4jLogConsumer(log)) diff --git a/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/config/MsSqlTestContainer.kt.ejs b/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/config/MsSqlTestContainer.kt.ejs index 4a64e0573..0623d4d8e 100644 --- a/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/config/MsSqlTestContainer.kt.ejs +++ b/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/config/MsSqlTestContainer.kt.ejs @@ -40,7 +40,7 @@ class MsSqlTestContainer: SqlTestContainer { override fun afterPropertiesSet() { if (null == mSSQLServerContainer) { - mSSQLServerContainer = MSSQLServerContainer("<%= DOCKER_MSSQL %>") + mSSQLServerContainer = MSSQLServerContainer("<%= dockerContainers.mssql %>") .withTmpFs(Collections.singletonMap("/testtmpfs", "rw")) .withLogConsumer(Slf4jLogConsumer(log)) .withReuse(true) diff --git a/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/config/MysqlTestContainer.kt.ejs b/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/config/MysqlTestContainer.kt.ejs index e93508e72..14c8034bc 100644 --- a/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/config/MysqlTestContainer.kt.ejs +++ b/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/config/MysqlTestContainer.kt.ejs @@ -40,7 +40,7 @@ class MysqlTestContainer : SqlTestContainer { override fun afterPropertiesSet() { if (null == mysqlContainer) { - mysqlContainer = MySQLContainer("<%= DOCKER_MYSQL %>-debian") + mysqlContainer = MySQLContainer("<%= dockerContainers.mysql %>-debian") .withDatabaseName("<%= baseName %>") .withTmpFs(Collections.singletonMap("/testtmpfs", "rw")) .withLogConsumer(Slf4jLogConsumer(log)) diff --git a/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/config/PostgreSqlTestContainer.kt.ejs b/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/config/PostgreSqlTestContainer.kt.ejs index a0f453c2a..efd84000c 100644 --- a/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/config/PostgreSqlTestContainer.kt.ejs +++ b/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/config/PostgreSqlTestContainer.kt.ejs @@ -38,7 +38,7 @@ class PostgreSqlTestContainer : SqlTestContainer { override fun afterPropertiesSet() { if (null == postgreSQLContainer) { - postgreSQLContainer = PostgreSQLContainer("<%= DOCKER_POSTGRESQL %>") + postgreSQLContainer = PostgreSQLContainer("<%= dockerContainers.postgresql %>") .withDatabaseName("<%= baseName %>") .withTmpFs(Collections.singletonMap("/testtmpfs", "rw")) .withLogConsumer(Slf4jLogConsumer(log)) From 8f7b7f1d70f618040f2217e67192d633ac07db3a Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Wed, 7 Aug 2024 22:25:24 -0300 Subject: [PATCH 05/17] templates adjusts --- .../service/_entityClass_QueryService.kt.ejs | 2 +- .../service/criteria/_entityClass_Criteria.kt.ejs | 2 +- .../_entityPackage_/service/dto/_dtoClass_.kt.ejs | 4 ++-- .../service/impl/_entityClass_ServiceImpl.kt.ejs | 10 +++++----- .../web/rest/_entityClass_Resource.kt.ejs | 10 +++++----- .../web/rest/_entityClass_ResourceIT.kt.ejs | 6 +++--- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/_entityClass_QueryService.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/_entityClass_QueryService.kt.ejs index 826d2476f..ac66c256d 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/_entityClass_QueryService.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/_entityClass_QueryService.kt.ejs @@ -145,7 +145,7 @@ class <%= serviceClassName %>( const metamodelFieldName = (relationship.relationshipManyToMany || relationship.relationshipType === 'one-to-many') ? relationship.relationshipFieldNamePlural : relationship.relationshipFieldName; _%> if (criteria.<%= relationship.relationshipName %>Id != null) { specification = specification.and(buildSpecification(criteria.<%= relationship.relationshipName %>Id as Filter<<%= relationship.otherEntity.primaryKey.type %>>) { - it.join(<%= persistClass %>_.<%= metamodelFieldName %>, JoinType.LEFT).get(<%= asEntity(relationship.otherEntityNameCapitalized) %>_.<%= relationship.otherEntity.primaryKey.name %>) + it.join(<%= persistClass %>_.<%= metamodelFieldName %>, JoinType.LEFT).get(<%= relationship.otherEntity.persistClass %>_.<%= relationship.otherEntity.primaryKey.name %>) }) } <%_ }); // forEach diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/criteria/_entityClass_Criteria.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/criteria/_entityClass_Criteria.kt.ejs index 97d72b384..a294f1fa7 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/criteria/_entityClass_Criteria.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/criteria/_entityClass_Criteria.kt.ejs @@ -31,7 +31,7 @@ import tech.jhipster.service.filter.* var extraFilters = {}; fields.filter(field => !field.transient).forEach((field) => { const fieldType = field.fieldType; - if (isFilterableType(fieldType)) { + if (field.filterableField) { var filterType; if (field.fieldIsEnum == true) { filterType = fieldType + 'Filter'; diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/dto/_dtoClass_.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/dto/_dtoClass_.kt.ejs index 46ebe10e9..a6b281f9b 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/dto/_dtoClass_.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/dto/_dtoClass_.kt.ejs @@ -92,9 +92,9 @@ data class <%= dtoClass %>( if (field && field.blobContentTypeText) { property = `var ${reference.name}: String? = null`; } else if (reference.collection && reference.relationship) { - property = `var ${reference.name}: MutableSet<${asDto(reference.relationship.otherEntity.entityNameCapitalized)}> = mutableSetOf()`; + property = `var ${reference.name}: MutableSet<${reference.relationship.otherEntity.dtoClass}> = mutableSetOf()`; } else if (reference.relationship) { - property = `var ${reference.name}: ${asDto(reference.relationship.otherEntity.entityNameCapitalized)}? = null`; + property = `var ${reference.name}: ${reference.relationship.otherEntity.dtoClass}? = null`; } else if (reference.type === 'byte[]') { property = `var ${reference.name}: ByteArray? = null`; } else if (reference.type === 'Integer') { diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/impl/_entityClass_ServiceImpl.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/impl/_entityClass_ServiceImpl.kt.ejs index 3bbe643c5..3b2ea9e26 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/impl/_entityClass_ServiceImpl.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/impl/_entityClass_ServiceImpl.kt.ejs @@ -86,7 +86,7 @@ import org.elasticsearch.index.query.QueryBuilders.queryStringQuery @Service<% if (databaseTypeSql) { %> @Transactional<% } %> class <%= serviceClassName %>( - <%- include('../../_partials_entity_/inject_template', {asEntity, asDto, viaService: false, constructorName: serviceClassName, queryService: false, isUsingMapsId: isUsingMapsId, mapsIdAssoc: mapsIdAssoc, isController: false, noReturn: false}); -%> + <%- include('../../_partials_entity_/inject_template', {viaService: false, constructorName: serviceClassName, queryService: false, isUsingMapsId: isUsingMapsId, mapsIdAssoc: mapsIdAssoc, isController: false, noReturn: false}); -%> )<% if (serviceImpl) { %> : <%= entityClass %>Service<% } %> { private val log = LoggerFactory.getLogger(javaClass) @@ -101,7 +101,7 @@ class <%= serviceClassName %>( <%_ } _%> <% if (serviceImpl) { _%>override <% } %>fun save(<%= instanceName %>: <%= instanceType %>): <% if (reactive) { %>Mono<<% } %><%= instanceType %><% if (reactive) { %>><% } %> { log.debug("Request to save <%= entityClass %> : $<%= instanceName %>") -<%- include('/_global_partials_entity_/save_template', {asEntity, asDto, viaService: false, returnDirectly: true, isUsingMapsId: isUsingMapsId, mapsIdAssoc: mapsIdAssoc, isController: false, isPersisted: false, noReturn: false}); -%> +<%- include('/_global_partials_entity_/save_template', {viaService: false, returnDirectly: true, isUsingMapsId: isUsingMapsId, mapsIdAssoc: mapsIdAssoc, isController: false, isPersisted: false, noReturn: false}); -%> } <%_ if (!serviceImpl) { _%> @@ -127,7 +127,7 @@ class <%= serviceClassName %>( <%_ } _%> <% if (serviceImpl) { %>override <% } %>fun partialUpdate(<%= instanceName %>: <%= instanceType %>): <% if (reactive) { %>Mono<<% } else { %>Optional<<% } %><%= instanceType %>> { log.debug("Request to partially update <%= entityClass %> : {}", <%= instanceName %>) -<%- include('../../_partials_entity_/patch_template', {asEntity, asDto, isService: true, viaService: false}); -%> +<%- include('../../_partials_entity_/patch_template', {isService: true, viaService: false}); -%> } <%_ if (!serviceImpl) { _%> @@ -165,7 +165,7 @@ class <%= serviceClassName %>( <%= entityInstance %>Repository.findAllWithEagerRelationships(pageable)<% if (!dtoMapstruct) { %><% } else { %>.map(<%= entityToDtoReference %>)<% } %> <%_ } _%> -<%- include('../../_partials_entity_/get_filtered_template', {asEntity, asDto}); -%> +<%- include('../../_partials_entity_/get_filtered_template'); -%> <%_ if (reactive) { _%> <%_ if (!serviceImpl) { _%> /** @@ -198,7 +198,7 @@ class <%= serviceClassName %>( @Transactional(readOnly = true) <%_ } _%> <% if (serviceImpl) { %>override <% } %>fun findOne(id: <%= primaryKey.type %>): <%= optionalOrMono %><<%= instanceType %>> { - log.debug("Request to get <%= entityClass %> : $id")<%- include('../../_partials_entity_/get_template', {asEntity, asDto, viaService: false, returnDirectly:true, implementsEagerLoadApis}); -%> + log.debug("Request to get <%= entityClass %> : $id")<%- include('../../_partials_entity_/get_template', {viaService: false, returnDirectly:true, implementsEagerLoadApis}); -%> } <%_ if (!serviceImpl) { _%> diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/_entityClass_Resource.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/_entityClass_Resource.kt.ejs index 2246b89f6..8e52a19d4 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/_entityClass_Resource.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/_entityClass_Resource.kt.ejs @@ -185,7 +185,7 @@ _%><%- include('../../_partials_entity_/inject_template', {viaService: viaServic <%= instanceName %>.<%= field.fieldName %> = UUID.randomUUID() <%_ } _%> <%_ } _%> -<%- include('/_global_partials_entity_/save_template', {asEntity, asDto, viaService: viaService, returnDirectly: false, isUsingMapsId: isUsingMapsId, mapsIdAssoc: mapsIdAssoc, isController: true, noReturn: false}); -%> +<%- include('/_global_partials_entity_/save_template', {viaService: viaService, returnDirectly: false, isUsingMapsId: isUsingMapsId, mapsIdAssoc: mapsIdAssoc, isController: true, noReturn: false}); -%> <%_ if (reactive) { _%> .map { result -> try { @@ -325,7 +325,7 @@ _%><%- include('../../_partials_entity_/inject_template', {viaService: viaServic <%_ } _%> <% } %> <%_ } _%> -<%- include('../../_partials_entity_/patch_template', {asEntity, asDto, isService: false, viaService: viaService}); -%> +<%- include('../../_partials_entity_/patch_template', {isService: false, viaService: viaService}); -%> <%_ if (reactive) { _%> result .switchIfEmpty(Mono.error(ResponseStatusException(HttpStatus.NOT_FOUND))) @@ -360,7 +360,7 @@ _%><%- include('../../_partials_entity_/inject_template', {viaService: viaServic */ @GetMapping("/<%= entityApiUrl %>")<%_ if (databaseTypeSql && isUsingMapsId&& !viaService) { %> @Transactional(readOnly = true)<%_ } _%> - <%- include('../../_partials_entity_/get_all_template', {asEntity, asDto, viaService}); -%> + <%- include('../../_partials_entity_/get_all_template', {viaService}); -%> <%_ if (reactive && paginationNo) { _%> /** @@ -392,7 +392,7 @@ _%><%- include('../../_partials_entity_/inject_template', {viaService: viaServic @Transactional(readOnly = true) <%_ } _%> fun get<%= entityClass %>(@PathVariable id: <%= primaryKey.type %>): <% if (reactive) { %>Mono<<% } %>ResponseEntity<<%= instanceType %>><% if (reactive) { %>><% } %> { - log.debug("REST request to get <%= entityClass %> : $id")<%- include('../../_partials_entity_/get_template', {asEntity, asDto, viaService, returnDirectly:false, implementsEagerLoadApis}); -%> + log.debug("REST request to get <%= entityClass %> : $id")<%- include('../../_partials_entity_/get_template', {viaService, returnDirectly:false, implementsEagerLoadApis}); -%> return ResponseUtil.wrapOrNotFound(<%= instanceName %>) } <%_ if (!readOnly) { _%> @@ -437,6 +437,6 @@ _%><%- include('../../_partials_entity_/inject_template', {viaService: viaServic <%_ } _%> * @return the result of the search. */ - @GetMapping("/_search/<%= entityApiUrl %>")<%- include('../../_partials_entity_/search_template', {asEntity, asDto, viaService}); -%> + @GetMapping("/_search/<%= entityApiUrl %>")<%- include('../../_partials_entity_/search_template', {viaService}); -%> <%_ } _%> } diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs index 485c52898..186daf5f0 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs @@ -947,12 +947,12 @@ class <%= entityClass %>ResourceIT { val <%= relationship.relationshipFieldName %> = <%= persistInstance %>.<%= relationship.relationshipName %> <%_ } else { _%> <%_ if (databaseTypeSql && !reactive) { _%> - var <%= relationship.relationshipFieldName %>: <%= asEntity(relationship.otherEntityNameCapitalized) %> - if (findAll(em, <%= asEntity(relationship.otherEntityNameCapitalized) %>::class).isEmpty()) { + var <%= relationship.relationshipFieldName %>: <%= relationship.otherEntity.persistClass %> + if (findAll(em, <%= relationship.otherEntity.persistClass %>::class).isEmpty()) { <%= entityInstance %>Repository.saveAndFlush(<%= persistInstance %>) <%= relationship.relationshipFieldName %> = <%= createEntityPrefix %><%= relationship.otherEntityNameCapitalized %>ResourceIT.createEntity(em) } else { - <%= relationship.relationshipFieldName %> = findAll(em, <%= asEntity(relationship.otherEntityNameCapitalized) %>::class)[0] + <%= relationship.relationshipFieldName %> = findAll(em, <%= relationship.otherEntity.persistClass %>::class)[0] } <%_ } else { _%> var <%= relationship.relationshipFieldName %> = <%= relationship.otherEntityNameCapitalized %>ResourceIT.createEntity(em) From 9fb5a0aea0b3669f2268d8fe4a54736d24c77aef Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Wed, 7 Aug 2024 22:35:21 -0300 Subject: [PATCH 06/17] templates adjusts --- .../jwt/JWTRelayGatewayFilterFactory.kt.ejs | 58 ----- .../JHipsterBlockHoundIntegration.kt.ejs | 1 + .../oauth2/AuthorizationHeaderUtilTest.kt.ejs | 238 ------------------ 3 files changed, 1 insertion(+), 296 deletions(-) delete mode 100644 generators/spring-boot/templates/src/main/kotlin/_package_/security/jwt/JWTRelayGatewayFilterFactory.kt.ejs delete mode 100644 generators/spring-boot/templates/src/test/kotlin/_package_/security/oauth2/AuthorizationHeaderUtilTest.kt.ejs diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/security/jwt/JWTRelayGatewayFilterFactory.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/security/jwt/JWTRelayGatewayFilterFactory.kt.ejs deleted file mode 100644 index 0b0446f40..000000000 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/security/jwt/JWTRelayGatewayFilterFactory.kt.ejs +++ /dev/null @@ -1,58 +0,0 @@ -<%# - Copyright 2013-2024 the original author or authors from the JHipster project. - - This file is part of the JHipster project, see https://www.jhipster.tech/ - for more information. - - Licensed under the Apache License, Version 2.0 (the " - 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. --%> -package <%= packageName %>.security.jwt - -import org.springframework.http.HttpHeaders.AUTHORIZATION - -import org.springframework.cloud.gateway.filter.GatewayFilter -import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory -import org.springframework.security.oauth2.jwt.ReactiveJwtDecoder -import org.springframework.stereotype.Component -import org.springframework.util.StringUtils - -import org.springframework.web.server.ServerWebExchange - -@Component -class JWTRelayGatewayFilterFactory(private val jwtDecoder: ReactiveJwtDecoder) : AbstractGatewayFilterFactory() { - companion object { - const val BEARER: String = "Bearer " - } - - override fun apply(config: Any) = - GatewayFilter { exchange, chain -> - val bearerToken = exchange.request.headers.getFirst(AUTHORIZATION) - if (bearerToken == null) { - // Allow anonymous requests. - chain.filter(exchange) - } - val token = this.extractToken(bearerToken) - jwtDecoder.decode(token).thenReturn(withBearerAuth(exchange, token)).flatMap(chain::filter) - } - - private fun extractToken(bearerToken: String): String { - if (StringUtils.hasText(bearerToken) && bearerToken.startsWith("Bearer ")) { - return bearerToken.substring(7) - } - throw IllegalArgumentException("Invalid token in Authorization header") - } - - private fun withBearerAuth(exchange: ServerWebExchange, authorizeToken: String): ServerWebExchange{ - return exchange.mutate().request(r -> r.headers(headers -> headers.setBearerAuth(authorizeToken))).build() - } -} diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/config/JHipsterBlockHoundIntegration.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/config/JHipsterBlockHoundIntegration.kt.ejs index 03831529b..9717ddc1f 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/config/JHipsterBlockHoundIntegration.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/config/JHipsterBlockHoundIntegration.kt.ejs @@ -57,5 +57,6 @@ class JHipsterBlockHoundIntegration: BlockHoundIntegration { builder.allowBlockingCallsInside("org.springframework.web.reactive.result.method.InvocableHandlerMethod", "invoke") builder.allowBlockingCallsInside("org.springdoc.core.service.OpenAPIService", "build") builder.allowBlockingCallsInside("org.springdoc.core.service.AbstractRequestService", "build") + // jhipster-needle-blockhound-integration - JHipster will add additional gradle plugins here } } diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/security/oauth2/AuthorizationHeaderUtilTest.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/security/oauth2/AuthorizationHeaderUtilTest.kt.ejs deleted file mode 100644 index 3893ae2eb..000000000 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/security/oauth2/AuthorizationHeaderUtilTest.kt.ejs +++ /dev/null @@ -1,238 +0,0 @@ -<%# - Copyright 2013-2024 the original author or authors from the JHipster project. - -This file is part of the JHipster project, see https://jhipster.github.io/ - for more information. - - 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. --%> -package <%= packageName %>.security.oauth2 - -import org.junit.jupiter.api.Assertions.fail -import org.mockito.ArgumentMatchers.* -import org.mockito.Mockito.* - -import java.time.Duration -import java.time.Instant -import java.util.List -import java.util.Map -import java.util.Optional -import org.assertj.core.api.Assertions -import org.junit.jupiter.api.BeforeEach -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.extension.ExtendWith -import org.mockito.InjectMocks -import org.mockito.Mock -import org.mockito.junit.jupiter.MockitoExtension -import org.springframework.boot.web.client.RestTemplateBuilder -import org.springframework.http.RequestEntity -import org.springframework.http.ResponseEntity -import org.springframework.http.converter.HttpMessageConverter -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken -import org.springframework.security.core.authority.SimpleGrantedAuthority -import org.springframework.security.core.context.SecurityContext -import org.springframework.security.core.context.SecurityContextHolder -import org.springframework.security.oauth2.client.OAuth2AuthorizedClient -import org.springframework.security.oauth2.client.OAuth2AuthorizedClientService -import org.springframework.security.oauth2.client.authentication.OAuth2AuthenticationToken -import org.springframework.security.oauth2.client.registration.ClientRegistration -import org.springframework.security.oauth2.core.* -import org.springframework.security.oauth2.core.oidc.OidcIdToken -import org.springframework.security.oauth2.core.oidc.user.DefaultOidcUser -import org.springframework.security.oauth2.jwt.Jwt -import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken -import org.springframework.web.client.ResponseErrorHandler -import org.springframework.web.client.RestTemplate - -/** - * Test class for the [AuthorizationHeaderUtil] utility class. - */ -@ExtendWith(MockitoExtension::class) -class AuthorizationHeaderUtilTest { - - companion object { - const val VALID_REGISTRATION_ID: String = "OIDC" - const val SUB_VALUE: String = "123456" - } - - @Mock private lateinit var clientService: OAuth2AuthorizedClientService - @Mock private lateinit var restTemplateBuilder: RestTemplateBuilder - @Mock private lateinit var securityContext: SecurityContext - @InjectMocks private lateinit var authorizationHeaderUtil: AuthorizationHeaderUtil - - @BeforeEach - fun setup() { - SecurityContextHolder.setContext(securityContext) - } - - @Test - fun getAuthorizationHeader_Authentication() { - val authenticationToken = UsernamePasswordAuthenticationToken("principal", "credentials") - doReturn(authenticationToken).`when`(securityContext).authentication - - val header = authorizationHeaderUtil.getAuthorizationHeader() - - Assertions.assertThat(header).isNotNull().isEmpty() - } - - @Test - fun getAuthorizationHeader_JwtAuthentication() { - val jwtToken = JwtAuthenticationToken(Jwt("tokenVal", Instant.now(), - Instant.now().plus(Duration.ofMinutes(3)), hashMapOf("alg" to "HS256") as Map?, hashMapOf("sub" to SUB_VALUE) as Map? - )) - doReturn(jwtToken).`when`(securityContext).authentication - - val header = authorizationHeaderUtil.getAuthorizationHeader() - - Assertions.assertThat(header).isNotNull.isNotEmpty.get().isEqualTo("Bearer tokenVal") - } - - @Test - fun getAuthorizationHeader_OAuth2Authentication_InvalidClient() { - val oauth2Token = getTestOAuth2AuthenticationToken("INVALID") - - doReturn(oauth2Token).`when`(securityContext).authentication - - Assertions.assertThatThrownBy { - authorizationHeaderUtil.getAuthorizationHeader() - }.isInstanceOf(OAuth2AuthorizationException::class.java).hasMessageContaining("[access_denied] The token is expired") - } - - @Test - fun getAuthorizationHeader_OAuth2Authentication() { - val oauth2Token = getTestOAuth2AuthenticationToken(VALID_REGISTRATION_ID) - val authorizedClient = getTestOAuth2AuthorizedClient() - - doReturn(oauth2Token).`when`(securityContext).authentication - doReturn(authorizedClient).`when`(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) - - val header = authorizationHeaderUtil.getAuthorizationHeader() - Assertions.assertThat(header).isNotNull.isNotEmpty.get().isEqualTo("Bearer tokenVal") - } - - @Test - fun getAuthorizationHeader_OAuth2Authentication_RefreshToken() { - - doReturn(restTemplateBuilder).`when`(restTemplateBuilder).additionalMessageConverters(any(HttpMessageConverter::class.java)) - doReturn(restTemplateBuilder).`when`(restTemplateBuilder).errorHandler(any(ResponseErrorHandler::class.java)) - doReturn(restTemplateBuilder).`when`(restTemplateBuilder).basicAuthentication(anyString(), anyString()) - - val oauth2Token = getTestOAuth2AuthenticationToken(VALID_REGISTRATION_ID) - val authorizedClient = getTestOAuth2AuthorizedClient(true) - - doReturn(oauth2Token).`when`(securityContext).authentication - doReturn(authorizedClient).`when`(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) - - val restTemplate = mock(RestTemplate::class.java) - val refreshResponse = ResponseEntity.of(getTestOAuthIdpTokenResponseDTO(true)) - doReturn(refreshResponse).`when`(restTemplate).exchange(any(RequestEntity::class.java), eq(OAuthIdpTokenResponseDTO::class.java)) - doReturn(restTemplate).`when`(restTemplateBuilder).build() - - val header = authorizationHeaderUtil.getAuthorizationHeader() - Assertions.assertThat(header).isNotNull.isNotEmpty.get().isEqualTo("Bearer tokenVal") - } - - @Test - fun getAuthorizationHeader_OAuth2Authentication_RefreshToken_NoRefreshToken() { - - doReturn(restTemplateBuilder).`when`(restTemplateBuilder).additionalMessageConverters(any(HttpMessageConverter::class.java)) - doReturn(restTemplateBuilder).`when`(restTemplateBuilder).errorHandler(any(ResponseErrorHandler::class.java)) - doReturn(restTemplateBuilder).`when`(restTemplateBuilder).basicAuthentication(anyString(), anyString()) - - val oauth2Token = getTestOAuth2AuthenticationToken(VALID_REGISTRATION_ID) - val authorizedClient = getTestOAuth2AuthorizedClient(true) - - doReturn(oauth2Token).`when`(securityContext).authentication - doReturn(authorizedClient).`when`(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) - - val restTemplate = mock(RestTemplate::class.java) - val refreshResponse = ResponseEntity.of(getTestOAuthIdpTokenResponseDTO(false)) - doReturn(refreshResponse).`when`(restTemplate).exchange(any(RequestEntity::class.java), eq(OAuthIdpTokenResponseDTO::class.java)) - doReturn(restTemplate).`when`(restTemplateBuilder).build() - - val header = authorizationHeaderUtil.getAuthorizationHeader() - Assertions.assertThat(header).isNotNull.isNotEmpty.get().isEqualTo("Bearer tokenVal") - } - - @Test - fun getAuthorizationHeader_OAuth2Authentication_RefreshTokenFails() { - - doReturn(restTemplateBuilder).`when`(restTemplateBuilder).additionalMessageConverters(any(HttpMessageConverter::class.java)) - doReturn(restTemplateBuilder).`when`(restTemplateBuilder).errorHandler(any(ResponseErrorHandler::class.java)) - doReturn(restTemplateBuilder).`when`(restTemplateBuilder).basicAuthentication(anyString(), anyString()) - - val oauth2Token = getTestOAuth2AuthenticationToken(VALID_REGISTRATION_ID) - val authorizedClient = getTestOAuth2AuthorizedClient(true) - - doReturn(oauth2Token).`when`(securityContext).authentication - doReturn(authorizedClient).`when`(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) - - val restTemplate = mock(RestTemplate::class.java) - doThrow(OAuth2AuthorizationException(OAuth2Error("E"), "error")).`when`(restTemplate).exchange(any(RequestEntity::class.java), eq(OAuthIdpTokenResponseDTO::class.java)) - doReturn(restTemplate).`when`(restTemplateBuilder).build() - - Assertions.assertThatThrownBy { authorizationHeaderUtil.getAuthorizationHeader() }.isInstanceOf(OAuth2AuthenticationException::class.java) - .hasMessageContaining("error") - } - - private fun getTestOAuth2AuthorizedClient() = getTestOAuth2AuthorizedClient(false) - - private fun getTestOAuth2AuthorizedClient(accessTokenExpired: Boolean):OAuth2AuthorizedClient { - val issuedAt = Instant.now() - var expiresAt: Instant? = null - if (accessTokenExpired) { - expiresAt = issuedAt.plus(Duration.ofNanos(1)) - try { - Thread.sleep(1) - } catch (e: Exception) { - fail("Error in Thread.sleep(1) : " + e.message) - } - } else { - expiresAt = issuedAt.plus(Duration.ofMinutes(3)) - } - val token = OAuth2AccessToken(OAuth2AccessToken.TokenType.BEARER, "tokenVal", issuedAt, expiresAt) - - return OAuth2AuthorizedClient( - ClientRegistration.withRegistrationId(VALID_REGISTRATION_ID) - .authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE) - .clientId("web-app") - .clientSecret("secret") - .redirectUri("/login/oauth2/code/oidc") - .authorizationUri("http://localhost:8080/auth/realms/master/protocol/openid-connect/auth") - .tokenUri("https://localhost:8080/auth/realms/master/protocol/openid-connect/token") - .build(), - "sub", - token, - OAuth2RefreshToken("refreshVal", Instant.now())) - } - - private fun getTestOAuth2AuthenticationToken(registrationId: String): OAuth2AuthenticationToken { - return OAuth2AuthenticationToken( - DefaultOidcUser(listOf(SimpleGrantedAuthority("USER")), - OidcIdToken.withTokenValue("tokenVal").claim("sub", SUB_VALUE).build()), - listOf(SimpleGrantedAuthority("USER")), registrationId) - } - - private fun getTestOAuthIdpTokenResponseDTO(hasRefreshToken: Boolean): Optional { - val dto = OAuthIdpTokenResponseDTO() - dto.accessToken = "tokenVal" - dto.idToken = "tokenVal" - dto.notBefore = 0L - dto.refreshExpiresIn = "1800" - dto.sessionState = "ccea4a55" - dto.expiresIn = 300L - dto.refreshToken = if (hasRefreshToken) "tokenVal" else null - dto.scope = "openid email profile offline_access" - return Optional.of(dto) - } -} From 0bbb3fa9cf731f2add351590e82c3895bacac820 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Wed, 7 Aug 2024 22:38:59 -0300 Subject: [PATCH 07/17] test adjusts --- .../__snapshots__/generator.spec.js.snap | 64 +- .../__snapshots__/matrix.spec.js.snap | 3530 ++++------------- generators/spring-boot/generator.js | 4 - test/__snapshots__/app.spec.js.snap | 782 ++-- test/__snapshots__/server.spec.js.snap | 163 +- test/utils/expected-files.js | 25 +- 6 files changed, 1180 insertions(+), 3388 deletions(-) diff --git a/generators/spring-boot/__snapshots__/generator.spec.js.snap b/generators/spring-boot/__snapshots__/generator.spec.js.snap index c40a6903f..0ba783b39 100644 --- a/generators/spring-boot/__snapshots__/generator.spec.js.snap +++ b/generators/spring-boot/__snapshots__/generator.spec.js.snap @@ -95,24 +95,9 @@ exports[`SubGenerator kotlin of kotlin JHipster blueprint > run > should succeed "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -164,9 +149,6 @@ exports[`SubGenerator kotlin of kotlin JHipster blueprint > run > should succeed "src/main/kotlin/com/mycompany/myapp/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -176,6 +158,9 @@ exports[`SubGenerator kotlin of kotlin JHipster blueprint > run > should succeed "src/main/kotlin/com/mycompany/myapp/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -218,9 +203,6 @@ exports[`SubGenerator kotlin of kotlin JHipster blueprint > run > should succeed "src/main/kotlin/com/mycompany/myapp/domain/User.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -269,15 +251,6 @@ exports[`SubGenerator kotlin of kotlin JHipster blueprint > run > should succeed "src/main/kotlin/com/mycompany/myapp/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -344,13 +317,19 @@ exports[`SubGenerator kotlin of kotlin JHipster blueprint > run > should succeed "src/main/kotlin/com/mycompany/myapp/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/web/rest/AccountResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/ClientForwardController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthenticateController.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/CriteriaAndDtoResource.kt": { @@ -371,9 +350,6 @@ exports[`SubGenerator kotlin of kotlin JHipster blueprint > run > should succeed "src/main/kotlin/com/mycompany/myapp/web/rest/SimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/UserJWTController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/web/rest/UserResource.kt": { "stateCleared": "modified", }, @@ -650,13 +626,16 @@ exports[`SubGenerator kotlin of kotlin JHipster blueprint > run > should succeed "src/test/kotlin/com/mycompany/myapp/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/service/MailServiceIT.kt": { @@ -686,7 +665,10 @@ exports[`SubGenerator kotlin of kotlin JHipster blueprint > run > should succeed "src/test/kotlin/com/mycompany/myapp/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthenticateControllerIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/CriteriaAndDtoResourceIT.kt": { @@ -710,9 +692,6 @@ exports[`SubGenerator kotlin of kotlin JHipster blueprint > run > should succeed "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/UserJWTControllerIT.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/myapp/web/rest/UserResourceIT.kt": { "stateCleared": "modified", }, @@ -758,8 +737,5 @@ exports[`SubGenerator kotlin of kotlin JHipster blueprint > run > should succeed "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; diff --git a/generators/spring-boot/__snapshots__/matrix.spec.js.snap b/generators/spring-boot/__snapshots__/matrix.spec.js.snap index 54b93bb3f..799dcff5d 100644 --- a/generators/spring-boot/__snapshots__/matrix.spec.js.snap +++ b/generators/spring-boot/__snapshots__/matrix.spec.js.snap @@ -155,27 +155,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/kafka.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -197,6 +182,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -218,15 +209,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -239,6 +221,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -269,9 +254,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -305,15 +287,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/security/jwt/JWTRelayGatewayFilterFactory.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -380,6 +356,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/web/rest/AuthenticateController.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -401,9 +380,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/web/rest/SimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/UserJWTController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/UserResource.kt": { "stateCleared": "modified", }, @@ -584,13 +560,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/com/mycompany/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/AuthenticationIntegrationTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/service/MailServiceIT.kt": { @@ -611,12 +590,21 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/com/mycompany/web/filter/ModifyServersOpenApiFilterTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/rest/AuthenticateControllerIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -638,9 +626,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/com/mycompany/web/rest/TestUtil.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/web/rest/UserJWTControllerIT.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/web/rest/UserResourceIT.kt": { "stateCleared": "modified", }, @@ -683,9 +668,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -793,24 +775,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/docker/couchbase/scripts/configure-node.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -853,9 +820,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -868,6 +832,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -898,9 +865,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -928,15 +892,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/security/SecurityUtils.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/security/jwt/JWTRelayGatewayFilterFactory.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -973,6 +931,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/rest/AuthenticateController.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -985,9 +946,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/web/rest/SimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/UserJWTController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/errors/BadRequestAlertException.kt": { "stateCleared": "modified", }, @@ -1108,13 +1066,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/tech/jhipster/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/service/dto/AnotherSimpleDTOTest.kt": { @@ -1129,12 +1090,21 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/tech/jhipster/service/mapper/CriteriaAndDtoMapperTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/tech/jhipster/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/tech/jhipster/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/tech/jhipster/web/rest/AuthenticateControllerIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -1150,9 +1120,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/tech/jhipster/web/rest/TestUtil.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/UserJWTControllerIT.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/WithUnauthenticatedMockUser.kt": { "stateCleared": "modified", }, @@ -1180,9 +1147,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/resources/tech/jhipster/cucumber/gitkeep": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -1287,18 +1251,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/docker/central-server-config/localhost-config/application.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, @@ -1317,9 +1269,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/docker/mongodb/scripts/init_replicaset.js": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -1365,9 +1314,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -1380,6 +1326,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -1410,9 +1359,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -1437,15 +1383,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/security/SecurityUtils.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/security/jwt/JWTRelayGatewayFilterFactory.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -1485,6 +1425,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/rest/AuthenticateController.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -1500,9 +1443,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/web/rest/SimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/UserJWTController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/errors/BadRequestAlertException.kt": { "stateCleared": "modified", }, @@ -1614,13 +1554,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/tech/jhipster/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/service/dto/AnotherSimpleDTOTest.kt": { @@ -1638,12 +1581,21 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/tech/jhipster/web/filter/ModifyServersOpenApiFilterTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/tech/jhipster/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/tech/jhipster/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/tech/jhipster/web/rest/AuthenticateControllerIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -1659,9 +1611,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/tech/jhipster/web/rest/TestUtil.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/UserJWTControllerIT.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/WithUnauthenticatedMockUser.kt": { "stateCleared": "modified", }, @@ -1692,9 +1641,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/resources/tech/jhipster/cucumber/gitkeep": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -1832,18 +1778,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/docker/central-server-config/localhost-config/application.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, @@ -1853,9 +1787,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/docker/kafka.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/neo4j.yml": { "stateCleared": "modified", }, @@ -1880,6 +1811,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -1904,15 +1841,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -1925,6 +1853,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -1964,9 +1895,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -2003,15 +1931,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/security/jwt/JWTRelayGatewayFilterFactory.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -2078,6 +2000,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/web/rest/AuthenticateController.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/web/rest/AuthorityResource.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -2099,9 +2027,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/web/rest/SimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/UserJWTController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/UserResource.kt": { "stateCleared": "modified", }, @@ -2252,13 +2177,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/com/mycompany/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/service/MailServiceIT.kt": { @@ -2285,12 +2213,24 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/com/mycompany/web/filter/ModifyServersOpenApiFilterTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/rest/AuthenticateControllerIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/rest/AuthorityResourceIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -2312,9 +2252,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/com/mycompany/web/rest/TestUtil.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/web/rest/UserJWTControllerIT.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/web/rest/UserResourceIT.kt": { "stateCleared": "modified", }, @@ -2357,9 +2294,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -2494,27 +2428,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/kafka.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -2539,6 +2458,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -2560,18 +2485,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -2584,6 +2500,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -2635,9 +2554,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -2650,9 +2566,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/repository/AnotherSimpleSqlHelper.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/repository/AuthorityRepository.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/CriteriaAndDtoRepository.kt": { "stateCleared": "modified", }, @@ -2731,15 +2644,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/security/jwt/JWTRelayGatewayFilterFactory.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -2803,6 +2710,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/web/rest/AuthenticateController.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/web/rest/AuthorityResource.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -2821,9 +2734,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/web/rest/SimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/UserJWTController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/UserResource.kt": { "stateCleared": "modified", }, @@ -2953,24 +2863,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/IntegrationTest.kt": { "stateCleared": "modified", }, @@ -3040,13 +2932,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/com/mycompany/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/service/MailServiceIT.kt": { @@ -3070,12 +2965,24 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/com/mycompany/service/mapper/UserMapperTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/rest/AuthenticateControllerIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/rest/AuthorityResourceIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -3097,9 +3004,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/com/mycompany/web/rest/TestUtil.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/web/rest/UserJWTControllerIT.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/web/rest/UserResourceIT.kt": { "stateCleared": "modified", }, @@ -3142,9 +3046,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -3258,27 +3159,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/docker/cassandra/scripts/execute-cql.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -3327,9 +3213,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -3372,9 +3255,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/domain/User.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -3489,9 +3369,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -3561,24 +3438,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/CassandraKeyspaceIT.kt": { "stateCleared": "modified", }, @@ -3651,6 +3510,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/tech/jhipster/test/util/OAuth2TestUtil.kt": { "stateCleared": "modified", }, + "src/test/kotlin/tech/jhipster/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/tech/jhipster/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, @@ -3705,9 +3570,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -3860,18 +3722,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/docker/couchbase/scripts/configure-node.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, @@ -3884,9 +3734,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -3914,6 +3761,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -3938,15 +3791,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -3995,9 +3839,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -4091,6 +3932,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/web/rest/AuthInfoResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/web/rest/AuthorityResource.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -4127,9 +3971,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/vm/RouteVM.kt": { "stateCleared": "modified", }, @@ -4208,24 +4049,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/IntegrationTest.kt": { "stateCleared": "modified", }, @@ -4316,12 +4139,21 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/com/mycompany/web/filter/ModifyServersOpenApiFilterTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/rest/AuthorityResourceIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -4376,9 +4208,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -4522,18 +4351,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, @@ -4555,9 +4372,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/docker/mongodb/scripts/init_replicaset.js": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -4585,6 +4399,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -4606,15 +4426,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -4666,9 +4477,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -4759,6 +4567,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/web/rest/AuthInfoResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/web/rest/AuthorityResource.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -4795,9 +4606,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/com/mycompany/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/vm/RouteVM.kt": { "stateCleared": "modified", }, @@ -4933,12 +4741,21 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/com/mycompany/web/filter/ModifyServersOpenApiFilterTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/rest/AuthorityResourceIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -4996,9 +4813,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -5106,27 +4920,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/neo4j.yml": { "stateCleared": "modified", }, @@ -5178,9 +4977,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -5232,9 +5028,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/domain/User.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -5325,6 +5118,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/web/rest/AuthInfoResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/rest/AuthorityResource.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -5358,9 +5154,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/vm/RouteVM.kt": { "stateCleared": "modified", }, @@ -5409,24 +5202,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/IntegrationTest.kt": { "stateCleared": "modified", }, @@ -5508,12 +5283,21 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/tech/jhipster/web/filter/ModifyServersOpenApiFilterTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/tech/jhipster/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/tech/jhipster/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/tech/jhipster/web/rest/AuthorityResourceIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -5565,9 +5349,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -5672,18 +5453,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/docker/central-server-config/localhost-config/application.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, @@ -5693,9 +5462,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -5753,9 +5519,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -5819,9 +5582,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/domain/User.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -5831,9 +5591,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/repository/AnotherSimpleSqlHelper.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/repository/AuthorityRepository.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/CriteriaAndDtoRepository.kt": { "stateCleared": "modified", }, @@ -5969,6 +5726,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/web/rest/AuthInfoResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/rest/AuthorityResource.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -6002,9 +5762,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/main/kotlin/tech/jhipster/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/vm/RouteVM.kt": { "stateCleared": "modified", }, @@ -6173,12 +5930,21 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/kotlin/tech/jhipster/web/filter/ModifyServersOpenApiFilterTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/tech/jhipster/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/tech/jhipster/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/tech/jhipster/web/rest/AuthorityResourceIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -6233,9 +5999,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > gatew "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -6346,30 +6109,15 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/central-server-config/localhost-config/application.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, "src/main/docker/hazelcast-management-center.yml": { "stateCleared": "modified", }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -6409,6 +6157,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/CacheConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/config/Constants.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/config/DatabaseConfiguration.kt": { "stateCleared": "modified", }, @@ -6424,9 +6175,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -6436,7 +6184,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/StaticResourcesWebConfiguration.kt": { + "src/main/kotlin/tech/jhipster/config/SecurityJwtConfiguration.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/config/WebConfigurer.kt": { @@ -6469,9 +6217,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/domain/SimpleEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -6499,15 +6244,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/security/SecurityUtils.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -6538,9 +6274,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -6661,9 +6394,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/config/SpringBootTestClassOrderer.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/config/StaticResourcesWebConfigurerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/config/WebConfigurerTest.kt": { "stateCleared": "modified", }, @@ -6709,13 +6439,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/JwtAuthenticationTestUtils.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/TestAuthenticationResource.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/service/dto/AnotherSimpleRestTest.kt": { @@ -6727,9 +6463,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -6775,9 +6508,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/tech/jhipster/cucumber/gitkeep": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -6933,27 +6663,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/kafka.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -6975,31 +6690,31 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/AsyncConfiguration.kt": { + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/CRLFLogConverter.kt": { + "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/DatabaseConfiguration.kt": { + "src/main/kotlin/com/mycompany/config/AsyncConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/DateTimeFormatConfiguration.kt": { + "src/main/kotlin/com/mycompany/config/CRLFLogConverter.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { + "src/main/kotlin/com/mycompany/config/Constants.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { + "src/main/kotlin/com/mycompany/config/DatabaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { + "src/main/kotlin/com/mycompany/config/DateTimeFormatConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { + "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { @@ -7014,6 +6729,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -7044,9 +6762,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -7074,12 +6789,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/security/SecurityUtils.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -7107,9 +6816,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/service/mapper/EntityMapper.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/filter/SpaWebFilter.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, @@ -7278,13 +6984,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/com/mycompany/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/JwtAuthenticationTestUtils.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/TestAuthenticationResource.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/service/dto/AnotherSimpleDTOTest.kt": { @@ -7344,9 +7056,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -7442,27 +7151,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/couchbase/scripts/configure-node.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, "src/main/docker/hazelcast-management-center.yml": { "stateCleared": "modified", }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -7517,9 +7211,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -7529,7 +7220,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/StaticResourcesWebConfiguration.kt": { + "src/main/kotlin/tech/jhipster/config/SecurityJwtConfiguration.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/config/WebConfigurer.kt": { @@ -7565,9 +7256,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/domain/SimpleEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -7601,15 +7289,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/security/SpringSecurityAuditorAware.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -7640,9 +7319,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -7739,9 +7415,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/config/SpringBootTestClassOrderer.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/config/StaticResourcesWebConfigurerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/config/TestContainersSpringContextCustomizerFactory.kt": { "stateCleared": "modified", }, @@ -7790,13 +7463,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/JwtAuthenticationTestUtils.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/TestAuthenticationResource.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/service/dto/AnotherSimpleRestTest.kt": { @@ -7814,9 +7493,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -7859,9 +7535,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/tech/jhipster/cucumber/gitkeep": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -8008,18 +7681,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/couchbase/scripts/configure-node.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, @@ -8029,9 +7690,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/kafka.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -8053,6 +7711,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -8077,15 +7741,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -8098,6 +7753,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -8131,9 +7789,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -8164,12 +7819,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/security/SecurityUtils.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -8197,9 +7846,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/service/mapper/EntityMapper.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/filter/SpaWebFilter.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, @@ -8353,13 +7999,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/com/mycompany/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TestAuthenticationResource.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/service/dto/AnotherSimpleDTOTest.kt": { @@ -8425,9 +8077,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -8523,21 +8172,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, "src/main/docker/hazelcast-management-center.yml": { "stateCleared": "modified", }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, @@ -8553,9 +8190,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/mongodb/scripts/init_replicaset.js": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -8610,9 +8244,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -8622,7 +8253,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/StaticResourcesWebConfiguration.kt": { + "src/main/kotlin/tech/jhipster/config/SecurityJwtConfiguration.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/config/WebConfigurer.kt": { @@ -8658,9 +8289,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/domain/SimpleEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -8691,15 +8319,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/security/SpringSecurityAuditorAware.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -8730,9 +8349,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -8802,27 +8418,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/MicroserviceGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/IntegrationTest.kt": { "stateCleared": "modified", }, @@ -8841,9 +8436,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/config/SpringBootTestClassOrderer.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/config/StaticResourcesWebConfigurerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/config/TestContainersSpringContextCustomizerFactory.kt": { "stateCleared": "modified", }, @@ -8883,13 +8475,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/AuthenticationIntegrationTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TestAuthenticationResource.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/service/dto/AnotherSimpleRestTest.kt": { @@ -8907,9 +8505,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -8952,9 +8547,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -9083,18 +8675,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, @@ -9113,9 +8693,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/mongodb/scripts/init_replicaset.js": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -9137,6 +8714,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -9158,15 +8741,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -9179,6 +8753,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -9212,9 +8789,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -9242,12 +8816,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/security/SecurityUtils.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -9275,9 +8843,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/service/mapper/EntityMapper.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/filter/SpaWebFilter.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, @@ -9347,27 +8912,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/MicroserviceGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/IntegrationTest.kt": { "stateCleared": "modified", }, @@ -9431,13 +8975,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/com/mycompany/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/JwtAuthenticationTestUtils.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/TestAuthenticationResource.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/service/dto/AnotherSimpleDTOTest.kt": { @@ -9500,9 +9050,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -9604,27 +9151,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, "src/main/docker/hazelcast-management-center.yml": { "stateCleared": "modified", }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/neo4j.yml": { "stateCleared": "modified", }, @@ -9682,9 +9214,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -9694,7 +9223,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/StaticResourcesWebConfiguration.kt": { + "src/main/kotlin/tech/jhipster/config/SecurityJwtConfiguration.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/config/WebConfigurer.kt": { @@ -9730,9 +9259,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -9760,15 +9286,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/security/SecurityUtils.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -9799,9 +9316,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -9886,9 +9400,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/config/SpringBootTestClassOrderer.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/config/StaticResourcesWebConfigurerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/config/WebConfigurerTest.kt": { "stateCleared": "modified", }, @@ -9925,13 +9436,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/JwtAuthenticationTestUtils.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/TestAuthenticationResource.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/service/dto/AnotherSimpleDTOTest.kt": { @@ -9949,9 +9466,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -9994,9 +9508,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -10119,27 +9630,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/kafka.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/neo4j.yml": { "stateCleared": "modified", }, @@ -10164,6 +9660,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -10185,15 +9687,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -10206,6 +9699,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -10239,9 +9735,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/domain/SimpleEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -10269,12 +9762,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/security/SecurityUtils.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -10302,9 +9789,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/service/mapper/EntityMapper.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/filter/SpaWebFilter.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, @@ -10440,13 +9924,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/com/mycompany/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/JwtAuthenticationTestUtils.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/TestAuthenticationResource.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/service/dto/AnotherSimpleRestTest.kt": { @@ -10512,9 +10002,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -10598,27 +10085,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, "src/main/docker/hazelcast-management-center.yml": { "stateCleared": "modified", }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -10679,9 +10151,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -10691,7 +10160,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/StaticResourcesWebConfiguration.kt": { + "src/main/kotlin/tech/jhipster/config/SecurityJwtConfiguration.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/config/WebConfigurer.kt": { @@ -10727,9 +10196,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/domain/SimpleEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -10766,15 +10232,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/security/SpringSecurityAuditorAware.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -10817,9 +10274,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -10931,27 +10385,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/MicroserviceGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/IntegrationTest.kt": { "stateCleared": "modified", }, @@ -10976,9 +10409,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/config/SqlTestContainersSpringContextCustomizerFactory.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/config/StaticResourcesWebConfigurerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/config/WebConfigurerTest.kt": { "stateCleared": "modified", }, @@ -11024,13 +10454,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TestAuthenticationResource.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/service/dto/AnotherSimpleRestTest.kt": { @@ -11048,9 +10484,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -11096,9 +10529,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -11239,18 +10669,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/central-server-config/localhost-config/application.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, @@ -11260,9 +10678,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/kafka.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -11287,6 +10702,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -11311,18 +10732,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -11335,6 +10747,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -11380,9 +10795,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -11470,12 +10882,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/security/SecurityUtils.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -11503,9 +10909,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/service/mapper/EntityMapper.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/filter/SpaWebFilter.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, @@ -11629,27 +11032,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/MicroserviceGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/IntegrationTest.kt": { "stateCleared": "modified", }, @@ -11716,13 +11098,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/com/mycompany/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TestAuthenticationResource.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/service/dto/AnotherSimpleDTOTest.kt": { @@ -11791,9 +11179,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -11901,30 +11286,15 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/cassandra/scripts/execute-cql.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, "src/main/docker/hazelcast-management-center.yml": { "stateCleared": "modified", }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -11955,12 +11325,18 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/client/AuthorizationHeaderUtil.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/client/AuthorizedFeignClient.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/client/OAuth2InterceptedFeignConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/client/OAuthIdpTokenResponseDTO.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/client/TokenRelayRequestInterceptor.kt": { "stateCleared": "modified", }, @@ -11991,9 +11367,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -12003,9 +11376,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/StaticResourcesWebConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -12039,9 +11409,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -12072,15 +11439,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/security/oauth2/AudienceValidator.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/oauth2/AuthorizationHeaderUtil.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/security/oauth2/JwtGrantedAuthorityConverter.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/oauth2/OAuthIdpTokenResponseDTO.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -12123,9 +11484,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -12156,9 +11514,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -12231,6 +11586,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/TechnicalStructureTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/tech/jhipster/client/AuthorizationHeaderUtilTest.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/tech/jhipster/config/AsyncSyncConfiguration.kt": { "stateCleared": "modified", }, @@ -12246,9 +11604,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/config/SpringBootTestClassOrderer.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/config/StaticResourcesWebConfigurerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/config/TestSecurityConfiguration.kt": { "stateCleared": "modified", }, @@ -12297,9 +11652,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/security/oauth2/AudienceValidatorTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/oauth2/AuthorizationHeaderUtilTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/service/UserServiceIT.kt": { "stateCleared": "modified", }, @@ -12315,9 +11667,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -12366,9 +11715,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/tech/jhipster/cucumber/gitkeep": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -12515,18 +11861,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/central-server-config/localhost-config/application.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, @@ -12539,9 +11873,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -12569,6 +11900,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -12593,15 +11930,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -12647,9 +11975,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/domain/User.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -12722,9 +12047,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/filter/SpaWebFilter.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, @@ -12761,9 +12083,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -12971,9 +12290,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -13081,30 +12397,15 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/couchbase/scripts/configure-node.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, "src/main/docker/hazelcast-management-center.yml": { "stateCleared": "modified", }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -13135,12 +12436,18 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/client/AuthorizationHeaderUtil.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/client/AuthorizedFeignClient.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/client/OAuth2InterceptedFeignConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/client/OAuthIdpTokenResponseDTO.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/client/TokenRelayRequestInterceptor.kt": { "stateCleared": "modified", }, @@ -13171,9 +12478,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -13183,9 +12487,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/StaticResourcesWebConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -13225,9 +12526,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -13267,15 +12565,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/security/oauth2/AudienceValidator.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/oauth2/AuthorizationHeaderUtil.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/security/oauth2/JwtGrantedAuthorityConverter.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/oauth2/OAuthIdpTokenResponseDTO.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -13318,9 +12610,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -13351,9 +12640,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -13435,6 +12721,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/TechnicalStructureTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/tech/jhipster/client/AuthorizationHeaderUtilTest.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/tech/jhipster/config/AsyncSyncConfiguration.kt": { "stateCleared": "modified", }, @@ -13447,9 +12736,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/config/SpringBootTestClassOrderer.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/config/StaticResourcesWebConfigurerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/config/TestContainersSpringContextCustomizerFactory.kt": { "stateCleared": "modified", }, @@ -13495,9 +12781,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/security/oauth2/AudienceValidatorTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/oauth2/AuthorizationHeaderUtilTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/service/UserServiceIT.kt": { "stateCleared": "modified", }, @@ -13519,9 +12802,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -13570,9 +12850,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -13713,18 +12990,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/couchbase/scripts/configure-node.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, @@ -13734,9 +12999,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -13764,6 +13026,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -13785,15 +13053,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -13845,9 +13104,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/domain/User.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -13926,9 +13182,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/filter/SpaWebFilter.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, @@ -13965,9 +13218,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -14190,9 +13440,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -14291,21 +13538,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/central-server-config/localhost-config/application.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, "src/main/docker/hazelcast-management-center.yml": { "stateCleared": "modified", }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, @@ -14327,9 +13562,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/mongodb/scripts/init_replicaset.js": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -14360,12 +13592,18 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/client/AuthorizationHeaderUtil.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/client/AuthorizedFeignClient.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/client/OAuth2InterceptedFeignConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/client/OAuthIdpTokenResponseDTO.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/client/TokenRelayRequestInterceptor.kt": { "stateCleared": "modified", }, @@ -14399,9 +13637,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -14411,9 +13646,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/StaticResourcesWebConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -14456,9 +13688,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -14495,15 +13724,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/security/oauth2/AudienceValidator.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/oauth2/AuthorizationHeaderUtil.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/security/oauth2/JwtGrantedAuthorityConverter.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/oauth2/OAuthIdpTokenResponseDTO.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -14546,9 +13769,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -14579,9 +13799,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -14624,6 +13841,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/TechnicalStructureTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/tech/jhipster/client/AuthorizationHeaderUtilTest.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/tech/jhipster/config/AsyncSyncConfiguration.kt": { "stateCleared": "modified", }, @@ -14636,9 +13856,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/config/SpringBootTestClassOrderer.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/config/StaticResourcesWebConfigurerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/config/TestContainersSpringContextCustomizerFactory.kt": { "stateCleared": "modified", }, @@ -14693,9 +13910,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/security/oauth2/AudienceValidatorTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/oauth2/AuthorizationHeaderUtilTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/service/UserServiceIT.kt": { "stateCleared": "modified", }, @@ -14717,9 +13931,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -14771,9 +13982,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/tech/jhipster/cucumber/gitkeep": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -14905,18 +14113,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, @@ -14938,9 +14134,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/mongodb/scripts/init_replicaset.js": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -14968,6 +14161,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -14989,15 +14188,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -15052,9 +14242,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/domain/User.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -15130,9 +14317,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/filter/SpaWebFilter.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, @@ -15169,9 +14353,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -15352,9 +14533,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -15447,21 +14625,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/central-server-config/localhost-config/application.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, "src/main/docker/hazelcast-management-center.yml": { "stateCleared": "modified", }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, @@ -15471,9 +14637,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/neo4j.yml": { "stateCleared": "modified", }, @@ -15507,12 +14670,18 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/client/AuthorizationHeaderUtil.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/client/AuthorizedFeignClient.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/client/OAuth2InterceptedFeignConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/client/OAuthIdpTokenResponseDTO.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/client/TokenRelayRequestInterceptor.kt": { "stateCleared": "modified", }, @@ -15546,9 +14715,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -15558,9 +14724,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/StaticResourcesWebConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -15603,9 +14766,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -15639,15 +14799,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/security/oauth2/AudienceValidator.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/oauth2/AuthorizationHeaderUtil.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/security/oauth2/JwtGrantedAuthorityConverter.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/oauth2/OAuthIdpTokenResponseDTO.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -15690,9 +14844,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -15723,9 +14874,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -15774,6 +14922,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/TechnicalStructureTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/tech/jhipster/client/AuthorizationHeaderUtilTest.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/tech/jhipster/config/AsyncSyncConfiguration.kt": { "stateCleared": "modified", }, @@ -15789,9 +14940,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/config/SpringBootTestClassOrderer.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/config/StaticResourcesWebConfigurerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/config/TestSecurityConfiguration.kt": { "stateCleared": "modified", }, @@ -15834,9 +14982,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/security/oauth2/AudienceValidatorTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/oauth2/AuthorizationHeaderUtilTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/service/UserServiceIT.kt": { "stateCleared": "modified", }, @@ -15858,9 +15003,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -15909,9 +15051,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -16052,18 +15191,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, @@ -16073,9 +15200,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/neo4j.yml": { "stateCleared": "modified", }, @@ -16106,6 +15230,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -16127,15 +15257,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -16190,9 +15311,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/domain/User.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -16268,9 +15386,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/filter/SpaWebFilter.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, @@ -16307,9 +15422,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -16508,9 +15620,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -16612,30 +15721,15 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, "src/main/docker/hazelcast-management-center.yml": { "stateCleared": "modified", }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -16669,12 +15763,18 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/client/AuthorizationHeaderUtil.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/client/AuthorizedFeignClient.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/client/OAuth2InterceptedFeignConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/client/OAuthIdpTokenResponseDTO.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/client/TokenRelayRequestInterceptor.kt": { "stateCleared": "modified", }, @@ -16708,9 +15808,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -16720,9 +15817,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/StaticResourcesWebConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -16762,9 +15856,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -16807,15 +15898,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/security/oauth2/AudienceValidator.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/oauth2/AuthorizationHeaderUtil.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/security/oauth2/JwtGrantedAuthorityConverter.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/oauth2/OAuthIdpTokenResponseDTO.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -16870,9 +15955,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -16903,9 +15985,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/tech/jhipster/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -16999,33 +16078,15 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/MicroserviceGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/IntegrationTest.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/TechnicalStructureTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/tech/jhipster/client/AuthorizationHeaderUtilTest.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/tech/jhipster/config/AsyncSyncConfiguration.kt": { "stateCleared": "modified", }, @@ -17044,9 +16105,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/config/SqlTestContainersSpringContextCustomizerFactory.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/config/StaticResourcesWebConfigurerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/config/TestSecurityConfiguration.kt": { "stateCleared": "modified", }, @@ -17098,9 +16156,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/security/oauth2/AudienceValidatorTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/oauth2/AuthorizationHeaderUtilTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/service/UserServiceIT.kt": { "stateCleared": "modified", }, @@ -17122,9 +16177,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -17179,9 +16231,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -17307,18 +16356,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, @@ -17328,9 +16365,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -17361,6 +16395,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -17382,18 +16422,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -17460,9 +16491,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/domain/User.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -17472,9 +16500,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/repository/AnotherSimpleSqlHelper.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/repository/AuthorityRepository.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/CriteriaAndDtoRepository.kt": { "stateCleared": "modified", }, @@ -17604,9 +16629,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/filter/SpaWebFilter.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, @@ -17643,9 +16665,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/main/kotlin/com/mycompany/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -17733,27 +16752,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/MicroserviceGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/IntegrationTest.kt": { "stateCleared": "modified", }, @@ -17901,9 +16899,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > micro "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -18023,24 +17018,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -18089,9 +17069,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -18101,6 +17078,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -18143,9 +17123,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -18182,15 +17159,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -18245,13 +17213,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/AccountResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { + "src/main/kotlin/tech/jhipster/web/rest/AuthenticateController.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { @@ -18272,9 +17243,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/rest/SimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/UserJWTController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/UserResource.kt": { "stateCleared": "modified", }, @@ -18461,13 +17429,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/service/MailServiceIT.kt": { @@ -18491,7 +17462,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/tech/jhipster/web/rest/AuthenticateControllerIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { @@ -18515,9 +17486,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/TestUtil.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/UserJWTControllerIT.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/UserResourceIT.kt": { "stateCleared": "modified", }, @@ -18560,9 +17528,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -18718,27 +17683,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/cassandra/scripts/execute-cql.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/kafka.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -18757,31 +17707,31 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/AsyncConfiguration.kt": { + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/CRLFLogConverter.kt": { + "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/DatabaseConfiguration.kt": { + "src/main/kotlin/com/mycompany/config/AsyncConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/DateTimeFormatConfiguration.kt": { + "src/main/kotlin/com/mycompany/config/CRLFLogConverter.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { + "src/main/kotlin/com/mycompany/config/Constants.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { + "src/main/kotlin/com/mycompany/config/DatabaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { + "src/main/kotlin/com/mycompany/config/DateTimeFormatConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { + "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { @@ -18796,6 +17746,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -18826,9 +17779,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -18856,12 +17806,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/security/SecurityUtils.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -18898,6 +17842,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/web/rest/AuthenticateController.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -18916,9 +17863,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/SimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/UserJWTController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/errors/BadRequestAlertException.kt": { "stateCleared": "modified", }, @@ -19069,13 +18013,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/AuthenticationIntegrationTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/service/dto/AnotherSimpleRestTest.kt": { @@ -19084,12 +18031,21 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/service/dto/CriteriaAndDtoRestTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/rest/AuthenticateControllerIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -19111,9 +18067,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/web/rest/TestUtil.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/web/rest/UserJWTControllerIT.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/web/rest/WithUnauthenticatedMockUser.kt": { "stateCleared": "modified", }, @@ -19141,9 +18094,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -19254,27 +18204,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/couchbase/scripts/configure-node.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -19326,9 +18261,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -19338,6 +18270,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -19380,9 +18315,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -19428,15 +18360,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -19491,13 +18414,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/AccountResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { + "src/main/kotlin/tech/jhipster/web/rest/AuthenticateController.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/tech/jhipster/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { @@ -19518,9 +18447,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/rest/SimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/UserJWTController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/UserResource.kt": { "stateCleared": "modified", }, @@ -19641,27 +18567,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/MicroserviceGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/IntegrationTest.kt": { "stateCleared": "modified", }, @@ -19728,13 +18633,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/service/MailServiceIT.kt": { @@ -19764,7 +18672,10 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/tech/jhipster/web/rest/AuthenticateControllerIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { @@ -19788,9 +18699,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/TestUtil.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/UserJWTControllerIT.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/UserResourceIT.kt": { "stateCleared": "modified", }, @@ -19833,9 +18741,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -19997,27 +18902,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/couchbase/scripts/configure-node.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/kafka.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -20039,6 +18929,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -20060,15 +18956,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -20081,6 +18968,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -20114,9 +19004,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -20147,12 +19034,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/security/SecurityUtils.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -20189,6 +19070,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/web/rest/AuthenticateController.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -20207,9 +19091,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/SimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/UserJWTController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/errors/BadRequestAlertException.kt": { "stateCleared": "modified", }, @@ -20285,27 +19166,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/MicroserviceGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/IntegrationTest.kt": { "stateCleared": "modified", }, @@ -20369,13 +19229,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/service/dto/AnotherSimpleRestTest.kt": { @@ -20390,12 +19253,21 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/service/mapper/CriteriaAndDtoMapperTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/rest/AuthenticateControllerIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -20417,9 +19289,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/web/rest/TestUtil.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/web/rest/UserJWTControllerIT.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/web/rest/WithUnauthenticatedMockUser.kt": { "stateCleared": "modified", }, @@ -20447,9 +19316,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -20539,18 +19405,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, @@ -20566,9 +19420,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/mongodb/scripts/init_replicaset.js": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -20614,9 +19465,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -20626,6 +19474,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -20671,9 +19522,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -20716,15 +19564,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -20779,13 +19618,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/AccountResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { + "src/main/kotlin/tech/jhipster/web/rest/AuthenticateController.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/tech/jhipster/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { @@ -20806,9 +19651,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/rest/SimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/UserJWTController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/UserResource.kt": { "stateCleared": "modified", }, @@ -20944,13 +19786,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/service/MailServiceIT.kt": { @@ -20980,7 +19825,10 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/tech/jhipster/web/rest/AuthenticateControllerIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { @@ -21004,9 +19852,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/TestUtil.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/UserJWTControllerIT.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/UserResourceIT.kt": { "stateCleared": "modified", }, @@ -21046,9 +19891,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -21195,18 +20037,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/central-server-config/localhost-config/application.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, @@ -21228,9 +20058,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/mongodb/scripts/init_replicaset.js": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -21252,6 +20079,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -21276,15 +20109,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -21297,6 +20121,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -21330,9 +20157,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -21360,12 +20184,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/security/SecurityUtils.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -21402,6 +20220,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/web/rest/AuthenticateController.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -21420,9 +20241,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/SimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/UserJWTController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/errors/BadRequestAlertException.kt": { "stateCleared": "modified", }, @@ -21543,13 +20361,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/AuthenticationIntegrationTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/service/dto/AnotherSimpleRestTest.kt": { @@ -21564,12 +20385,21 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/service/mapper/CriteriaAndDtoMapperTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/rest/AuthenticateControllerIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -21591,9 +20421,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/web/rest/TestUtil.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/web/rest/UserJWTControllerIT.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/web/rest/WithUnauthenticatedMockUser.kt": { "stateCleared": "modified", }, @@ -21624,9 +20451,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -21716,24 +20540,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/neo4j.yml": { "stateCleared": "modified", }, @@ -21782,9 +20591,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -21794,6 +20600,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -21845,9 +20654,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -21887,15 +20693,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -21950,13 +20747,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/AccountResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { + "src/main/kotlin/tech/jhipster/web/rest/AuthenticateController.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/tech/jhipster/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { @@ -21977,9 +20780,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/rest/SimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/UserJWTController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/UserResource.kt": { "stateCleared": "modified", }, @@ -22067,27 +20867,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/MicroserviceGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/IntegrationTest.kt": { "stateCleared": "modified", }, @@ -22154,13 +20933,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/service/MailServiceIT.kt": { @@ -22190,7 +20972,10 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/tech/jhipster/web/rest/AuthenticateControllerIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { @@ -22214,9 +20999,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/TestUtil.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/UserJWTControllerIT.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/UserResourceIT.kt": { "stateCleared": "modified", }, @@ -22256,9 +21038,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -22405,18 +21184,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/central-server-config/localhost-config/application.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, @@ -22426,9 +21193,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/kafka.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/neo4j.yml": { "stateCleared": "modified", }, @@ -22453,6 +21217,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -22477,15 +21247,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -22498,6 +21259,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -22531,9 +21295,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -22561,12 +21322,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/security/SecurityUtils.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -22603,6 +21358,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/web/rest/AuthenticateController.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -22621,9 +21379,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/SimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/UserJWTController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/errors/BadRequestAlertException.kt": { "stateCleared": "modified", }, @@ -22678,27 +21433,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/MicroserviceGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/IntegrationTest.kt": { "stateCleared": "modified", }, @@ -22762,13 +21496,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/service/dto/AnotherSimpleRestTest.kt": { @@ -22783,12 +21520,21 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/service/mapper/CriteriaAndDtoMapperTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/rest/AuthenticateControllerIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -22810,9 +21556,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/web/rest/TestUtil.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/web/rest/UserJWTControllerIT.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/web/rest/WithUnauthenticatedMockUser.kt": { "stateCleared": "modified", }, @@ -22840,9 +21583,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -22947,27 +21687,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/central-server-config/localhost-config/application.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -23025,9 +21750,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -23037,6 +21759,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -23085,9 +21810,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -23136,15 +21858,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/tech/jhipster/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -23211,13 +21924,19 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/AccountResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { + "src/main/kotlin/tech/jhipster/web/rest/AuthenticateController.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/tech/jhipster/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { @@ -23238,9 +21957,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/rest/SimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/UserJWTController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/UserResource.kt": { "stateCleared": "modified", }, @@ -23469,13 +22185,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/tech/jhipster/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/service/MailServiceIT.kt": { @@ -23505,7 +22224,10 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/tech/jhipster/web/rest/AuthenticateControllerIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/tech/jhipster/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { @@ -23529,9 +22251,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/TestUtil.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/UserJWTControllerIT.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/UserResourceIT.kt": { "stateCleared": "modified", }, @@ -23586,9 +22305,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -23732,27 +22448,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/kafka.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -23777,6 +22478,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -23798,18 +22505,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -23822,6 +22520,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -23867,9 +22568,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/management/SecurityMetersService.kt": { "stateCleared": "modified", }, @@ -23957,12 +22655,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/security/SecurityUtils.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/service/AnotherSimpleService.kt": { "stateCleared": "modified", }, @@ -23999,6 +22691,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/web/rest/AuthenticateController.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -24017,9 +22712,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/SimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/UserJWTController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/web/rest/errors/BadRequestAlertException.kt": { "stateCleared": "modified", }, @@ -24182,13 +22874,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/service/dto/AnotherSimpleRestTest.kt": { @@ -24203,12 +22898,21 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/service/mapper/CriteriaAndDtoMapperTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/rest/AuthenticateControllerIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -24230,9 +22934,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/web/rest/TestUtil.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/web/rest/UserJWTControllerIT.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/web/rest/WithUnauthenticatedMockUser.kt": { "stateCleared": "modified", }, @@ -24263,9 +22964,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -24388,18 +23086,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/central-server-config/localhost-config/application.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, @@ -24409,9 +23095,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -24469,9 +23152,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -24520,9 +23200,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -24601,6 +23278,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/filter/OAuth2RefreshTokensWebFilter.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/AccountResource.kt": { "stateCleared": "modified", }, @@ -24610,9 +23290,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/rest/AuthInfoResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -24646,9 +23323,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -24727,27 +23401,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/MicroserviceGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/CassandraKeyspaceIT.kt": { "stateCleared": "modified", }, @@ -24838,9 +23491,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -24892,9 +23542,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -25056,18 +23703,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, @@ -25077,9 +23712,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -25107,6 +23739,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -25128,15 +23766,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -25185,9 +23814,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/domain/User.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -25311,9 +23937,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -25392,27 +24015,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/MicroserviceGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/CassandraKeyspaceIT.kt": { "stateCleared": "modified", }, @@ -25497,6 +24099,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/test/util/OAuth2TestUtil.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, @@ -25560,9 +24168,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -25670,27 +24275,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/couchbase/scripts/configure-node.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -25742,9 +24332,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -25805,9 +24392,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -25895,6 +24479,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/filter/OAuth2RefreshTokensWebFilter.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/AccountResource.kt": { "stateCleared": "modified", }, @@ -25904,7 +24491,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/rest/AuthInfoResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { + "src/main/kotlin/tech/jhipster/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { @@ -25940,9 +24527,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/websocket/ActivityService.kt": { "stateCleared": "modified", }, @@ -26021,27 +24605,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/MicroserviceGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/IntegrationTest.kt": { "stateCleared": "modified", }, @@ -26138,7 +24701,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/tech/jhipster/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { @@ -26189,9 +24752,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -26344,18 +24904,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/couchbase/scripts/configure-node.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, @@ -26368,9 +24916,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -26398,6 +24943,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -26422,15 +24973,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -26485,9 +25027,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/domain/User.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -26581,6 +25120,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/AuthInfoResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/web/rest/AuthorityResource.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -26617,9 +25159,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -26698,27 +25237,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/MicroserviceGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/IntegrationTest.kt": { "stateCleared": "modified", }, @@ -26809,12 +25327,21 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/test/util/OAuth2TestUtil.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/rest/AuthorityResourceIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -26872,9 +25399,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -26982,18 +25506,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, @@ -27012,9 +25524,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/mongodb/scripts/init_replicaset.js": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -27069,9 +25578,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -27135,9 +25641,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -27222,6 +25725,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/filter/OAuth2RefreshTokensWebFilter.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/AccountResource.kt": { "stateCleared": "modified", }, @@ -27231,7 +25737,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/rest/AuthInfoResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { + "src/main/kotlin/tech/jhipster/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { @@ -27267,9 +25773,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/web/websocket/ActivityService.kt": { "stateCleared": "modified", }, @@ -27405,7 +25908,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/tech/jhipster/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { @@ -27459,9 +25962,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -27593,18 +26093,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, @@ -27626,9 +26114,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/mongodb/scripts/init_replicaset.js": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -27653,6 +26138,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -27674,15 +26165,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -27740,9 +26222,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/domain/User.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -27833,6 +26312,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/AuthInfoResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/web/rest/AuthorityResource.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -27869,9 +26351,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -27998,12 +26477,21 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/test/util/OAuth2TestUtil.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/rest/AuthorityResourceIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -28061,9 +26549,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -28171,27 +26656,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/neo4j.yml": { "stateCleared": "modified", }, @@ -28249,9 +26719,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -28309,9 +26776,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -28393,6 +26857,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/filter/OAuth2RefreshTokensWebFilter.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/AccountResource.kt": { "stateCleared": "modified", }, @@ -28402,7 +26869,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/rest/AuthInfoResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { + "src/main/kotlin/tech/jhipster/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { @@ -28438,9 +26905,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -28585,7 +27049,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/tech/jhipster/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { @@ -28642,9 +27106,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/tech/jhipster/cucumber/gitkeep": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -28773,18 +27234,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, @@ -28794,9 +27243,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/neo4j.yml": { "stateCleared": "modified", }, @@ -28824,6 +27270,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -28845,15 +27297,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -28911,9 +27354,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/domain/User.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -29004,6 +27444,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/AuthInfoResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/web/rest/AuthorityResource.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -29040,9 +27483,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -29166,12 +27606,21 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/test/util/OAuth2TestUtil.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/rest/AuthorityResourceIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -29226,9 +27675,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -29324,27 +27770,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -29402,9 +27833,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -29459,9 +27887,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -29564,6 +27989,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/filter/OAuth2RefreshTokensWebFilter.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/AccountResource.kt": { "stateCleared": "modified", }, @@ -29573,7 +28001,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/rest/AuthInfoResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { + "src/main/kotlin/tech/jhipster/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { @@ -29609,9 +28037,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -29798,7 +28223,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/tech/jhipster/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { @@ -29855,9 +28280,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -30001,18 +28423,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/central-server-config/localhost-config/application.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jhipster-registry.yml": { "stateCleared": "modified", }, @@ -30025,9 +28435,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -30058,6 +28465,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -30082,18 +28495,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -30163,9 +28567,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/domain/User.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -30175,9 +28576,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/repository/AnotherSimpleSqlHelper.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/repository/AuthorityRepository.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/CriteriaAndDtoRepository.kt": { "stateCleared": "modified", }, @@ -30322,6 +28720,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/AuthInfoResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/web/rest/AuthorityResource.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/web/rest/CriteriaAndDtoResource.kt": { "stateCleared": "modified", }, @@ -30358,9 +28759,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/web/rest/errors/FieldErrorVM.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/web/rest/vm/ManagedUserVM.kt": { - "stateCleared": "modified", - }, "src/main/resources/banner.txt": { "stateCleared": "modified", }, @@ -30547,12 +28945,21 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/test/util/OAuth2TestUtil.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/rest/AuthorityResourceIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -30616,9 +29023,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -30732,24 +29136,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/cassandra/scripts/execute-cql.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -30795,9 +29184,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -30846,9 +29232,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -30942,13 +29325,13 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/AccountResource.kt": { + "src/main/kotlin/tech/jhipster/web/filter/SpaWebFilter.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { + "src/main/kotlin/tech/jhipster/web/rest/AccountResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { + "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { @@ -31158,9 +29541,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { "stateCleared": "modified", }, @@ -31221,9 +29601,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -31385,27 +29762,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/kafka.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -31427,31 +29789,31 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/AsyncConfiguration.kt": { + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/CRLFLogConverter.kt": { + "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/DatabaseConfiguration.kt": { + "src/main/kotlin/com/mycompany/config/AsyncConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/DateTimeFormatConfiguration.kt": { + "src/main/kotlin/com/mycompany/config/CRLFLogConverter.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { + "src/main/kotlin/com/mycompany/config/Constants.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { + "src/main/kotlin/com/mycompany/config/DatabaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { + "src/main/kotlin/com/mycompany/config/DateTimeFormatConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { + "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { @@ -31496,9 +29858,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -31733,6 +30092,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/service/dto/CriteriaAndDtoDTOTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, @@ -31790,9 +30155,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -31900,24 +30262,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/couchbase/scripts/configure-node.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -31963,9 +30310,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -32026,9 +30370,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -32131,13 +30472,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/AccountResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { + "src/main/kotlin/tech/jhipster/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { @@ -32359,7 +30703,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/tech/jhipster/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { @@ -32422,9 +30766,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -32580,27 +30921,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/couchbase/scripts/configure-node.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/kafka.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -32622,6 +30948,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -32643,15 +30975,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -32697,9 +31020,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -32928,6 +31248,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/service/mapper/CriteriaAndDtoMapperTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, @@ -32985,9 +31311,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -33077,18 +31400,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, @@ -33104,9 +31415,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/mongodb/scripts/init_replicaset.js": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -33152,9 +31460,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -33218,9 +31523,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -33320,13 +31622,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/AccountResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { + "src/main/kotlin/tech/jhipster/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { @@ -33518,7 +31823,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/tech/jhipster/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { @@ -33584,9 +31889,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -33733,18 +32035,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, @@ -33763,9 +32053,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/mongodb/scripts/init_replicaset.js": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -33787,6 +32074,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -33808,15 +32101,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -33862,9 +32146,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -34060,6 +32341,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/service/mapper/CriteriaAndDtoMapperTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, @@ -34114,9 +32401,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -34212,24 +32496,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/neo4j.yml": { "stateCleared": "modified", }, @@ -34278,9 +32547,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -34338,9 +32604,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -34437,13 +32700,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/AccountResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { + "src/main/kotlin/tech/jhipster/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { @@ -34542,27 +32808,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/MicroserviceGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/tech/jhipster/IntegrationTest.kt": { "stateCleared": "modified", }, @@ -34653,7 +32898,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/tech/jhipster/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { @@ -34716,9 +32961,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -34862,27 +33104,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/kafka.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/neo4j.yml": { "stateCleared": "modified", }, @@ -34907,6 +33134,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -34928,15 +33161,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -34982,9 +33206,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -35114,27 +33335,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/gatling/conf/logback.xml": { "stateCleared": "modified", }, - "src/test/gatling/user-files/simulations/AnotherSimpleGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/CriteriaAndDtoGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithCustomIdGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/EntityWithEnumGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/MicroserviceGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/RelationshipWithBagRelationshipGatlingTest.scala": { - "stateCleared": "modified", - }, - "src/test/gatling/user-files/simulations/SimpleGatlingTest.scala": { - "stateCleared": "modified", - }, "src/test/kotlin/com/mycompany/IntegrationTest.kt": { "stateCleared": "modified", }, @@ -35207,6 +33407,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/service/mapper/CriteriaAndDtoMapperTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, @@ -35261,9 +33467,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -35353,24 +33556,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -35422,9 +33610,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -35479,9 +33664,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/domain/UserEntity.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/tech/jhipster/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -35599,13 +33781,16 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/tech/jhipster/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/tech/jhipster/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/tech/jhipster/web/rest/AccountResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/AnotherSimpleResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/tech/jhipster/web/rest/ClientForwardController.kt": { + "src/main/kotlin/tech/jhipster/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResource.kt": { @@ -35863,7 +34048,7 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/tech/jhipster/web/rest/AnotherSimpleResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/tech/jhipster/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/tech/jhipster/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/tech/jhipster/web/rest/CriteriaAndDtoResourceIT.kt": { @@ -35938,9 +34123,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -36090,27 +34272,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/kafka.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -36135,6 +34302,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/aop/logging/LoggingAspect.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/broker/KafkaConsumer.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/broker/KafkaProducer.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/config/ApplicationProperties.kt": { "stateCleared": "modified", }, @@ -36156,18 +34329,9 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/KafkaSseConsumer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/config/KafkaSseProducer.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -36225,9 +34389,6 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/main/kotlin/com/mycompany/domain/Simple.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/domain/enumeration/EnumFieldClass.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/repository/AnotherSimpleRepository.kt": { "stateCleared": "modified", }, @@ -36534,6 +34695,12 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/kotlin/com/mycompany/service/mapper/CriteriaAndDtoMapperTest.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/mycompany/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, @@ -36591,8 +34758,5 @@ exports[`Matrix test of SubGenerator kotlin of kotlin JHipster blueprint > monol "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; diff --git a/generators/spring-boot/generator.js b/generators/spring-boot/generator.js index 8a1dca6d7..93c7bf3f8 100644 --- a/generators/spring-boot/generator.js +++ b/generators/spring-boot/generator.js @@ -20,7 +20,6 @@ export default class extends BaseApplicationGenerator { } async _postConstruct() { - await this.dependsOnJHipster('jhipster-kotlin:migration'); // Use _postConstruct so kotlin will be queued before jhipster:spring-boot dependencies await this.dependsOnJHipster('jhipster:java:bootstrap'); await this.dependsOnJHipster('jhipster-kotlin:kotlin'); @@ -35,9 +34,6 @@ export default class extends BaseApplicationGenerator { async composeDetekt() { await this.composeWithJHipster('jhipster-kotlin:detekt'); }, - async composeSpringBootV2() { - await this.composeWithJHipster('jhipster-kotlin:spring-boot-v2'); - }, }); } diff --git a/test/__snapshots__/app.spec.js.snap b/test/__snapshots__/app.spec.js.snap index 66a5c03ab..5eca2909b 100644 --- a/test/__snapshots__/app.spec.js.snap +++ b/test/__snapshots__/app.spec.js.snap @@ -119,24 +119,9 @@ exports[`JHipster generator for App generator > App with skip client > Gradle > "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -188,9 +173,6 @@ exports[`JHipster generator for App generator > App with skip client > Gradle > "src/main/kotlin/com/mycompany/myapp/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -200,6 +182,9 @@ exports[`JHipster generator for App generator > App with skip client > Gradle > "src/main/kotlin/com/mycompany/myapp/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -239,15 +224,6 @@ exports[`JHipster generator for App generator > App with skip client > Gradle > "src/main/kotlin/com/mycompany/myapp/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/service/EmailAlreadyUsedException.kt": { "stateCleared": "modified", }, @@ -275,16 +251,19 @@ exports[`JHipster generator for App generator > App with skip client > Gradle > "src/main/kotlin/com/mycompany/myapp/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/web/rest/AccountResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/ClientForwardController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthenticateController.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/UserJWTController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/UserResource.kt": { @@ -428,13 +407,16 @@ exports[`JHipster generator for App generator > App with skip client > Gradle > "src/test/kotlin/com/mycompany/myapp/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/AuthenticationIntegrationTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/service/MailServiceIT.kt": { @@ -449,16 +431,16 @@ exports[`JHipster generator for App generator > App with skip client > Gradle > "src/test/kotlin/com/mycompany/myapp/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthenticateControllerIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/UserJWTControllerIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/UserResourceIT.kt": { @@ -503,9 +485,6 @@ exports[`JHipster generator for App generator > App with skip client > Gradle > "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -577,24 +556,9 @@ exports[`JHipster generator for App generator > App with skip client > Maven > c "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -646,9 +610,6 @@ exports[`JHipster generator for App generator > App with skip client > Maven > c "src/main/kotlin/com/mycompany/myapp/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -658,6 +619,9 @@ exports[`JHipster generator for App generator > App with skip client > Maven > c "src/main/kotlin/com/mycompany/myapp/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -694,15 +658,6 @@ exports[`JHipster generator for App generator > App with skip client > Maven > c "src/main/kotlin/com/mycompany/myapp/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/service/EmailAlreadyUsedException.kt": { "stateCleared": "modified", }, @@ -733,10 +688,13 @@ exports[`JHipster generator for App generator > App with skip client > Maven > c "src/main/kotlin/com/mycompany/myapp/web/rest/AccountResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthenticateController.kt": { + "stateCleared": "modified", + }, + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/UserJWTController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/UserResource.kt": { @@ -877,13 +835,16 @@ exports[`JHipster generator for App generator > App with skip client > Maven > c "src/test/kotlin/com/mycompany/myapp/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/service/MailServiceIT.kt": { @@ -898,13 +859,16 @@ exports[`JHipster generator for App generator > App with skip client > Maven > c "src/test/kotlin/com/mycompany/myapp/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthenticateControllerIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthorityResourceIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/UserJWTControllerIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/UserResourceIT.kt": { @@ -949,9 +913,6 @@ exports[`JHipster generator for App generator > App with skip client > Maven > c "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -1041,24 +1002,9 @@ exports[`JHipster generator for App generator > Application with DB option > cou "src/main/docker/couchbase/scripts/configure-node.sh": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -1104,9 +1050,6 @@ exports[`JHipster generator for App generator > Application with DB option > cou "src/main/kotlin/com/mycompany/myapp/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -1116,6 +1059,9 @@ exports[`JHipster generator for App generator > Application with DB option > cou "src/main/kotlin/com/mycompany/myapp/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -1158,15 +1104,6 @@ exports[`JHipster generator for App generator > Application with DB option > cou "src/main/kotlin/com/mycompany/myapp/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/service/EmailAlreadyUsedException.kt": { "stateCleared": "modified", }, @@ -1194,16 +1131,19 @@ exports[`JHipster generator for App generator > Application with DB option > cou "src/main/kotlin/com/mycompany/myapp/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/web/rest/AccountResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/ClientForwardController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthenticateController.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/UserJWTController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/UserResource.kt": { @@ -1335,13 +1275,16 @@ exports[`JHipster generator for App generator > Application with DB option > cou "src/test/kotlin/com/mycompany/myapp/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/service/MailServiceIT.kt": { @@ -1356,16 +1299,16 @@ exports[`JHipster generator for App generator > Application with DB option > cou "src/test/kotlin/com/mycompany/myapp/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthenticateControllerIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/UserJWTControllerIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/UserResourceIT.kt": { @@ -1404,9 +1347,6 @@ exports[`JHipster generator for App generator > Application with DB option > cou "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -1487,27 +1427,12 @@ exports[`JHipster generator for App generator > Application with DB option > mar "src/main/docker/config/mariadb/my.cnf": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/mariadb.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -1556,9 +1481,6 @@ exports[`JHipster generator for App generator > Application with DB option > mar "src/main/kotlin/com/mycompany/myapp/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -1568,6 +1490,9 @@ exports[`JHipster generator for App generator > Application with DB option > mar "src/main/kotlin/com/mycompany/myapp/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -1607,15 +1532,6 @@ exports[`JHipster generator for App generator > Application with DB option > mar "src/main/kotlin/com/mycompany/myapp/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/service/EmailAlreadyUsedException.kt": { "stateCleared": "modified", }, @@ -1643,16 +1559,19 @@ exports[`JHipster generator for App generator > Application with DB option > mar "src/main/kotlin/com/mycompany/myapp/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/web/rest/AccountResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/ClientForwardController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthenticateController.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/UserJWTController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/UserResource.kt": { @@ -1796,13 +1715,16 @@ exports[`JHipster generator for App generator > Application with DB option > mar "src/test/kotlin/com/mycompany/myapp/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/AuthenticationIntegrationTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/service/MailServiceIT.kt": { @@ -1817,16 +1739,16 @@ exports[`JHipster generator for App generator > Application with DB option > mar "src/test/kotlin/com/mycompany/myapp/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthenticateControllerIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/UserJWTControllerIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/UserResourceIT.kt": { @@ -1871,9 +1793,6 @@ exports[`JHipster generator for App generator > Application with DB option > mar "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -1951,18 +1870,6 @@ exports[`JHipster generator for App generator > Application with DB option > mon "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, @@ -1978,9 +1885,6 @@ exports[`JHipster generator for App generator > Application with DB option > mon "src/main/docker/mongodb/scripts/init_replicaset.js": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -2023,9 +1927,6 @@ exports[`JHipster generator for App generator > Application with DB option > mon "src/main/kotlin/com/mycompany/myapp/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -2035,6 +1936,9 @@ exports[`JHipster generator for App generator > Application with DB option > mon "src/main/kotlin/com/mycompany/myapp/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -2077,15 +1981,6 @@ exports[`JHipster generator for App generator > Application with DB option > mon "src/main/kotlin/com/mycompany/myapp/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/service/EmailAlreadyUsedException.kt": { "stateCleared": "modified", }, @@ -2113,16 +2008,19 @@ exports[`JHipster generator for App generator > Application with DB option > mon "src/main/kotlin/com/mycompany/myapp/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/web/rest/AccountResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/ClientForwardController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthenticateController.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/UserJWTController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/UserResource.kt": { @@ -2236,13 +2134,16 @@ exports[`JHipster generator for App generator > Application with DB option > mon "src/test/kotlin/com/mycompany/myapp/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/service/MailServiceIT.kt": { @@ -2257,16 +2158,16 @@ exports[`JHipster generator for App generator > Application with DB option > mon "src/test/kotlin/com/mycompany/myapp/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthenticateControllerIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/UserJWTControllerIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/UserResourceIT.kt": { @@ -2305,9 +2206,6 @@ exports[`JHipster generator for App generator > Application with DB option > mon "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -2379,27 +2277,12 @@ exports[`JHipster generator for App generator > Application with other options > "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, "src/main/docker/keycloak.yml": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/prometheus/prometheus.yml": { "stateCleared": "modified", }, @@ -2445,9 +2328,6 @@ exports[`JHipster generator for App generator > Application with other options > "src/main/kotlin/com/test/reactui/config/JacksonConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/test/reactui/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/test/reactui/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -2469,7 +2349,7 @@ exports[`JHipster generator for App generator > Application with other options > "src/main/kotlin/com/test/reactui/domain/User.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/test/reactui/repository/AuthorityRepository.kt": { + "src/main/kotlin/com/test/reactui/repository/UserRepository.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/test/reactui/security/AuthoritiesConstants.kt": { @@ -2493,6 +2373,9 @@ exports[`JHipster generator for App generator > Application with other options > "src/main/kotlin/com/test/reactui/service/dto/UserDTO.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/test/reactui/service/mapper/UserMapper.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/test/reactui/web/filter/OAuth2ReactiveRefreshTokensWebFilter.kt": { "stateCleared": "modified", }, @@ -2505,9 +2388,15 @@ exports[`JHipster generator for App generator > Application with other options > "src/main/kotlin/com/test/reactui/web/rest/AuthInfoResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/test/reactui/web/rest/AuthorityResource.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/test/reactui/web/rest/LogoutResource.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/test/reactui/web/rest/PublicUserResource.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/test/reactui/web/rest/errors/BadRequestAlertException.kt": { "stateCleared": "modified", }, @@ -2577,18 +2466,36 @@ exports[`JHipster generator for App generator > Application with other options > "src/test/kotlin/com/test/reactui/service/UserServiceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/test/reactui/service/mapper/UserMapperTest.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/test/reactui/test/util/OAuth2TestUtil.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/test/reactui/web/filter/SpaWebFilterIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/test/reactui/web/filter/SpaWebFilterTestController.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/test/reactui/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/test/reactui/web/rest/AuthorityResourceIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/test/reactui/web/rest/LogoutResourceIT.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/test/reactui/web/rest/PublicUserResourceIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/test/reactui/web/rest/TestUtil.kt": { "stateCleared": "modified", }, + "src/test/kotlin/com/test/reactui/web/rest/UserResourceIT.kt": { + "stateCleared": "modified", + }, "src/test/kotlin/com/test/reactui/web/rest/WithUnauthenticatedMockUser.kt": { "stateCleared": "modified", }, @@ -2687,24 +2594,9 @@ exports[`JHipster generator for App generator > Auth options > HTTP session auth "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -2756,9 +2648,6 @@ exports[`JHipster generator for App generator > Auth options > HTTP session auth "src/main/kotlin/com/mycompany/myapp/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -2840,10 +2729,13 @@ exports[`JHipster generator for App generator > Auth options > HTTP session auth "src/main/kotlin/com/mycompany/myapp/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/web/rest/AccountResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/ClientForwardController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { @@ -2996,7 +2888,7 @@ exports[`JHipster generator for App generator > Auth options > HTTP session auth "src/test/kotlin/com/mycompany/myapp/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { @@ -3047,9 +2939,6 @@ exports[`JHipster generator for App generator > Auth options > HTTP session auth "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -3127,24 +3016,9 @@ exports[`JHipster generator for App generator > Auth options > JWT authenticatio "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -3196,9 +3070,6 @@ exports[`JHipster generator for App generator > Auth options > JWT authenticatio "src/main/kotlin/com/mycompany/myapp/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -3208,6 +3079,9 @@ exports[`JHipster generator for App generator > Auth options > JWT authenticatio "src/main/kotlin/com/mycompany/myapp/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -3247,15 +3121,6 @@ exports[`JHipster generator for App generator > Auth options > JWT authenticatio "src/main/kotlin/com/mycompany/myapp/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/service/EmailAlreadyUsedException.kt": { "stateCleared": "modified", }, @@ -3283,16 +3148,19 @@ exports[`JHipster generator for App generator > Auth options > JWT authenticatio "src/main/kotlin/com/mycompany/myapp/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/web/rest/AccountResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/ClientForwardController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthenticateController.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/UserJWTController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/UserResource.kt": { @@ -3436,13 +3304,16 @@ exports[`JHipster generator for App generator > Auth options > JWT authenticatio "src/test/kotlin/com/mycompany/myapp/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/service/MailServiceIT.kt": { @@ -3457,16 +3328,16 @@ exports[`JHipster generator for App generator > Auth options > JWT authenticatio "src/test/kotlin/com/mycompany/myapp/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthenticateControllerIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/UserJWTControllerIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/UserResourceIT.kt": { @@ -3511,9 +3382,6 @@ exports[`JHipster generator for App generator > Auth options > JWT authenticatio "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -3636,24 +3504,9 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -3705,9 +3558,6 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "src/main/kotlin/com/mycompany/myapp/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -3717,6 +3567,9 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "src/main/kotlin/com/mycompany/myapp/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -3756,15 +3609,6 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "src/main/kotlin/com/mycompany/myapp/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/service/EmailAlreadyUsedException.kt": { "stateCleared": "modified", }, @@ -3792,16 +3636,19 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "src/main/kotlin/com/mycompany/myapp/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/web/rest/AccountResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/ClientForwardController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthenticateController.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/UserJWTController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/UserResource.kt": { @@ -3945,13 +3792,16 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "src/test/kotlin/com/mycompany/myapp/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/AuthenticationIntegrationTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/service/MailServiceIT.kt": { @@ -3966,16 +3816,16 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "src/test/kotlin/com/mycompany/myapp/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthenticateControllerIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/UserJWTControllerIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/UserResourceIT.kt": { @@ -4020,9 +3870,6 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -4148,24 +3995,9 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "src/main/docker/config/mysql/my.cnf": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/mysql.yml": { "stateCleared": "modified", }, @@ -4217,9 +4049,6 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "src/main/kotlin/com/mycompany/myapp/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -4229,6 +4058,9 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "src/main/kotlin/com/mycompany/myapp/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -4268,15 +4100,6 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "src/main/kotlin/com/mycompany/myapp/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/service/EmailAlreadyUsedException.kt": { "stateCleared": "modified", }, @@ -4304,16 +4127,19 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "src/main/kotlin/com/mycompany/myapp/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/web/rest/AccountResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/ClientForwardController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthenticateController.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/UserJWTController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/UserResource.kt": { @@ -4457,13 +4283,16 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "src/test/kotlin/com/mycompany/myapp/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/service/MailServiceIT.kt": { @@ -4478,16 +4307,16 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "src/test/kotlin/com/mycompany/myapp/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthenticateControllerIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/UserJWTControllerIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/UserResourceIT.kt": { @@ -4532,9 +4361,6 @@ exports[`JHipster generator for App generator > Default configuration with > Gra "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -4615,24 +4441,9 @@ exports[`JHipster generator for App generator > Default configuration with > Mav "src/main/docker/config/mysql/my.cnf": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/mysql.yml": { "stateCleared": "modified", }, @@ -4684,9 +4495,6 @@ exports[`JHipster generator for App generator > Default configuration with > Mav "src/main/kotlin/com/mycompany/myapp/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -4696,6 +4504,9 @@ exports[`JHipster generator for App generator > Default configuration with > Mav "src/main/kotlin/com/mycompany/myapp/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -4735,15 +4546,6 @@ exports[`JHipster generator for App generator > Default configuration with > Mav "src/main/kotlin/com/mycompany/myapp/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/service/EmailAlreadyUsedException.kt": { "stateCleared": "modified", }, @@ -4771,16 +4573,19 @@ exports[`JHipster generator for App generator > Default configuration with > Mav "src/main/kotlin/com/mycompany/myapp/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/web/rest/AccountResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/ClientForwardController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthenticateController.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/UserJWTController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/UserResource.kt": { @@ -4924,13 +4729,16 @@ exports[`JHipster generator for App generator > Default configuration with > Mav "src/test/kotlin/com/mycompany/myapp/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/AuthenticationIntegrationTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/service/MailServiceIT.kt": { @@ -4945,16 +4753,16 @@ exports[`JHipster generator for App generator > Default configuration with > Mav "src/test/kotlin/com/mycompany/myapp/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthenticateControllerIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/UserJWTControllerIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/UserResourceIT.kt": { @@ -4999,9 +4807,6 @@ exports[`JHipster generator for App generator > Default configuration with > Mav "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -5079,24 +4884,9 @@ exports[`JHipster generator for App generator > Default configuration with > ang "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -5148,9 +4938,6 @@ exports[`JHipster generator for App generator > Default configuration with > ang "src/main/kotlin/com/mycompany/myapp/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -5160,6 +4947,9 @@ exports[`JHipster generator for App generator > Default configuration with > ang "src/main/kotlin/com/mycompany/myapp/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -5199,15 +4989,6 @@ exports[`JHipster generator for App generator > Default configuration with > ang "src/main/kotlin/com/mycompany/myapp/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/service/EmailAlreadyUsedException.kt": { "stateCleared": "modified", }, @@ -5235,16 +5016,19 @@ exports[`JHipster generator for App generator > Default configuration with > ang "src/main/kotlin/com/mycompany/myapp/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/web/rest/AccountResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/ClientForwardController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthenticateController.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/UserJWTController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/UserResource.kt": { @@ -5388,13 +5172,16 @@ exports[`JHipster generator for App generator > Default configuration with > ang "src/test/kotlin/com/mycompany/myapp/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/service/MailServiceIT.kt": { @@ -5409,16 +5196,16 @@ exports[`JHipster generator for App generator > Default configuration with > ang "src/test/kotlin/com/mycompany/myapp/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthenticateControllerIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/UserJWTControllerIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/UserResourceIT.kt": { @@ -5463,9 +5250,6 @@ exports[`JHipster generator for App generator > Default configuration with > ang "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -5543,24 +5327,9 @@ exports[`JHipster generator for App generator > Default configuration with > rea "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -5612,9 +5381,6 @@ exports[`JHipster generator for App generator > Default configuration with > rea "src/main/kotlin/com/mycompany/myapp/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -5624,6 +5390,9 @@ exports[`JHipster generator for App generator > Default configuration with > rea "src/main/kotlin/com/mycompany/myapp/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -5663,15 +5432,6 @@ exports[`JHipster generator for App generator > Default configuration with > rea "src/main/kotlin/com/mycompany/myapp/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/service/EmailAlreadyUsedException.kt": { "stateCleared": "modified", }, @@ -5699,16 +5459,19 @@ exports[`JHipster generator for App generator > Default configuration with > rea "src/main/kotlin/com/mycompany/myapp/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/web/rest/AccountResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/ClientForwardController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthenticateController.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/UserJWTController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/UserResource.kt": { @@ -5852,13 +5615,16 @@ exports[`JHipster generator for App generator > Default configuration with > rea "src/test/kotlin/com/mycompany/myapp/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/AuthenticationIntegrationTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/service/MailServiceIT.kt": { @@ -5873,16 +5639,16 @@ exports[`JHipster generator for App generator > Default configuration with > rea "src/test/kotlin/com/mycompany/myapp/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthenticateControllerIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/UserJWTControllerIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/UserResourceIT.kt": { @@ -5927,9 +5693,6 @@ exports[`JHipster generator for App generator > Default configuration with > rea "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; @@ -6007,24 +5770,9 @@ exports[`JHipster generator for App generator > Testing options > Cucumber tests "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -6076,9 +5824,6 @@ exports[`JHipster generator for App generator > Testing options > Cucumber tests "src/main/kotlin/com/mycompany/myapp/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -6088,6 +5833,9 @@ exports[`JHipster generator for App generator > Testing options > Cucumber tests "src/main/kotlin/com/mycompany/myapp/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -6127,15 +5875,6 @@ exports[`JHipster generator for App generator > Testing options > Cucumber tests "src/main/kotlin/com/mycompany/myapp/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/service/EmailAlreadyUsedException.kt": { "stateCleared": "modified", }, @@ -6163,16 +5902,19 @@ exports[`JHipster generator for App generator > Testing options > Cucumber tests "src/main/kotlin/com/mycompany/myapp/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/web/rest/AccountResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/ClientForwardController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthenticateController.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/UserJWTController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/UserResource.kt": { @@ -6328,13 +6070,16 @@ exports[`JHipster generator for App generator > Testing options > Cucumber tests "src/test/kotlin/com/mycompany/myapp/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/service/MailServiceIT.kt": { @@ -6349,16 +6094,16 @@ exports[`JHipster generator for App generator > Testing options > Cucumber tests "src/test/kotlin/com/mycompany/myapp/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthenticateControllerIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/UserJWTControllerIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/UserResourceIT.kt": { @@ -6409,8 +6154,5 @@ exports[`JHipster generator for App generator > Testing options > Cucumber tests "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; diff --git a/test/__snapshots__/server.spec.js.snap b/test/__snapshots__/server.spec.js.snap index f2eb761f5..e3b4dbedb 100644 --- a/test/__snapshots__/server.spec.js.snap +++ b/test/__snapshots__/server.spec.js.snap @@ -89,24 +89,9 @@ exports[`JHipster server generator > generate server with caffeine > creates exp "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -158,9 +143,6 @@ exports[`JHipster server generator > generate server with caffeine > creates exp "src/main/kotlin/com/mycompany/myapp/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -170,6 +152,9 @@ exports[`JHipster server generator > generate server with caffeine > creates exp "src/main/kotlin/com/mycompany/myapp/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -209,15 +194,6 @@ exports[`JHipster server generator > generate server with caffeine > creates exp "src/main/kotlin/com/mycompany/myapp/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/service/EmailAlreadyUsedException.kt": { "stateCleared": "modified", }, @@ -245,16 +221,19 @@ exports[`JHipster server generator > generate server with caffeine > creates exp "src/main/kotlin/com/mycompany/myapp/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/web/rest/AccountResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/ClientForwardController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthenticateController.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/UserJWTController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/UserResource.kt": { @@ -1259,13 +1238,16 @@ exports[`JHipster server generator > generate server with caffeine > creates exp "src/test/kotlin/com/mycompany/myapp/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/AuthenticationIntegrationTest.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/service/MailServiceIT.kt": { @@ -1280,16 +1262,16 @@ exports[`JHipster server generator > generate server with caffeine > creates exp "src/test/kotlin/com/mycompany/myapp/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthenticateControllerIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/UserJWTControllerIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/UserResourceIT.kt": { @@ -1340,9 +1322,6 @@ exports[`JHipster server generator > generate server with caffeine > creates exp "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, "tsconfig.app.json": { "stateCleared": "modified", }, @@ -1456,24 +1435,9 @@ exports[`JHipster server generator > generate server with ehcache > creates expe "src/main/docker/app.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -1525,9 +1489,6 @@ exports[`JHipster server generator > generate server with ehcache > creates expe "src/main/kotlin/com/mycompany/myapp/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -1537,6 +1498,9 @@ exports[`JHipster server generator > generate server with ehcache > creates expe "src/main/kotlin/com/mycompany/myapp/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/config/StaticResourcesWebConfiguration.kt": { "stateCleared": "modified", }, @@ -1576,15 +1540,6 @@ exports[`JHipster server generator > generate server with ehcache > creates expe "src/main/kotlin/com/mycompany/myapp/security/UserNotActivatedException.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/service/EmailAlreadyUsedException.kt": { "stateCleared": "modified", }, @@ -1612,16 +1567,19 @@ exports[`JHipster server generator > generate server with ehcache > creates expe "src/main/kotlin/com/mycompany/myapp/service/mapper/UserMapper.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/web/filter/SpaWebFilter.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/web/rest/AccountResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/ClientForwardController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthenticateController.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/AuthorityResource.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/web/rest/UserJWTController.kt": { + "src/main/kotlin/com/mycompany/myapp/web/rest/PublicUserResource.kt": { "stateCleared": "modified", }, "src/main/kotlin/com/mycompany/myapp/web/rest/UserResource.kt": { @@ -2626,13 +2584,16 @@ exports[`JHipster server generator > generate server with ehcache > creates expe "src/test/kotlin/com/mycompany/myapp/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/AuthenticationIntegrationTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/service/MailServiceIT.kt": { @@ -2647,16 +2608,16 @@ exports[`JHipster server generator > generate server with ehcache > creates expe "src/test/kotlin/com/mycompany/myapp/web/rest/AccountResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/ClientForwardControllerTest.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthenticateControllerIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/AuthorityResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/PublicUserResourceIT.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/web/rest/UserJWTControllerIT.kt": { + "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/UserResourceIT.kt": { @@ -2707,9 +2668,6 @@ exports[`JHipster server generator > generate server with ehcache > creates expe "src/test/resources/templates/mail/testEmail.html": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, "tsconfig.app.json": { "stateCleared": "modified", }, @@ -2814,27 +2772,12 @@ exports[`JHipster server generator > microfrontend > should match generated file "src/main/docker/consul.yml": { "stateCleared": "modified", }, - "src/main/docker/grafana/provisioning/dashboards/JVM.json": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/dashboards/dashboard.yml": { - "stateCleared": "modified", - }, - "src/main/docker/grafana/provisioning/datasources/datasource.yml": { - "stateCleared": "modified", - }, "src/main/docker/hazelcast-management-center.yml": { "stateCleared": "modified", }, - "src/main/docker/jhipster-control-center.yml": { - "stateCleared": "modified", - }, "src/main/docker/jib/entrypoint.sh": { "stateCleared": "modified", }, - "src/main/docker/monitoring.yml": { - "stateCleared": "modified", - }, "src/main/docker/postgresql.yml": { "stateCleared": "modified", }, @@ -2895,9 +2838,6 @@ exports[`JHipster server generator > microfrontend > should match generated file "src/main/kotlin/com/mycompany/myapp/config/LiquibaseConfiguration.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/config/LocaleConfiguration.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/config/LoggingAspectConfiguration.kt": { "stateCleared": "modified", }, @@ -2907,6 +2847,9 @@ exports[`JHipster server generator > microfrontend > should match generated file "src/main/kotlin/com/mycompany/myapp/config/SecurityConfiguration.kt": { "stateCleared": "modified", }, + "src/main/kotlin/com/mycompany/myapp/config/SecurityJwtConfiguration.kt": { + "stateCleared": "modified", + }, "src/main/kotlin/com/mycompany/myapp/config/WebConfigurer.kt": { "stateCleared": "modified", }, @@ -2925,15 +2868,6 @@ exports[`JHipster server generator > microfrontend > should match generated file "src/main/kotlin/com/mycompany/myapp/security/SpringSecurityAuditorAware.kt": { "stateCleared": "modified", }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTConfigurer.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/JWTFilter.kt": { - "stateCleared": "modified", - }, - "src/main/kotlin/com/mycompany/myapp/security/jwt/TokenProvider.kt": { - "stateCleared": "modified", - }, "src/main/kotlin/com/mycompany/myapp/web/rest/errors/BadRequestAlertException.kt": { "stateCleared": "modified", }, @@ -3039,13 +2973,19 @@ exports[`JHipster server generator > microfrontend > should match generated file "src/test/kotlin/com/mycompany/myapp/security/SecurityUtilsUnitTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/JWTFilterTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/AuthenticationIntegrationTest.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/JwtAuthenticationTestUtils.kt": { "stateCleared": "modified", }, - "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenProviderTest.kt": { + "src/test/kotlin/com/mycompany/myapp/security/jwt/TestAuthenticationResource.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationIT.kt": { + "stateCleared": "modified", + }, + "src/test/kotlin/com/mycompany/myapp/security/jwt/TokenAuthenticationSecurityMetersIT.kt": { "stateCleared": "modified", }, "src/test/kotlin/com/mycompany/myapp/web/rest/TestUtil.kt": { @@ -3081,8 +3021,5 @@ exports[`JHipster server generator > microfrontend > should match generated file "src/test/resources/logback.xml": { "stateCleared": "modified", }, - "src/test/resources/testcontainers.properties": { - "stateCleared": "modified", - }, } `; diff --git a/test/utils/expected-files.js b/test/utils/expected-files.js index cb60379e7..d905f67ae 100644 --- a/test/utils/expected-files.js +++ b/test/utils/expected-files.js @@ -62,7 +62,6 @@ const expectedFiles = { `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/config/DatabaseConfiguration.kt`, `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/config/DateTimeFormatConfiguration.kt`, `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/config/JacksonConfiguration.kt`, - `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/config/LocaleConfiguration.kt`, `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/config/LoggingAspectConfiguration.kt`, `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/config/SecurityConfiguration.kt`, `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/config/WebConfigurer.kt`, @@ -84,7 +83,6 @@ const expectedFiles = { `${SERVER_TEST_RES_DIR}config/application.yml`, `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/AsyncSyncConfiguration.kt`, `${SERVER_TEST_RES_DIR}META-INF/spring.factories`, - `${SERVER_TEST_RES_DIR}testcontainers.properties`, `${SERVER_TEST_RES_DIR}logback.xml`, ], @@ -198,23 +196,12 @@ const expectedFiles = { jwtServer: [ `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/management/SecurityMetersService.kt`, - `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/security/jwt/JWTConfigurer.kt`, - `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/security/jwt/JWTFilter.kt`, - `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/security/jwt/TokenProvider.kt`, `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/management/SecurityMetersServiceTests.kt`, - `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/security/jwt/JWTFilterTest.kt`, - `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/security/jwt/TokenProviderTest.kt`, - `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt`, ], jwtServerGateway: [ `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/management/SecurityMetersService.kt`, - `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/security/jwt/JWTFilter.kt`, - `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/security/jwt/TokenProvider.kt`, `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/management/SecurityMetersServiceTests.kt`, - `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/security/jwt/JWTFilterTest.kt`, - `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/security/jwt/TokenProviderTest.kt`, - `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/security/jwt/TokenProviderSecurityMetersTests.kt`, ], oauth2: [ @@ -227,13 +214,10 @@ const expectedFiles = { ], messageBroker: [ - `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/config/KafkaSseConsumer.kt`, - `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/config/KafkaSseProducer.kt`, `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/web/rest/JhipsterKafkaResource.kt`, `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/web/rest/JhipsterKafkaResourceIT.kt`, `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/KafkaTestContainer.kt`, `${DOCKER_DIR}kafka.yml`, - `${SERVER_TEST_RES_DIR}testcontainers.properties`, ], swaggerCodegen: [`${SERVER_MAIN_RES_DIR}swagger/api.yml`], @@ -261,7 +245,7 @@ const expectedFiles = { 'package.json', ], - dockerServices: [`${DOCKER_DIR}app.yml`, `${DOCKER_DIR}sonar.yml`, `${DOCKER_DIR}jhipster-control-center.yml`], + dockerServices: [`${DOCKER_DIR}app.yml`, `${DOCKER_DIR}sonar.yml`], hibernateTimeZoneConfig: [ `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/timezone/HibernateTimeZoneIT.kt`, @@ -273,7 +257,6 @@ const expectedFiles = { `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/SqlTestContainer.kt`, `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/MysqlTestContainer.kt`, `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/EmbeddedSQL.kt`, - `${SERVER_TEST_RES_DIR}testcontainers.properties`, `${SERVER_TEST_RES_DIR}META-INF/spring.factories`, `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/config/LiquibaseConfiguration.kt`, `${DOCKER_DIR}mysql.yml`, @@ -283,7 +266,6 @@ const expectedFiles = { `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/SqlTestContainer.kt`, `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/MariadbTestContainer.kt`, `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/EmbeddedSQL.kt`, - `${SERVER_TEST_RES_DIR}testcontainers.properties`, `${SERVER_TEST_RES_DIR}META-INF/spring.factories`, `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/config/LiquibaseConfiguration.kt`, `${DOCKER_DIR}mariadb.yml`, @@ -296,7 +278,6 @@ const expectedFiles = { `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/SqlTestContainer.kt`, `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/MsSqlTestContainer.kt`, `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/EmbeddedSQL.kt`, - `${SERVER_TEST_RES_DIR}testcontainers.properties`, `${SERVER_TEST_RES_DIR}META-INF/spring.factories`, `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/config/LiquibaseConfiguration.kt`, `${DOCKER_DIR}mssql.yml`, @@ -306,7 +287,6 @@ const expectedFiles = { `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/SqlTestContainer.kt`, `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/PostgreSqlTestContainer.kt`, `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/EmbeddedSQL.kt`, - `${SERVER_TEST_RES_DIR}testcontainers.properties`, `${SERVER_TEST_RES_DIR}META-INF/spring.factories`, `${SERVER_MAIN_SRC_DIR}com/mycompany/myapp/config/LiquibaseConfiguration.kt`, `${DOCKER_DIR}postgresql.yml`, @@ -330,7 +310,6 @@ const expectedFiles = { `${DOCKER_DIR}mongodb-cluster.yml`, `${DOCKER_DIR}mongodb/MongoDB.Dockerfile`, `${DOCKER_DIR}mongodb/scripts/init_replicaset.js`, - `${SERVER_TEST_RES_DIR}testcontainers.properties`, ], couchbase: [ @@ -349,7 +328,6 @@ const expectedFiles = { neo4j: [ `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/EmbeddedNeo4j.kt`, `${SERVER_TEST_SRC_DIR}com/mycompany/myapp/config/Neo4jTestContainer.kt`, - `${SERVER_TEST_RES_DIR}testcontainers.properties`, `${SERVER_TEST_RES_DIR}META-INF/spring.factories`, `${SERVER_MAIN_RES_DIR}config/neo4j/migrations/user__admin.json`, `${SERVER_MAIN_RES_DIR}config/neo4j/migrations/user__user.json`, @@ -372,7 +350,6 @@ const expectedFiles = { `${DOCKER_DIR}cassandra-cluster.yml`, `${DOCKER_DIR}cassandra-migration.yml`, `${DOCKER_DIR}cassandra.yml`, - `${SERVER_TEST_RES_DIR}testcontainers.properties`, ], elasticsearch: [ From 7e954f494d61745db5a7e83b4985f4c0d718eeda Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Wed, 7 Aug 2024 23:08:17 -0300 Subject: [PATCH 08/17] switch from javax to jakarta --- .../_package_/GeneratedByJHipster.kt.ejs | 2 +- .../kotlin/_package_/domain/Authority.kt.ejs | 12 +++---- .../_package_/security/jwt/JWTFilter.kt.ejs | 10 +++--- ...ersistClass_.kt.jhi.jakarta_validation.ejs | 2 +- .../config/LiquibaseConfiguration.kt.ejs | 2 +- .../config/CacheConfiguration.kt.ejs | 2 +- .../config/DatabaseConfiguration.kt.ejs | 2 +- .../ElasticsearchTestConfiguration.kt.ejs | 2 +- ...rsistClass_.kt.jhi.jakarta_persistence.ejs | 2 +- ..._RepositoryWithBagRelationshipsImpl.kt.ejs | 4 +-- .../timezone/DateTimeWrapper.kt.ejs | 2 +- .../main/kotlin/_package_/Application.kt.ejs | 2 +- .../repository/UserRepository.kt.ejs | 6 ++-- .../service/_entityClass_QueryService.kt.ejs | 2 +- .../service/dto/_dtoClass_.kt.ejs | 4 +-- .../web/rest/UserResource.kt.ejs | 4 +-- .../web/rest/_entityClass_Resource.kt.ejs | 4 +-- .../config/SecurityJwtConfiguration.kt.ejs | 4 +-- .../_package_/config/WebConfigurer.kt.ejs | 6 ++-- .../domain/AbstractAuditingEntity.kt.ejs | 6 ++-- .../_package_/domain/PersistentToken.kt.ejs | 16 +++++----- .../main/kotlin/_package_/domain/User.kt.ejs | 32 +++++++++---------- .../PersistentTokenRepository.kt.ejs | 4 +-- .../PersistentTokenRememberMeServices.kt.ejs | 4 +-- .../_package_/service/MailService.kt.ejs | 2 +- .../_package_/service/dto/AdminUserDTO.kt.ejs | 2 +- .../OAuth2RefreshTokensWebFilter.kt.ejs | 8 ++--- .../web/filter/SpaWebFilter_imperative.kt.ejs | 8 ++--- .../_package_/web/rest/AccountResource.kt.ejs | 4 +-- .../web/rest/AccountResource_oauth2.kt.ejs | 2 +- .../AccountResource_skipUserManagement.kt.ejs | 2 +- .../web/rest/AuthenticateController.kt.ejs | 4 +-- .../web/rest/LogoutResource_imperative.kt.ejs | 2 +- .../rest/errors/ExceptionTranslator.kt.ejs | 2 +- .../_package_/web/rest/vm/LoginVM.kt.ejs | 4 +-- .../web/rest/vm/ManagedUserVM.kt.ejs | 2 +- .../web/rest/PublicUserResourceIT.kt.ejs | 2 +- .../web/rest/UserResourceIT.kt.ejs | 2 +- .../web/rest/_entityClass_ResourceIT.kt.ejs | 2 +- .../_package_/config/WebConfigurerTest.kt.ejs | 10 +++--- .../jwt/JwtAuthenticationTestUtils.kt.ejs | 6 ++-- .../_package_/service/MailServiceIT.kt.ejs | 10 +++--- .../kotlin/_package_/web/rest/TestUtil.kt.ejs | 2 +- .../ExceptionTranslatorTestController.kt.ejs | 4 +-- 44 files changed, 108 insertions(+), 108 deletions(-) diff --git a/generators/kotlin/templates/src/main/kotlin/_package_/GeneratedByJHipster.kt.ejs b/generators/kotlin/templates/src/main/kotlin/_package_/GeneratedByJHipster.kt.ejs index ebe964639..4db565812 100644 --- a/generators/kotlin/templates/src/main/kotlin/_package_/GeneratedByJHipster.kt.ejs +++ b/generators/kotlin/templates/src/main/kotlin/_package_/GeneratedByJHipster.kt.ejs @@ -23,7 +23,7 @@ import java.lang.annotation.Retention import java.lang.annotation.RetentionPolicy import java.lang.annotation.Target -import javax.annotation.Generated +import jakarta.annotation.Generated @Generated(value= ["JHipster"], comments="Generated by JHipster <%= jhipsterVersion %>") @Retention(RetentionPolicy.SOURCE) diff --git a/generators/spring-boot-v2/templates/src/main/kotlin/_package_/domain/Authority.kt.ejs b/generators/spring-boot-v2/templates/src/main/kotlin/_package_/domain/Authority.kt.ejs index 0cc9c33cb..5c2494520 100644 --- a/generators/spring-boot-v2/templates/src/main/kotlin/_package_/domain/Authority.kt.ejs +++ b/generators/spring-boot-v2/templates/src/main/kotlin/_package_/domain/Authority.kt.ejs @@ -42,14 +42,14 @@ import org.springframework.data.annotation.Transient import org.springframework.data.domain.Persistable import org.springframework.data.relational.core.mapping.Table <%_ } else { _%> -import javax.persistence.Entity -import javax.persistence.Id -import javax.persistence.Table -import javax.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.Id +import jakarta.persistence.Table +import jakarta.persistence.Column <%_ } _%> <%_ } _%> -import javax.validation.constraints.NotNull -import javax.validation.constraints.Size +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Size import java.io.Serializable /** diff --git a/generators/spring-boot-v2/templates/src/main/kotlin/_package_/security/jwt/JWTFilter.kt.ejs b/generators/spring-boot-v2/templates/src/main/kotlin/_package_/security/jwt/JWTFilter.kt.ejs index 7f1fe14aa..75cd01444 100644 --- a/generators/spring-boot-v2/templates/src/main/kotlin/_package_/security/jwt/JWTFilter.kt.ejs +++ b/generators/spring-boot-v2/templates/src/main/kotlin/_package_/security/jwt/JWTFilter.kt.ejs @@ -34,11 +34,11 @@ import reactor.core.publisher.Mono <%_ } else { _%> import org.springframework.web.filter.GenericFilterBean -import javax.servlet.FilterChain -import javax.servlet.ServletException -import javax.servlet.ServletRequest -import javax.servlet.ServletResponse -import javax.servlet.http.HttpServletRequest +import jakarta.servlet.FilterChain +import jakarta.servlet.ServletException +import jakarta.servlet.ServletRequest +import jakarta.servlet.ServletResponse +import jakarta.servlet.http.HttpServletRequest import java.io.IOException <%_ } _%> diff --git a/generators/spring-boot/templates/domain/src/main/kotlin/_package_/_entityPackage_/domain/_persistClass_.kt.jhi.jakarta_validation.ejs b/generators/spring-boot/templates/domain/src/main/kotlin/_package_/_entityPackage_/domain/_persistClass_.kt.jhi.jakarta_validation.ejs index fe151134c..2443b94a6 100644 --- a/generators/spring-boot/templates/domain/src/main/kotlin/_package_/_entityPackage_/domain/_persistClass_.kt.jhi.jakarta_validation.ejs +++ b/generators/spring-boot/templates/domain/src/main/kotlin/_package_/_entityPackage_/domain/_persistClass_.kt.jhi.jakarta_validation.ejs @@ -22,7 +22,7 @@ -%> <&_ if (fragment.importSection) { -&> <%_ if (anyPropertyHasValidation) { _%> -import javax.validation.constraints.* +import jakarta.validation.constraints.* <%_ } _%> <&_ } -&> diff --git a/generators/spring-boot/templates/liquibase/src/main/kotlin/_package_/config/LiquibaseConfiguration.kt.ejs b/generators/spring-boot/templates/liquibase/src/main/kotlin/_package_/config/LiquibaseConfiguration.kt.ejs index b12b922b7..51a3e881b 100644 --- a/generators/spring-boot/templates/liquibase/src/main/kotlin/_package_/config/LiquibaseConfiguration.kt.ejs +++ b/generators/spring-boot/templates/liquibase/src/main/kotlin/_package_/config/LiquibaseConfiguration.kt.ejs @@ -42,7 +42,7 @@ import org.springframework.context.annotation.Configuration import org.springframework.core.env.Environment import org.springframework.core.env.Profiles -import javax.sql.DataSource +import jakarta.sql.DataSource import java.util.concurrent.Executor <%_ if (reactive) { _%> import java.util.function.Supplier diff --git a/generators/spring-boot/templates/spring-cache/src/main/kotlin/_package_/config/CacheConfiguration.kt.ejs b/generators/spring-boot/templates/spring-cache/src/main/kotlin/_package_/config/CacheConfiguration.kt.ejs index e47873bd8..33c2143c5 100644 --- a/generators/spring-boot/templates/spring-cache/src/main/kotlin/_package_/config/CacheConfiguration.kt.ejs +++ b/generators/spring-boot/templates/spring-cache/src/main/kotlin/_package_/config/CacheConfiguration.kt.ejs @@ -98,7 +98,7 @@ import org.springframework.context.annotation.Configuration import org.springframework.core.env.Environment import org.springframework.core.env.Profiles -import javax.annotation.PreDestroy +import jakarta.annotation.PreDestroy <%_ } _%> <%_ if (cacheProviderInfinispan) { _%> import org.infinispan.configuration.cache.CacheMode diff --git a/generators/spring-boot/templates/spring-data-cassandra/src/main/kotlin/_package_/config/DatabaseConfiguration.kt.ejs b/generators/spring-boot/templates/spring-data-cassandra/src/main/kotlin/_package_/config/DatabaseConfiguration.kt.ejs index 1bd61d525..c1a3c2b0c 100644 --- a/generators/spring-boot/templates/spring-data-cassandra/src/main/kotlin/_package_/config/DatabaseConfiguration.kt.ejs +++ b/generators/spring-boot/templates/spring-data-cassandra/src/main/kotlin/_package_/config/DatabaseConfiguration.kt.ejs @@ -30,7 +30,7 @@ import org.springframework.data.cassandra.core.convert.CassandraCustomConversion import org.springframework.data.convert.ReadingConverter import org.springframework.data.convert.WritingConverter -import javax.annotation.Nonnull +import jakarta.annotation.Nonnull import java.time.Instant import java.time.ZoneId import java.time.ZonedDateTime diff --git a/generators/spring-boot/templates/spring-data-elasticsearch/src/test/kotlin/_package_/config/ElasticsearchTestConfiguration.kt.ejs b/generators/spring-boot/templates/spring-data-elasticsearch/src/test/kotlin/_package_/config/ElasticsearchTestConfiguration.kt.ejs index 2cc54aebc..919818ed3 100644 --- a/generators/spring-boot/templates/spring-data-elasticsearch/src/test/kotlin/_package_/config/ElasticsearchTestConfiguration.kt.ejs +++ b/generators/spring-boot/templates/spring-data-elasticsearch/src/test/kotlin/_package_/config/ElasticsearchTestConfiguration.kt.ejs @@ -18,7 +18,7 @@ -%> package <%= packageName %>.config -import javax.annotation.PostConstruct +import jakarta.annotation.PostConstruct import org.springframework.beans.factory.annotation.Autowired import org.springframework.context.annotation.Configuration diff --git a/generators/spring-boot/templates/spring-data-relational/src/main/kotlin/_package_/_entityPackage_/domain/_persistClass_.kt.jhi.jakarta_persistence.ejs b/generators/spring-boot/templates/spring-data-relational/src/main/kotlin/_package_/_entityPackage_/domain/_persistClass_.kt.jhi.jakarta_persistence.ejs index 96f08ceaa..cf4329222 100644 --- a/generators/spring-boot/templates/spring-data-relational/src/main/kotlin/_package_/_entityPackage_/domain/_persistClass_.kt.jhi.jakarta_persistence.ejs +++ b/generators/spring-boot/templates/spring-data-relational/src/main/kotlin/_package_/_entityPackage_/domain/_persistClass_.kt.jhi.jakarta_persistence.ejs @@ -21,7 +21,7 @@ EJS fragments will process % delimiter tags in template and & delimiter tags in the merge process. -%> <&_ if (fragment.importSection) { -&> -import javax.persistence.* +import jakarta.persistence.* <%_ if ((prodDatabaseTypePostgresql && anyFieldHasTextContentType) || (anyFieldIsUUID && (prodDatabaseTypeMysql || prodDatabaseTypeMariadb))) { _%> import org.hibernate.annotations.Type <%_ } _%> diff --git a/generators/spring-boot/templates/spring-data-relational/src/main/kotlin/_package_/_entityPackage_/repository/_entityClass_RepositoryWithBagRelationshipsImpl.kt.ejs b/generators/spring-boot/templates/spring-data-relational/src/main/kotlin/_package_/_entityPackage_/repository/_entityClass_RepositoryWithBagRelationshipsImpl.kt.ejs index e35e9f18a..e5e5285ef 100644 --- a/generators/spring-boot/templates/spring-data-relational/src/main/kotlin/_package_/_entityPackage_/repository/_entityClass_RepositoryWithBagRelationshipsImpl.kt.ejs +++ b/generators/spring-boot/templates/spring-data-relational/src/main/kotlin/_package_/_entityPackage_/repository/_entityClass_RepositoryWithBagRelationshipsImpl.kt.ejs @@ -24,8 +24,8 @@ import java.util.Optional import java.util.UUID <%_ } _%> -import javax.persistence.EntityManager -import javax.persistence.PersistenceContext +import jakarta.persistence.EntityManager +import jakarta.persistence.PersistenceContext import org.hibernate.annotations.QueryHints import org.springframework.data.domain.Page diff --git a/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/repository/timezone/DateTimeWrapper.kt.ejs b/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/repository/timezone/DateTimeWrapper.kt.ejs index 99b1f8d4e..26f4260c8 100644 --- a/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/repository/timezone/DateTimeWrapper.kt.ejs +++ b/generators/spring-boot/templates/spring-data-relational/src/test/kotlin/_package_/repository/timezone/DateTimeWrapper.kt.ejs @@ -18,7 +18,7 @@ -%> package <%= packageName %>.repository.timezone -import javax.persistence.* +import jakarta.persistence.* import java.io.Serializable import java.time.* diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/Application.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/Application.kt.ejs index 88d677c5d..343f3764f 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/Application.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/Application.kt.ejs @@ -33,7 +33,7 @@ import org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.core.env.Environment -import javax.annotation.PostConstruct +import jakarta.annotation.PostConstruct import java.net.InetAddress import java.net.UnknownHostException diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/repository/UserRepository.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/repository/UserRepository.kt.ejs index 589ec9ec7..7f1b10eb3 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/repository/UserRepository.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/repository/UserRepository.kt.ejs @@ -117,9 +117,9 @@ import reactor.util.function.Tuples <%_ } _%> <%_ if (databaseTypeCassandra) { _%> -import javax.validation.ConstraintViolation -import javax.validation.ConstraintViolationException -import javax.validation.Validator +import jakarta.validation.ConstraintViolation +import jakarta.validation.ConstraintViolationException +import jakarta.validation.Validator <%_ } _%> <%_ if (!reactive) { _%> import java.util.Optional diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/_entityClass_QueryService.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/_entityClass_QueryService.kt.ejs index ac66c256d..3062b60ac 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/_entityClass_QueryService.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/_entityClass_QueryService.kt.ejs @@ -30,7 +30,7 @@ package <%= entityAbsolutePackage %>.service const repository = entityInstance + 'Repository'; const criteria = entityClass + 'Criteria'; _%> -import javax.persistence.criteria.JoinType +import jakarta.persistence.criteria.JoinType import org.slf4j.LoggerFactory import org.springframework.data.domain.Page diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/dto/_dtoClass_.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/dto/_dtoClass_.kt.ejs index a6b281f9b..835b325e0 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/dto/_dtoClass_.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/dto/_dtoClass_.kt.ejs @@ -35,7 +35,7 @@ import java.time.ZonedDateTime import java.time.Duration <%_ } _%> <%_ if (anyPropertyHasValidation) { _%> -import javax.validation.constraints.* +import jakarta.validation.constraints.* <%_ } _%> import java.io.Serializable <%_ if (anyFieldIsBigDecimal) { _%> @@ -48,7 +48,7 @@ import java.nio.ByteBuffer import java.util.UUID <%_ } _%> <%_ if (anyFieldIsBlobDerived && databaseTypeSql) { _%> -import javax.persistence.Lob +import jakarta.persistence.Lob <%_ } _%> <%_ Object.keys(uniqueEnums).forEach(function(element) { _%> import <%= entityAbsolutePackage %>.domain.enumeration.<%= element %> diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/UserResource.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/UserResource.kt.ejs index e625ef08d..fe0f97728 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/UserResource.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/UserResource.kt.ejs @@ -73,8 +73,8 @@ import reactor.core.publisher.Flux import reactor.core.publisher.Mono <%_ } _%> -import javax.validation.constraints.Pattern -import javax.validation.Valid +import jakarta.validation.constraints.Pattern +import jakarta.validation.Valid import java.net.URI import java.net.URISyntaxException <%_ if (searchEngineElasticsearch && !reactive) { _%> diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/_entityClass_Resource.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/_entityClass_Resource.kt.ejs index 8e52a19d4..346718e41 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/_entityClass_Resource.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/web/rest/_entityClass_Resource.kt.ejs @@ -89,8 +89,8 @@ import reactor.core.publisher.Mono <%_ } _%> <%_ if (anyPropertyHasValidation) { _%> -import javax.validation.Valid -import javax.validation.constraints.NotNull +import jakarta.validation.Valid +import jakarta.validation.constraints.NotNull <%_ } _%> import java.net.URI import java.net.URISyntaxException diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityJwtConfiguration.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityJwtConfiguration.kt.ejs index a7a71f582..a8bc9437a 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityJwtConfiguration.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityJwtConfiguration.kt.ejs @@ -24,8 +24,8 @@ import static <%= packageName %>.security.SecurityUtils.JWT_ALGORITHM import <%= packageName %>.management.SecurityMetersService import com.nimbusds.jose.jwk.source.ImmutableSecret import com.nimbusds.jose.util.Base64 -import javax.crypto.SecretKey -import javax.crypto.spec.SecretKeySpec +import jakarta.crypto.SecretKey +import jakarta.crypto.spec.SecretKeySpec import org.springframework.beans.factory.annotation.Value import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/config/WebConfigurer.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/config/WebConfigurer.kt.ejs index fa0deb6b8..3024a8db1 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/config/WebConfigurer.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/config/WebConfigurer.kt.ejs @@ -91,9 +91,9 @@ import reactor.core.publisher.Mono <%_ } _%> <%_ if (!reactive) { _%> -import javax.servlet.DispatcherType -import javax.servlet.ServletContext -import javax.servlet.ServletException +import jakarta.servlet.DispatcherType +import jakarta.servlet.ServletContext +import jakarta.servlet.ServletException <%_ if (!skipClient) { _%> import java.io.File import java.nio.charset.StandardCharsets diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/domain/AbstractAuditingEntity.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/domain/AbstractAuditingEntity.kt.ejs index d8f0a1581..cea8d58ff 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/domain/AbstractAuditingEntity.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/domain/AbstractAuditingEntity.kt.ejs @@ -25,11 +25,11 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties import java.io.Serializable import java.time.Instant <%_ if (databaseTypeSql) { _%> -import javax.persistence.Column +import jakarta.persistence.Column <%_ } _%> <%_ if (databaseTypeSql && !reactive) { _%> -import javax.persistence.EntityListeners -import javax.persistence.MappedSuperclass +import jakarta.persistence.EntityListeners +import jakarta.persistence.MappedSuperclass <%_ } _%> <%_ if (!reactive) { _%> diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/domain/PersistentToken.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/domain/PersistentToken.kt.ejs index 78db19b14..266e592bd 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/domain/PersistentToken.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/domain/PersistentToken.kt.ejs @@ -54,14 +54,14 @@ import <%= packageName %>.domain.Authority.Companion.TYPE_NAME <%_ } _%> <%_ if (databaseTypeSql) { _%> -import javax.persistence.Column -import javax.persistence.Entity -import javax.persistence.Id -import javax.persistence.ManyToOne -import javax.persistence.Table -<%_ } _%> -import javax.validation.constraints.NotNull -import javax.validation.constraints.Size +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.Id +import jakarta.persistence.ManyToOne +import jakarta.persistence.Table +<%_ } _%> +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Size import java.io.Serializable <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { _%> diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/domain/User.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/domain/User.kt.ejs index 6ce40e7c0..5850f2d6e 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/domain/User.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/domain/User.kt.ejs @@ -80,23 +80,23 @@ import org.springframework.data.elasticsearch.annotations.FieldType <%_ } _%> <%_ if (databaseTypeSql && !reactive) { _%> -import javax.persistence.CascadeType -import javax.persistence.Column -import javax.persistence.Entity -import javax.persistence.GeneratedValue -import javax.persistence.GenerationType -import javax.persistence.Id -import javax.persistence.JoinColumn -import javax.persistence.JoinTable -import javax.persistence.ManyToMany -import javax.persistence.OneToMany -import javax.persistence.SequenceGenerator -import javax.persistence.Table +import jakarta.persistence.CascadeType +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.GeneratedValue +import jakarta.persistence.GenerationType +import jakarta.persistence.Id +import jakarta.persistence.JoinColumn +import jakarta.persistence.JoinTable +import jakarta.persistence.ManyToMany +import jakarta.persistence.OneToMany +import jakarta.persistence.SequenceGenerator +import jakarta.persistence.Table <%_ } _%> -import javax.validation.constraints.Email -import javax.validation.constraints.NotNull -import javax.validation.constraints.Pattern -import javax.validation.constraints.Size +import jakarta.validation.constraints.Email +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Pattern +import jakarta.validation.constraints.Size import java.io.Serializable import java.time.Instant import java.util.Locale diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/repository/PersistentTokenRepository.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/repository/PersistentTokenRepository.kt.ejs index 586853624..19d602579 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/repository/PersistentTokenRepository.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/repository/PersistentTokenRepository.kt.ejs @@ -50,8 +50,8 @@ import org.springframework.data.neo4j.repository.Neo4jRepository import org.springframework.boot.autoconfigure.cassandra.CassandraProperties import org.springframework.stereotype.Repository -import javax.validation.ConstraintViolationException -import javax.validation.Validator +import jakarta.validation.ConstraintViolationException +import jakarta.validation.Validator <%_ } _%> <%_ if (databaseTypeCassandra || databaseTypeCouchbase) { _%> diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/security/PersistentTokenRememberMeServices.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/security/PersistentTokenRememberMeServices.kt.ejs index 05d4d0b54..a561babcf 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/security/PersistentTokenRememberMeServices.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/security/PersistentTokenRememberMeServices.kt.ejs @@ -42,8 +42,8 @@ import org.springframework.security.web.authentication.rememberme.InvalidCookieE import org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationException import org.springframework.stereotype.Service -import javax.servlet.http.HttpServletRequest -import javax.servlet.http.HttpServletResponse +import jakarta.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletResponse import java.io.Serializable <%_ if (['sql', 'mongodb', 'neo4j', 'couchbase'].includes(databaseType)) { _%> import java.time.LocalDate diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/service/MailService.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/service/MailService.kt.ejs index 8e7006a6d..99fa2db27 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/service/MailService.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/service/MailService.kt.ejs @@ -24,7 +24,7 @@ import tech.jhipster.config.JHipsterProperties import java.nio.charset.StandardCharsets import java.util.Locale -import javax.mail.MessagingException +import jakarta.mail.MessagingException import org.slf4j.LoggerFactory import org.springframework.beans.factory.annotation.Autowired diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/service/dto/AdminUserDTO.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/service/dto/AdminUserDTO.kt.ejs index a7089895f..497015db5 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/service/dto/AdminUserDTO.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/service/dto/AdminUserDTO.kt.ejs @@ -27,7 +27,7 @@ import <%= user.entityAbsoluteClass %> <%_ } _%> import java.io.Serializable -import javax.validation.constraints.* +import jakarta.validation.constraints.* <%_ if (databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase || databaseTypeSql) { _%> import java.time.Instant <%_ } _%> diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/filter/OAuth2RefreshTokensWebFilter.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/filter/OAuth2RefreshTokensWebFilter.kt.ejs index c1cd922a3..9db612050 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/filter/OAuth2RefreshTokensWebFilter.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/filter/OAuth2RefreshTokensWebFilter.kt.ejs @@ -19,10 +19,10 @@ package <%= packageName %>.web.filter import java.io.IOException -import javax.servlet.FilterChain -import javax.servlet.ServletException -import javax.servlet.http.HttpServletRequest -import javax.servlet.http.HttpServletResponse +import jakarta.servlet.FilterChain +import jakarta.servlet.ServletException +import jakarta.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletResponse import org.springframework.security.core.Authentication import org.springframework.security.core.context.SecurityContextHolder diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/filter/SpaWebFilter_imperative.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/filter/SpaWebFilter_imperative.kt.ejs index 40af4fbad..4f49da5a7 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/filter/SpaWebFilter_imperative.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/filter/SpaWebFilter_imperative.kt.ejs @@ -18,10 +18,10 @@ -%> package <%= packageName %>.web.filter -import javax.servlet.FilterChain -import javax.servlet.ServletException -import javax.servlet.http.HttpServletRequest -import javax.servlet.http.HttpServletResponse +import jakarta.servlet.FilterChain +import jakarta.servlet.ServletException +import jakarta.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletResponse import java.io.IOException import org.springframework.web.filter.OncePerRequestFilter diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource.kt.ejs index 36ade8260..bc6c24539 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource.kt.ejs @@ -56,9 +56,9 @@ import reactor.core.publisher.Mono <%_ } _%> <%_ if (!reactive && !authenticationTypeJwt) { _%> -import javax.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletRequest <%_ } _%> -import javax.validation.Valid +import jakarta.validation.Valid <%_ if (authenticationTypeSession && !reactive) { _%> import java.nio.charset.StandardCharsets import java.net.URLDecoder diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource_oauth2.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource_oauth2.kt.ejs index 04d51216b..2e04ecf96 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource_oauth2.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource_oauth2.kt.ejs @@ -33,7 +33,7 @@ import org.springframework.web.bind.annotation.RestController import org.springframework.web.server.ServerWebExchange import reactor.core.publisher.Mono <%_ } else { _%> -import javax.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletRequest <%_ } _%> import java.security.Principal diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource_skipUserManagement.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource_skipUserManagement.kt.ejs index 73acd2219..c641e2564 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource_skipUserManagement.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AccountResource_skipUserManagement.kt.ejs @@ -21,7 +21,7 @@ package <%= packageName %>.web.rest <%_ if (reactive) { _%> import reactor.core.publisher.Mono <%_ } else { _%> -import javax.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletRequest <%_ } _%> <%_ if (authenticationTypeOauth2) { _%> diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AuthenticateController.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AuthenticateController.kt.ejs index caa576ece..80b2241e0 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AuthenticateController.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/AuthenticateController.kt.ejs @@ -24,7 +24,7 @@ import <%= packageName %>.web.rest.vm.LoginVM import com.fasterxml.jackson.annotation.JsonProperty -import javax.validation.Valid +import jakarta.validation.Valid import java.time.Instant import java.time.temporal.ChronoUnit import java.util.stream.Collectors @@ -47,7 +47,7 @@ import reactor.core.publisher.Mono import org.springframework.web.server.ServerWebExchange import org.springframework.security.authentication.ReactiveAuthenticationManager <%_ } else { _%> -import javax.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletRequest import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder import org.springframework.security.core.context.SecurityContextHolder <%_ } _%> diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/LogoutResource_imperative.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/LogoutResource_imperative.kt.ejs index 825027ed7..113d28c72 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/LogoutResource_imperative.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/LogoutResource_imperative.kt.ejs @@ -26,7 +26,7 @@ import org.springframework.security.oauth2.core.oidc.OidcIdToken import org.springframework.web.bind.annotation.PostMapping import org.springframework.web.bind.annotation.RestController -import javax.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletRequest import org.springframework.http.HttpHeaders /** diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/ExceptionTranslator.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/ExceptionTranslator.kt.ejs index 4610ee164..2b8e063b5 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/ExceptionTranslator.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/ExceptionTranslator.kt.ejs @@ -72,7 +72,7 @@ import reactor.core.publisher.Mono <%_ } _%> <%_ if (!reactive) { _%> -import javax.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletRequest <%_ } _%> import java.net.URI diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/vm/LoginVM.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/vm/LoginVM.kt.ejs index bef218e35..43b2cfb76 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/vm/LoginVM.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/vm/LoginVM.kt.ejs @@ -18,8 +18,8 @@ -%> package <%= packageName %>.web.rest.vm -import javax.validation.constraints.NotNull -import javax.validation.constraints.Size +import jakarta.validation.constraints.NotNull +import jakarta.validation.constraints.Size /** * View Model object for storing a user's credentials. diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/vm/ManagedUserVM.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/vm/ManagedUserVM.kt.ejs index c638823e5..f70168f6f 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/vm/ManagedUserVM.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/vm/ManagedUserVM.kt.ejs @@ -20,7 +20,7 @@ package <%= packageName %>.web.rest.vm import <%= packageName %>.service.dto.<%= user.adminUserDto %> <%_ if (!authenticationTypeOauth2) { _%> -import javax.validation.constraints.Size +import jakarta.validation.constraints.Size <%_ } _%> /** diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/PublicUserResourceIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/PublicUserResourceIT.kt.ejs index 5e40c1c0f..e3f915ae4 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/PublicUserResourceIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/PublicUserResourceIT.kt.ejs @@ -69,7 +69,7 @@ import reactor.core.publisher.Mono <%_ } _%> <%_ if (databaseTypeSql && !reactive) { _%> -import javax.persistence.EntityManager +import jakarta.persistence.EntityManager <%_ } _%> <%_ if (databaseTypeCassandra || databaseTypeCouchbase) { _%> import java.util.stream.Stream diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/UserResourceIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/UserResourceIT.kt.ejs index d339d33fc..845e62575 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/UserResourceIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/UserResourceIT.kt.ejs @@ -83,7 +83,7 @@ import reactor.core.publisher.Mono <%_ } _%> <%_ if (databaseTypeSql && !reactive) { _%> -import javax.persistence.EntityManager +import jakarta.persistence.EntityManager <%_ } _%> <%_ if (!databaseTypeCassandra) { _%> import java.time.Instant diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs index 186daf5f0..b3d607947 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.kt.ejs @@ -168,7 +168,7 @@ import reactor.core.publisher.Mono <%_ } _%> import org.springframework.validation.Validator <%_ if (databaseTypeSql && !reactive) { _%> -import javax.persistence.EntityManager +import jakarta.persistence.EntityManager <%_ } _%> <%_ if (anyFieldIsBigDecimal) { _%> import java.math.BigDecimal diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/config/WebConfigurerTest.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/config/WebConfigurerTest.kt.ejs index b99c5df4a..d2a4097bf 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/config/WebConfigurerTest.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/config/WebConfigurerTest.kt.ejs @@ -30,11 +30,11 @@ import org.springframework.mock.env.MockEnvironment import org.springframework.mock.web.MockServletContext import org.springframework.test.web.servlet.setup.MockMvcBuilders -import javax.servlet.Filter -import javax.servlet.FilterRegistration -import javax.servlet.Servlet -import javax.servlet.ServletException -import javax.servlet.ServletRegistration +import jakarta.servlet.Filter +import jakarta.servlet.FilterRegistration +import jakarta.servlet.Servlet +import jakarta.servlet.ServletException +import jakarta.servlet.ServletRegistration <%_ if (!skipClient) { _%> import java.io.File diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/JwtAuthenticationTestUtils.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/JwtAuthenticationTestUtils.kt.ejs index 98d62c1c9..98c7ffeac 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/JwtAuthenticationTestUtils.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/JwtAuthenticationTestUtils.kt.ejs @@ -9,9 +9,9 @@ import io.micrometer.core.instrument.MeterRegistry import io.micrometer.core.instrument.simple.SimpleMeterRegistry import java.time.Instant import java.util.Collections -import javax.crypto.Mac -import javax.crypto.SecretKey -import javax.crypto.spec.SecretKeySpec +import jakarta.crypto.Mac +import jakarta.crypto.SecretKey +import jakarta.crypto.spec.SecretKeySpec import org.springframework.context.annotation.Bean import org.springframework.security.crypto.codec.Hex import org.springframework.security.oauth2.jwt.JwsHeader diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/service/MailServiceIT.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/service/MailServiceIT.kt.ejs index d311046b5..4b3b34bcd 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/service/MailServiceIT.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/service/MailServiceIT.kt.ejs @@ -32,11 +32,11 @@ import org.springframework.beans.factory.annotation.Autowired import org.springframework.mail.MailSendException import org.springframework.mail.javamail.JavaMailSender -import javax.mail.Multipart -import javax.mail.Session -import javax.mail.internet.MimeBodyPart -import javax.mail.internet.MimeMessage -import javax.mail.internet.MimeMultipart +import jakarta.mail.Multipart +import jakarta.mail.Session +import jakarta.mail.internet.MimeBodyPart +import jakarta.mail.internet.MimeMessage +import jakarta.mail.internet.MimeMultipart import java.io.ByteArrayOutputStream import java.io.File import java.io.FileInputStream diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/TestUtil.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/TestUtil.kt.ejs index d791af705..ce5083a67 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/TestUtil.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/TestUtil.kt.ejs @@ -38,7 +38,7 @@ import org.springframework.security.test.context.TestSecurityContextHolder <%_ } _%> <%_ if (databaseTypeSql) { _%> -import javax.persistence.EntityManager +import jakarta.persistence.EntityManager <%_ } _%> <%_ if (searchEngineCouchbase) { _%> diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/errors/ExceptionTranslatorTestController.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/errors/ExceptionTranslatorTestController.kt.ejs index da4fbb580..9fec6238d 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/errors/ExceptionTranslatorTestController.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/web/rest/errors/ExceptionTranslatorTestController.kt.ejs @@ -33,8 +33,8 @@ import org.springframework.web.bind.annotation.RequestPart import org.springframework.web.bind.annotation.ResponseStatus import org.springframework.web.bind.annotation.RestController -import javax.validation.Valid -import javax.validation.constraints.NotNull +import jakarta.validation.Valid +import jakarta.validation.constraints.NotNull @RestController @RequestMapping("/api/exception-translator-test") From c2230a014aa167365047402d86d3f0784103d291 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Wed, 7 Aug 2024 23:11:06 -0300 Subject: [PATCH 09/17] templates adjusts --- .../_entityPackage_/service/mapper/_entityClass_Mapper.kt.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/mapper/_entityClass_Mapper.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/mapper/_entityClass_Mapper.kt.ejs index 3013bceb1..329bd5b2e 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/mapper/_entityClass_Mapper.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/_entityPackage_/service/mapper/_entityClass_Mapper.kt.ejs @@ -40,7 +40,7 @@ _%> import <%= entityAbsoluteClass %> import <%= entityAbsolutePackage %>.service.dto.<%= dtoClass %> -<%_ for (const otherEntity of this._.uniq(dtoRelationships.map(relationship => relationship.otherEntity).filter(otherEntity => otherEntity !== entity))) { _%> +<%_ for (const otherEntity of this._.uniq(dtoRelationships.map(relationship => relationship.otherEntity).filter(otherEntity => otherEntity.entityClass !== entityClass))) { _%> import <%= otherEntity.entityAbsoluteClass.replace('undefined',entityAbsolutePackage ) %> import <%= otherEntity.entityAbsolutePackage || entityAbsolutePackage %>.service.dto.<%= otherEntity.dtoClass %> <%_ } _%> From f08da7e4a16a7b6159f1f4dfa04a079300a231c1 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Wed, 7 Aug 2024 23:16:10 -0300 Subject: [PATCH 10/17] drop custom pom.xml --- generators/spring-boot/templates/pom.xml.ejs | 771 ------------------- 1 file changed, 771 deletions(-) delete mode 100644 generators/spring-boot/templates/pom.xml.ejs diff --git a/generators/spring-boot/templates/pom.xml.ejs b/generators/spring-boot/templates/pom.xml.ejs deleted file mode 100644 index 97f44848f..000000000 --- a/generators/spring-boot/templates/pom.xml.ejs +++ /dev/null @@ -1,771 +0,0 @@ -<%# - Copyright 2013-2024 the original author or authors from the JHipster project. - - This file is part of the JHipster project, see https://www.jhipster.tech/ - for more information. - - 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 - - https://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. --%> - - - 4.0.0 - - <%= packageName %> - <%= dasherizedBaseName %> - <%= projectVersion %> - jar - <%= humanizedBaseName %> - <%= projectDescription %> - - - - 3.2.5 - <%= JAVA_VERSION %> - UTF-8 - UTF-8 - yyyyMMddHHmmss - ${java.version} - ${java.version} - <%= packageName %>.<%= mainClass %> - -Djava.security.egd=file:/dev/./urandom -Xmx1G - jdt_apt - false - - - - - -<%_ if (reactive) { _%> - <%- javaDependencies['blockhound-junit-platform'] %> -<%_ } _%> - <%- javaDependencies['archunit-junit5'] %> - <%- javaDependencies.mapstruct %> - <%- javaDependencies['git-commit-id-maven-plugin'] %> - <%- javaDependencies['lifecycle-mapping'] %> - <%- javaDependencies['maven-clean-plugin'] %> - <%- javaDependencies['maven-compiler-plugin'] %> - <%- javaDependencies['maven-enforcer-plugin'] %> - <%- javaDependencies['maven-failsafe-plugin'] %> - <%- javaDependencies['maven-javadoc-plugin'] %> - <%- javaDependencies['maven-jar-plugin'] %> - <%- javaDependencies['maven-resources-plugin'] %> - <%- javaDependencies['maven-site-plugin'] %> - <%- javaDependencies['maven-surefire-plugin'] %> - <%- javaDependencies['maven-war-plugin'] %> - - - - - com.fasterxml.jackson.datatype - jackson-datatype-hppc - - - com.fasterxml.jackson.datatype - jackson-datatype-jsr310 - -<%_ if (authenticationTypeOauth2) { _%> - - com.github.ben-manes.caffeine - caffeine - -<%_ } _%> - - com.tngtech.archunit - archunit-junit5-api - ${archunit-junit5.version} - test - - - - - com.tngtech.archunit - archunit-junit5-engine - ${archunit-junit5.version} - test - - - io.micrometer - micrometer-registry-prometheus-simpleclient - -<%_ if (reactive) { _%> - - io.netty - netty-tcnative-boringssl-static - runtime - - - io.projectreactor.tools - blockhound-junit-platform - ${blockhound-junit-platform.version} - test - -<%_ } _%> - - jakarta.annotation - jakarta.annotation-api - - - org.apache.commons - commons-lang3 - - - org.mapstruct - mapstruct - ${mapstruct.version} - - - org.mapstruct - mapstruct-processor - ${mapstruct.version} - provided - - - org.springframework.boot - spring-boot-configuration-processor - provided - - - org.springframework.boot - spring-boot-loader-tools - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-logging - - - org.springframework.boot - spring-boot-starter-mail - -<%_ if (authenticationTypeOauth2) { _%> - - org.springframework.boot - spring-boot-starter-oauth2-client - -<%_ } _%> -<%_ if (authenticationTypeJwt || authenticationTypeSession) { _%> - - org.springframework.boot - spring-boot-starter-security - -<%_ } _%> - - org.springframework.boot - spring-boot-starter-test - test - - - org.springframework.boot - spring-boot-starter-thymeleaf - -<%_ if (!reactive) { _%> - - org.springframework.boot - spring-boot-starter-undertow - -<%_ } _%> - - org.springframework.boot - spring-boot-starter-validation - - - org.springframework.boot - spring-boot-starter-web<% if (reactive) { %>flux<% } %> -<%_ if (!reactive) { _%> - - - org.springframework.boot - spring-boot-starter-tomcat - - -<%_ } _%> - - - org.springframework.boot - spring-boot-test - test - -<%_ if (applicationTypeMicroservice || applicationTypeGateway) { _%> - - org.springframework.cloud - spring-cloud-starter - -<%_ } _%> -<%_ if (serviceDiscoveryAny) { _%> - - org.springframework.cloud - spring-cloud-starter-bootstrap - -<%_ } _%> -<%_ if (applicationTypeMicroservice || applicationTypeGateway) { _%> - <%_ if (reactive) { _%> - - org.springframework.cloud - spring-cloud-starter-circuitbreaker-reactor-resilience4j - - <%_ } else { _%> - - org.springframework.cloud - spring-cloud-starter-circuitbreaker-resilience4j - - <%_ } _%> -<%_ } _%> -<%_ if (serviceDiscoveryAny && serviceDiscoveryEureka) { _%> - - org.springframework.cloud - spring-cloud-starter-config - -<%_ } _%> -<%_ if (applicationTypeGateway && !reactive) { _%> - - org.springframework.cloud - spring-cloud-starter-loadbalancer - -<%_ } _%> -<%_ if (serviceDiscoveryAny && serviceDiscoveryConsul) { _%> - - org.springframework.cloud - spring-cloud-starter-consul-config - - - org.springframework.cloud - spring-cloud-starter-consul-discovery - -<%_ } _%> -<%_ if (serviceDiscoveryAny && serviceDiscoveryEureka) { _%> - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - -<%_ } _%> -<%_ if (reactive) { _%> - - org.springframework.data - spring-data-commons - -<%_ } _%> -<%_ if (applicationTypeMicroservice || applicationTypeGateway) { _%> - - org.springframework.retry - spring-retry - -<%_ } _%> - - org.springframework.security - spring-security-test - test - - - - - spring-boot:run - - - org.apache.maven.plugins - maven-compiler-plugin - - - org.apache.maven.plugins - maven-javadoc-plugin - - - org.apache.maven.plugins - maven-enforcer-plugin - - - org.apache.maven.plugins - maven-failsafe-plugin - - - org.apache.maven.plugins - maven-resources-plugin - - - org.apache.maven.plugins - maven-surefire-plugin - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - ${java.version} - ${java.version} - true - - - org.springframework.boot - spring-boot-configuration-processor - - - org.mapstruct - mapstruct-processor - ${mapstruct.version} - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - ${maven-javadoc-plugin.version} - - ${maven.compiler.source} - - - - org.apache.maven.plugins - maven-war-plugin - ${maven-war-plugin.version} - - - default-war - - war - - package - - - - WEB-INF/**,META-INF/** - false -<%_ if (!skipClient) { _%> - <%= clientDistDir %> - - - <%= MAIN_DIR %>webapp - - WEB-INF/** - - - -<%_ } _%> - - - - io.github.git-commit-id - git-commit-id-maven-plugin - ${git-commit-id-maven-plugin.version} - - - - revision - - - - - false - false - true - - ^git.commit.id.abbrev$ - ^git.commit.id.describe$ - ^git.branch$ - - - - - org.apache.maven.plugins - maven-clean-plugin - ${maven-clean-plugin.version} - - - org.apache.maven.plugins - maven-site-plugin - ${maven-site-plugin.version} - - - org.apache.maven.plugins - maven-enforcer-plugin - ${maven-enforcer-plugin.version} - - - enforce-versions - - enforce - - - - enforce-dependencyConvergence - - - - - false - - - enforce - - - - - - - You are running an older version of Maven. JHipster requires at least Maven ${maven.version} - [${maven.version},) - - - You are running an incompatible version of Java. JHipster supports JDK <%= JAVA_COMPATIBLE_VERSIONS[0] %> to <%= JAVA_COMPATIBLE_VERSIONS[JAVA_COMPATIBLE_VERSIONS.length -1] %>. - <%= JAVA_COMPATIBLE_VERSIONS.map(version => parseInt(version)).map(version => `[${version},${version +1})`).join(',') %> - - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - alphabetical - - **/*IT* - **/*IntTest* - -<%_ if (reactive) { _%> - - @{argLine} -XX:+AllowRedefinitionToAddDeleteMethods -<%_ } _%> - - src/test/resources/logback.xml - - - - - org.apache.maven.plugins - maven-jar-plugin - ${maven-jar-plugin.version} - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - - - ${start-class} -<%_ if (embeddableLaunchScript) { _%> - true -<%_ } _%> - -<%_ if (cacheProviderInfinispan) { _%> - -Djgroups.tcp.address=NON_LOOPBACK -Djava.net.preferIPv4Stack=true -<%_ } _%> - - - - org.apache.maven.plugins - maven-failsafe-plugin - ${maven-failsafe-plugin.version} - - - ${project.build.outputDirectory} - - alphabetical - - **/*IT* - **/*IntTest* - -<%_ if (reactive) { _%> - - @{argLine} -XX:+AllowRedefinitionToAddDeleteMethods -Dspring.profiles.active=${profile.test} -<%_ } else { _%> - @{argLine} -Dspring.profiles.active=${profile.test} -<%_ } _%> - - - - integration-test - - integration-test - - - - verify - - verify - - - - - - - - - - api-docs - - ,api-docs - - - - tls - - ,tls - - -<%_ if (!skipClient) { _%> - - webapp - - true - - - - dev<%_ if (databaseMigrationLiquibase) { _%>${profile.no-liquibase}<%_ } _%> - - -<%_ } _%> - - dev - - true - - - - dev${profile.tls}<%_ if (databaseMigrationLiquibase) { _%>${profile.no-liquibase}<%_ } _%> - testdev - - - - org.springframework.boot - spring-boot-devtools - true - - - - - prod - - - prod${profile.api-docs}${profile.tls}${profile.e2e}<%_ if (databaseMigrationLiquibase) { _%>${profile.no-liquibase}<%_ } _%> - testprod - - - - - org.apache.maven.plugins - maven-clean-plugin - - - - <%= clientDistDir %> - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - build-info - - - - - - io.github.git-commit-id - git-commit-id-maven-plugin - - - - - - war - - - - org.apache.maven.plugins - maven-war-plugin - - - - -<%_ if (serviceDiscoveryAny || applicationTypeGateway || applicationTypeMicroservice) { _%> - - - zipkin - - - io.micrometer - micrometer-tracing - - - io.micrometer - micrometer-tracing-bridge-brave - - - io.zipkin.reporter2 - zipkin-reporter-brave - - - -<%_ } _%> - - - IDE - - - org.mapstruct - mapstruct-processor - ${mapstruct.version} - - - - - - eclipse - - - m2e.version - - - - - - org.springframework.boot - spring-boot-starter-undertow - - - - - - - - org.eclipse.m2e - lifecycle-mapping - ${lifecycle-mapping.version} - - - - - - org.jacoco - - jacoco-maven-plugin - - - ${jacoco-maven-plugin.version} - - - prepare-agent - - - - - - -<%_ if (!skipClient) { _%> - - - com.github.eirslett - frontend-maven-plugin - ${frontend-maven-plugin.version} - - install-node-and-npm - npm - - - - - - -<%_ } _%> -<%_ if (enableSwaggerCodegen) { _%> - - - org.openapitools - openapi-generator-maven-plugin - ${openapi-generator-maven-plugin.version} - - generate - - - - - - -<%_ } _%> - - - - - - - - -<%_ if (cypressTests) { _%> - - e2e - - ,e2e - - - e2e - - - - org.springframework.boot - spring-boot-maven-plugin - - - repackage - - repackage - - - - - - - - -<%_ } _%> - - From 38740c251d5820a745f2dc9d96c4bddef44af498 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Wed, 7 Aug 2024 23:17:35 -0300 Subject: [PATCH 11/17] drop custom application yml config --- .../config/application-testdev.yml.ejs | 93 ------------------- .../config/application-testprod.yml.ejs | 71 -------------- 2 files changed, 164 deletions(-) delete mode 100644 generators/spring-boot/templates/spring-data-relational/src/test/resources/config/application-testdev.yml.ejs delete mode 100644 generators/spring-boot/templates/spring-data-relational/src/test/resources/config/application-testprod.yml.ejs diff --git a/generators/spring-boot/templates/spring-data-relational/src/test/resources/config/application-testdev.yml.ejs b/generators/spring-boot/templates/spring-data-relational/src/test/resources/config/application-testdev.yml.ejs deleted file mode 100644 index f3a65e522..000000000 --- a/generators/spring-boot/templates/spring-data-relational/src/test/resources/config/application-testdev.yml.ejs +++ /dev/null @@ -1,93 +0,0 @@ -<%# - Copyright 2013-2024 the original author or authors from the JHipster project. - - This file is part of the JHipster project, see https://www.jhipster.tech/ - for more information. - - 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 - - https://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. --%> -# =================================================================== -# Spring Boot configuration. -# -# This configuration is used for unit/integration tests with testcontainers database containers. -# -# To activate this configuration launch integration tests with the 'testcontainers' profile -# -# More information on database containers: https://www.testcontainers.org/modules/databases/ -<%_ if (devDatabaseTypeMssql) { _%> -# -# You are required to accept EULA license for SQL server containers. -# Follow the instructions at https://www.testcontainers.org/modules/databases/mssqlserver/ -<%_ } _%> -<%_ if (devDatabaseTypeOracle) { _%> -# -# You have to specify an Oracle image name in a classpath file named testcontainers.properties. -# Follow the instructions at https://www.testcontainers.org/modules/databases/oraclexe/ -<%_ } _%> -# =================================================================== - -spring: -<%_ if (reactive) { _%> - <%_ if (devDatabaseTypeH2Any) { _%> - r2dbc: - <%_ if (devDatabaseTypeH2Memory) { _%> - url: <%- this.getR2DBCUrl(devDatabaseType, { databaseName: lowercaseBaseName, itests: true }) %> - <%_ } else { _%> - url: <%- this.getR2DBCUrl(devDatabaseType, { databaseName: lowercaseBaseName, localDirectory: `././${temporaryDir}h2db/testdb` }) %> - <%_ } _%> - username: <%= lowercaseBaseName %> - password: - liquibase: - <%_ if (devDatabaseTypeH2Memory) { _%> - url: <%- this.getJDBCUrl(devDatabaseType, { databaseName: lowercaseBaseName, itests: true }) %> - <%_ } else { _%> - url: <%- this.getJDBCUrl(devDatabaseType, { databaseName: lowercaseBaseName, localDirectory: `./${temporaryDir}h2db/testdb` }) %> - <%_ } _%> - <%_ } _%> -<%_ } else { _%> - datasource: - type: com.zaxxer.hikari.HikariDataSource - hikari: - auto-commit: false - <%_ if (!devDatabaseTypeH2Any) { _%> - poolName: Hikari - maximum-pool-size: 1 - <%_ if (devDatabaseTypeMysql || devDatabaseTypeMariadb || devDatabaseTypeMssql) { _%> - data-source-properties: - cachePrepStmts: true - prepStmtCacheSize: 250 - prepStmtCacheSqlLimit: 2048 - useServerPrepStmts: true - <%_ } _%> - <%_ } _%> - jpa: - <%_ if (devDatabaseTypePostgresql) { _%> - database-platform: tech.jhipster.domain.util.FixedPostgreSQL10Dialect - <%_ } _%> - open-in-view: false - hibernate: - ddl-auto: none - naming: - physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy - implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy - properties: - hibernate.id.new_generator_mappings: true - hibernate.connection.provider_disables_autocommit: true - hibernate.cache.use_second_level_cache: false - hibernate.cache.use_query_cache: false - hibernate.generate_statistics: false - hibernate.hbm2ddl.auto: validate - hibernate.jdbc.time_zone: UTC - hibernate.query.fail_on_pagination_over_collection_fetch: true -<%_ } _%> - diff --git a/generators/spring-boot/templates/spring-data-relational/src/test/resources/config/application-testprod.yml.ejs b/generators/spring-boot/templates/spring-data-relational/src/test/resources/config/application-testprod.yml.ejs deleted file mode 100644 index 53a34570b..000000000 --- a/generators/spring-boot/templates/spring-data-relational/src/test/resources/config/application-testprod.yml.ejs +++ /dev/null @@ -1,71 +0,0 @@ -<%# - Copyright 2013-2024 the original author or authors from the JHipster project. - - This file is part of the JHipster project, see https://www.jhipster.tech/ - for more information. - - 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 - - https://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. --%> -# =================================================================== -# Spring Boot configuration. -# -# This configuration is used for unit/integration tests with testcontainers database containers. -# -# To activate this configuration launch integration tests with the 'testcontainers' profile -# -# More information on database containers: https://www.testcontainers.org/modules/databases/ -<%_ if (prodDatabaseTypeMssql) { _%> -# -# You are required to accept EULA license for SQL server containers. -# Follow the instructions at https://www.testcontainers.org/modules/databases/mssqlserver/ -<%_ } _%> -<%_ if (prodDatabaseTypeOracle) { _%> -# -# You have to specify an Oracle image name in a classpath file named testcontainers.properties. -# Follow the instructions at https://www.testcontainers.org/modules/databases/oraclexe/ -<%_ } _%> -# =================================================================== - -spring: - datasource: - type: com.zaxxer.hikari.HikariDataSource - hikari: - poolName: Hikari - auto-commit: false - maximum-pool-size: 1 -<%_ if (prodDatabaseTypeMysql || prodDatabaseTypeMariadb || prodDatabaseTypeMssql) { _%> - data-source-properties: - cachePrepStmts: true - prepStmtCacheSize: 250 - prepStmtCacheSqlLimit: 2048 - useServerPrepStmts: true -<%_ } _%> - jpa: -<%_ if (prodDatabaseTypePostgresql) { _%> - database-platform: tech.jhipster.domain.util.FixedPostgreSQL10Dialect -<%_ } _%> - open-in-view: false - hibernate: - ddl-auto: none - naming: - physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy - implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy - properties: - hibernate.id.new_generator_mappings: true - hibernate.connection.provider_disables_autocommit: true - hibernate.cache.use_second_level_cache: false - hibernate.cache.use_query_cache: false - hibernate.generate_statistics: false - hibernate.hbm2ddl.auto: validate - hibernate.jdbc.time_zone: UTC - hibernate.query.fail_on_pagination_over_collection_fetch: true From 875d1e85a44fac9420fcd29109e508c8dccc9e1e Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Wed, 7 Aug 2024 23:27:52 -0300 Subject: [PATCH 12/17] remove zalando reference --- .../web/rest/errors/LoginAlreadyUsedException.kt.ejs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/LoginAlreadyUsedException.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/LoginAlreadyUsedException.kt.ejs index 288af0498..a591307e8 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/LoginAlreadyUsedException.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/LoginAlreadyUsedException.kt.ejs @@ -18,14 +18,10 @@ -%> package <%= packageName %>.web.rest.errors -import org.zalando.problem.Exceptional - @SuppressWarnings("java:S110") // Inheritance tree of classes should not be too deep class LoginAlreadyUsedException : BadRequestAlertException(LOGIN_ALREADY_USED_TYPE, "Login name already used!", "userManagement", "userexists") { - override fun getCause(): Exceptional? = super.cause - companion object { private const val serialVersionUID = 1L } From 0b3a74c2b5f0ce19e21463a46789b0df744d1d9b Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Wed, 7 Aug 2024 23:29:50 -0300 Subject: [PATCH 13/17] write enum files --- generators/spring-boot-v2/generator.js | 32 ----------------------- generators/spring-boot/generator.js | 36 ++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 32 deletions(-) diff --git a/generators/spring-boot-v2/generator.js b/generators/spring-boot-v2/generator.js index 37c65ff3d..8d19cc6a4 100644 --- a/generators/spring-boot-v2/generator.js +++ b/generators/spring-boot-v2/generator.js @@ -332,38 +332,6 @@ export default class extends BaseApplicationGenerator { }); } }, - - // Can be dropped for jhipster 8.7.0 - async writeEnumFiles({ application, entities }) { - for (const entity of entities.filter(entity => !entity.skipServer)) { - for (const field of entity.fields.filter(field => field.fieldIsEnum)) { - const enumInfo = { - ...application, - ...getEnumInfo(field, entity.clientRootFolder), - frontendAppName: entity.frontendAppName, - packageName: application.packageName, - javaPackageSrcDir: application.javaPackageSrcDir, - entityJavaPackageFolder: entity.entityJavaPackageFolder, - entityAbsolutePackage: entity.entityAbsolutePackage || application.packageName, - }; - await this.writeFiles({ - blocks: [ - { - templates: [ - { - file: `${SERVER_MAIN_SRC_KOTLIN_DIR}_package_/_entityPackage_/domain/enumeration/_enumName_.kt`, - renameTo: () => - `${SERVER_MAIN_SRC_KOTLIN_DIR}${entity.entityAbsoluteFolder}/domain/enumeration/${field.fieldType}.kt`, - }, - ], - }, - ], - rootTemplatesPath: ['../../spring-boot/templates/domain/'], - context: enumInfo, - }); - } - } - }, }); } diff --git a/generators/spring-boot/generator.js b/generators/spring-boot/generator.js index 93c7bf3f8..8a10851a1 100644 --- a/generators/spring-boot/generator.js +++ b/generators/spring-boot/generator.js @@ -184,6 +184,42 @@ export default class extends BaseApplicationGenerator { }); } + get [BaseApplicationGenerator.WRITING_ENTITIES]() { + return this.asWritingEntitiesTaskGroup({ + // Can be dropped for jhipster 8.7.0 + async writeEnumFiles({ application, entities }) { + for (const entity of entities.filter(entity => !entity.skipServer)) { + for (const field of entity.fields.filter(field => field.fieldIsEnum)) { + const enumInfo = { + ...application, + ...getEnumInfo(field, entity.clientRootFolder), + frontendAppName: entity.frontendAppName, + packageName: application.packageName, + javaPackageSrcDir: application.javaPackageSrcDir, + entityJavaPackageFolder: entity.entityJavaPackageFolder, + entityAbsolutePackage: entity.entityAbsolutePackage || application.packageName, + }; + await this.writeFiles({ + blocks: [ + { + templates: [ + { + file: `${SERVER_MAIN_SRC_KOTLIN_DIR}_package_/_entityPackage_/domain/enumeration/_enumName_.kt`, + renameTo: () => + `${SERVER_MAIN_SRC_KOTLIN_DIR}${entity.entityAbsoluteFolder}/domain/enumeration/${field.fieldType}.kt`, + }, + ], + }, + ], + rootTemplatesPath: ['../../spring-boot/templates/domain/'], + context: enumInfo, + }); + } + } + }, + }); + } + get [BaseApplicationGenerator.POST_WRITING]() { return this.asPostWritingTaskGroup({ async customizeMaven({ application, source }) { From c2d16b2fab957c87742321ec7b5385c4fafe2f18 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Wed, 7 Aug 2024 23:37:07 -0300 Subject: [PATCH 14/17] adjusts --- generators/spring-boot-v2/generator.js | 16 ++++++++-------- generators/spring-boot/generator.js | 2 ++ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/generators/spring-boot-v2/generator.js b/generators/spring-boot-v2/generator.js index 8d19cc6a4..ee9c67dc2 100644 --- a/generators/spring-boot-v2/generator.js +++ b/generators/spring-boot-v2/generator.js @@ -2,16 +2,10 @@ import { basename, dirname, join } from 'path'; import { fileURLToPath } from 'url'; import { existsSync } from 'fs'; import BaseApplicationGenerator from 'generator-jhipster/generators/spring-boot'; -import { getEnumInfo } from 'generator-jhipster/generators/base-application/support'; import { files as entityServerFiles } from 'jhipster-7-templates/esm/generators/entity-server'; import { files as serverFiles } from 'jhipster-7-templates/esm/generators/server'; import { convertToKotlinFile } from '../kotlin/support/files.js'; import { migrateApplicationTask } from './preparing-migration.js'; -import migration from './migration.cjs'; - -const { jhipsterConstants } = migration; -const { MAIN_DIR } = jhipsterConstants; -const SERVER_MAIN_SRC_KOTLIN_DIR = `${MAIN_DIR}kotlin/`; const jhipster7TemplatesPackage = dirname(fileURLToPath(import.meta.resolve('jhipster-7-templates/package.json'))); @@ -395,8 +389,14 @@ export default class extends BaseApplicationGenerator { source.addGradleProperty({ property: 'mapstructVersion', value: application.javaDependencies.mapstruct }); source.addGradleProperty({ property: 'springBootVersion', value: application.javaDependencies['spring-boot'] }); if (application.databaseTypeSql) { - source.addGradleProperty({ property: 'liquibase.version', value: application.javaDependencies.liquibase }); - source.addGradleProperty({ property: 'hibernateVersion', value: application.javaDependencies.hibernate }); + source.addGradleProperty({ + property: 'liquibase.version', + value: application.javaManagedProperties['liquibase.version'], + }); + source.addGradleProperty({ + property: 'hibernateVersion', + value: application.javaManagedProperties['hibernate.version'], + }); source.addGradleProperty({ property: 'jaxbRuntimeVersion', value: '4.0.0' }); } if (application.databaseTypeCassandra) { diff --git a/generators/spring-boot/generator.js b/generators/spring-boot/generator.js index 8a10851a1..d2043820f 100644 --- a/generators/spring-boot/generator.js +++ b/generators/spring-boot/generator.js @@ -3,8 +3,10 @@ import { existsSync } from 'fs'; // Use spring-boot as parent due to this context in generators import BaseApplicationGenerator from 'generator-jhipster/generators/base-application'; import { createNeedleCallback } from 'generator-jhipster/generators/base/support'; +import { getEnumInfo } from 'generator-jhipster/generators/base-application/support'; import { convertToKotlinFile } from '../kotlin/support/files.js'; +import { SERVER_MAIN_SRC_KOTLIN_DIR } from '../kotlin/support/constants.js'; import { KOTLIN_TEST_SRC_DIR } from './kotlin-constants.js'; export default class extends BaseApplicationGenerator { From 2233c7e2525fe55358529905853f30f76fafb09c Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Thu, 8 Aug 2024 16:20:16 -0300 Subject: [PATCH 15/17] revert to javax. --- .../kotlin/_package_/config/LiquibaseConfiguration.kt.ejs | 2 +- .../kotlin/_package_/config/SecurityJwtConfiguration.kt.ejs | 4 ++-- .../security/jwt/JwtAuthenticationTestUtils.kt.ejs | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/generators/spring-boot/templates/liquibase/src/main/kotlin/_package_/config/LiquibaseConfiguration.kt.ejs b/generators/spring-boot/templates/liquibase/src/main/kotlin/_package_/config/LiquibaseConfiguration.kt.ejs index 51a3e881b..b12b922b7 100644 --- a/generators/spring-boot/templates/liquibase/src/main/kotlin/_package_/config/LiquibaseConfiguration.kt.ejs +++ b/generators/spring-boot/templates/liquibase/src/main/kotlin/_package_/config/LiquibaseConfiguration.kt.ejs @@ -42,7 +42,7 @@ import org.springframework.context.annotation.Configuration import org.springframework.core.env.Environment import org.springframework.core.env.Profiles -import jakarta.sql.DataSource +import javax.sql.DataSource import java.util.concurrent.Executor <%_ if (reactive) { _%> import java.util.function.Supplier diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityJwtConfiguration.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityJwtConfiguration.kt.ejs index a8bc9437a..a7a71f582 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityJwtConfiguration.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/config/SecurityJwtConfiguration.kt.ejs @@ -24,8 +24,8 @@ import static <%= packageName %>.security.SecurityUtils.JWT_ALGORITHM import <%= packageName %>.management.SecurityMetersService import com.nimbusds.jose.jwk.source.ImmutableSecret import com.nimbusds.jose.util.Base64 -import jakarta.crypto.SecretKey -import jakarta.crypto.spec.SecretKeySpec +import javax.crypto.SecretKey +import javax.crypto.spec.SecretKeySpec import org.springframework.beans.factory.annotation.Value import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration diff --git a/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/JwtAuthenticationTestUtils.kt.ejs b/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/JwtAuthenticationTestUtils.kt.ejs index 98c7ffeac..98d62c1c9 100644 --- a/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/JwtAuthenticationTestUtils.kt.ejs +++ b/generators/spring-boot/templates/src/test/kotlin/_package_/security/jwt/JwtAuthenticationTestUtils.kt.ejs @@ -9,9 +9,9 @@ import io.micrometer.core.instrument.MeterRegistry import io.micrometer.core.instrument.simple.SimpleMeterRegistry import java.time.Instant import java.util.Collections -import jakarta.crypto.Mac -import jakarta.crypto.SecretKey -import jakarta.crypto.spec.SecretKeySpec +import javax.crypto.Mac +import javax.crypto.SecretKey +import javax.crypto.spec.SecretKeySpec import org.springframework.context.annotation.Bean import org.springframework.security.crypto.codec.Hex import org.springframework.security.oauth2.jwt.JwsHeader From 9c98468bec48f716cdf79a5a68f6844c17f92c31 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Thu, 8 Aug 2024 16:23:59 -0300 Subject: [PATCH 16/17] add imports to ExceptionTranslator --- .../rest/errors/ExceptionTranslator.kt.ejs | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/ExceptionTranslator.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/ExceptionTranslator.kt.ejs index 2b8e063b5..7c5db00b0 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/ExceptionTranslator.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/ExceptionTranslator.kt.ejs @@ -18,7 +18,7 @@ -%> package <%= packageName %>.web.rest.errors -import org.springframework.core.annotation.AnnotatedElementUtils.findMergedAnnotation; +import org.springframework.core.annotation.AnnotatedElementUtils.findMergedAnnotation import tech.jhipster.config.JHipsterConstants import tech.jhipster.web.util.HeaderUtil @@ -40,9 +40,9 @@ import org.springframework.web.ErrorResponseException import org.springframework.web.bind.annotation.ControllerAdvice import org.springframework.web.bind.annotation.ExceptionHandler <%_ if (reactive) { _%> - <%_ if (!skipUserManagement) { _%> +<%_ if (!skipUserManagement) { _%> import org.springframework.security.core.AuthenticationException - <%_ } _%> +<%_ } _%> import org.springframework.web.bind.support.WebExchangeBindException import org.springframework.web.server.ServerWebExchange import org.springframework.http.MediaType @@ -67,6 +67,7 @@ import org.springframework.web.bind.annotation.ResponseStatus import org.springframework.security.authentication.BadCredentialsException import org.springframework.lang.Nullable import org.springframework.web.bind.MethodArgumentNotValidException + <%_ if (reactive) { _%> import reactor.core.publisher.Mono <%_ } _%> @@ -75,6 +76,11 @@ import reactor.core.publisher.Mono import jakarta.servlet.http.HttpServletRequest <%_ } _%> import java.net.URI +import java.util.List +import java.util.Arrays +import java.util.Collection +import java.util.Map +import java.util.Optional private const val FIELD_ERRORS_KEY = "fieldErrors" private const val MESSAGE_KEY = "message" @@ -91,17 +97,17 @@ private const val CASUAL_CHAIN_ENABLED = false <%_ } _%> class ExceptionTranslator(private val env: Environment) : ResponseEntityExceptionHandler()<% if (reactive) { %>, ExceptionTranslation <% } %> { <%_ -let returnType; -let requestClass; -let requestEntityRequestClass; +let returnType +let requestClass +let requestEntityRequestClass if (reactive) { - returnType = 'Mono>'; - requestClass = 'ServerWebExchange'; - requestEntityRequestClass = 'ServerWebExchange'; + returnType = 'Mono>' + requestClass = 'ServerWebExchange' + requestEntityRequestClass = 'ServerWebExchange' } else { - returnType = 'ResponseEntity'; - requestClass = 'NativeWebRequest'; - requestEntityRequestClass = 'WebRequest'; + returnType = 'ResponseEntity' + requestClass = 'NativeWebRequest' + requestEntityRequestClass = 'WebRequest' } _%> From c6cefa475c69428d812d372d9541399f0495ea23 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Thu, 8 Aug 2024 17:11:07 -0300 Subject: [PATCH 17/17] adjusts --- .../_package_/service/InvalidPasswordException.kt.ejs | 4 ++-- .../web/rest/errors/InvalidPasswordException.kt.ejs | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/service/InvalidPasswordException.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/service/InvalidPasswordException.kt.ejs index 03fdf8027..5a34f44ab 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/service/InvalidPasswordException.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/service/InvalidPasswordException.kt.ejs @@ -4,11 +4,11 @@ This file is part of the JHipster project, see https://www.jhipster.tech/ for more information. - Licensed under the Apache License, Version 2.0 (the " + 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 + https://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, diff --git a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/InvalidPasswordException.kt.ejs b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/InvalidPasswordException.kt.ejs index 244144ebb..22ab36a89 100644 --- a/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/InvalidPasswordException.kt.ejs +++ b/generators/spring-boot/templates/src/main/kotlin/_package_/web/rest/errors/InvalidPasswordException.kt.ejs @@ -4,11 +4,11 @@ This file is part of the JHipster project, see https://www.jhipster.tech/ for more information. - Licensed under the Apache License, Version 2.0 (the " + 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 + https://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, @@ -21,7 +21,6 @@ package <%= packageName %>.web.rest.errors import org.springframework.http.HttpStatus import org.springframework.web.ErrorResponseException import tech.jhipster.web.rest.errors.ProblemDetailWithCause.ProblemDetailWithCauseBuilder -import java.net.URI @SuppressWarnings("java:S110") // Inheritance tree of classes should not be too deep class InvalidPasswordException(type: URI?, defaultMessage: String?, val entityName: String?, val errorKey: String) : ErrorResponseException( @@ -34,4 +33,4 @@ class InvalidPasswordException(type: URI?, defaultMessage: String?, val entityNa .build(), null ) { -} \ No newline at end of file +}