diff --git a/generators/server/templates/src/main/kotlin/package/config/SecurityConfiguration.kt.ejs b/generators/server/templates/src/main/kotlin/package/config/SecurityConfiguration.kt.ejs index 16a1a8217..49aca8b18 100644 --- a/generators/server/templates/src/main/kotlin/package/config/SecurityConfiguration.kt.ejs +++ b/generators/server/templates/src/main/kotlin/package/config/SecurityConfiguration.kt.ejs @@ -40,16 +40,16 @@ import org.springframework.core.convert.converter.Converter <%_ } _%> <%_ if (applicationType !== 'microservice' || authenticationType !== 'oauth2') { _%> import org.springframework.http.HttpMethod - <%_ } else { _%> - <%_ if (applicationType !== 'microservice' || authenticationType !== 'oauth2') { _%> -import org.springframework.security.config.annotation.web.builders.WebSecurity; - <%_ } _%> <%_ } _%> import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity import org.springframework.security.config.annotation.web.builders.HttpSecurity - <%_ if (!(applicationType === 'microservice' && authenticationType === 'oauth2')) { _%> +<%_ if (applicationType !== 'microservice' || authenticationType !== 'oauth2') { _%> import org.springframework.security.config.annotation.web.builders.WebSecurity - <%_ } _%> + <%_ } else { _%> + <%_ if (devDatabaseType === 'h2Disk' || devDatabaseType === 'h2Memory') { _%> +import org.springframework.security.config.annotation.web.builders.WebSecurity + <%_ } _%> + <%_ } _%> import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter <%_ if (authenticationType === 'jwt' || (authenticationType === 'oauth2' && applicationType === 'microservice')) { _%> diff --git a/generators/server/templates/src/main/kotlin/package/config/apidocs/GatewaySwaggerResourcesProvider.kt.ejs b/generators/server/templates/src/main/kotlin/package/config/apidocs/GatewaySwaggerResourcesProvider.kt.ejs index 92ac26c3c..d723e733d 100644 --- a/generators/server/templates/src/main/kotlin/package/config/apidocs/GatewaySwaggerResourcesProvider.kt.ejs +++ b/generators/server/templates/src/main/kotlin/package/config/apidocs/GatewaySwaggerResourcesProvider.kt.ejs @@ -41,8 +41,7 @@ import tech.jhipster.config.JHipsterConstants @Profile(JHipsterConstants.SPRING_PROFILE_API_DOCS) @Configuration class GatewaySwaggerResourcesProvider( - private val routeLocator: RouteLocator, - @Qualifier("SwaggerResources") private val swaggerResourcesProvider: SwaggerResourcesProvider + private val routeLocator: RouteLocator ) : SwaggerResourcesProvider { @Value("\${eureka.instance.appname:<%= baseName.toLowerCase() %>}") diff --git a/generators/server/templates/src/main/kotlin/package/domain/User.kt.ejs b/generators/server/templates/src/main/kotlin/package/domain/User.kt.ejs index b0953edb9..8a965573a 100644 --- a/generators/server/templates/src/main/kotlin/package/domain/User.kt.ejs +++ b/generators/server/templates/src/main/kotlin/package/domain/User.kt.ejs @@ -432,18 +432,18 @@ class <%= asEntity('User') %> ( activated, langKey, <%_ if (databaseType === 'mongodb' || databaseType === 'neo4j' || databaseType === 'couchbase' || databaseType === 'sql') { _%> - imageUrl<% if (authenticationType !== 'oauth2') { %>,<% } %> + imageUrl, <%_ } _%> <%_ if (authenticationType !== 'oauth2') { _%> activationKey, resetKey, resetDate, <%_ } _%> - mutableSetOf()<% if (databaseType === 'sql' || databaseType === 'mongodb' || databaseType === 'couchbase') { %>, + mutableSetOf(),<% if (databaseType === 'sql' || databaseType === 'mongodb' || databaseType === 'couchbase') { %> createdBy, createdDate, lastModifiedBy, - lastModifiedDate<% } %> + lastModifiedDate,<% } %> ) <%_ } _%> diff --git a/generators/server/templates/src/main/kotlin/package/repository/UserRepository.kt.ejs b/generators/server/templates/src/main/kotlin/package/repository/UserRepository.kt.ejs index 38e34dfc4..6cd6f60fd 100644 --- a/generators/server/templates/src/main/kotlin/package/repository/UserRepository.kt.ejs +++ b/generators/server/templates/src/main/kotlin/package/repository/UserRepository.kt.ejs @@ -303,24 +303,25 @@ class UserRepositoryInternalImpl(val db: DatabaseClient, val r2dbcEntityTemplate <%_ } _%> override fun findAllWithAuthorities(pageable: Pageable): Flux { - val property = pageable.sort.map(Sort.Order::getProperty).findFirst().get() - val direction = String.valueOf(pageable.sort.map(Sort.Order::getDirection).findFirst().get()) + val property = pageable.sort.map(Sort.Order::getProperty).first() + val direction = pageable.sort.map(Sort.Order::getDirection).first() + val comparator = if (direction == Sort.DEFAULT_DIRECTION) { BeanComparator(property) } else { BeanComparator(property).reversed() } val page = pageable.pageNumber - val size = pageable.size + val size = pageable.pageSize return db - .sql("SELECT * FROM <%= jhiTablePrefix %>_user u LEFT JOIN <%= jhiTablePrefix %>_user_authority ua ON u.id=ua.user_id") - .map { row, metadata -> + .sql("SELECT * FROM jhi_user u LEFT JOIN jhi_user_authority ua ON u.id=ua.user_id") + .map { row, metadata -> return@map Tuples.of( - r2dbcConverter.read(User::class.java, row, metadata), + r2dbcConverter.read(User::class.java, row, metadata), Optional.ofNullable(row.get("authority_name", String::class.java)) ) }.all() - .groupBy { it.t1.login } - .flatMap { it.collectList().map { t -> updateUserWithAuthorities(t[0]?.t1, t)} } - .sort(Sort.Direction.fromString(direction) == Sort.DEFAULT_DIRECTION ? BeanComparator<*>(property) : BeanComparator<*>(property).reversed()) - .skip(page * size) - .take(size) + .groupBy { it.t1.login } + .flatMap { it.collectList().map { t -> updateUserWithAuthorities(t[0].t1, t) } } + .sort(comparator) + .skip((page * size).toLong()) + .take(size.toLong()) } <%_ if (authenticationType !== 'oauth2') { _%> @@ -337,7 +338,7 @@ class UserRepositoryInternalImpl(val db: DatabaseClient, val r2dbcEntityTemplate <%_ } _%> <%_ if (authenticationType === 'oauth2') { _%> override fun create(user: User): Mono { - return r2dbcEntityTemplate.into(User::class.java).using(user) + return r2dbcEntityTemplate.insert(User::class.java).using(user) .defaultIfEmpty(user) } @@ -354,18 +355,16 @@ class UserRepositoryInternalImpl(val db: DatabaseClient, val r2dbcEntityTemplate }.all() .collectList() .filter { it.isNotEmpty() } - .map { l -> updateUserWithAuthorities(l[0]?.t1, l) } + .map { l -> updateUserWithAuthorities(l[0].t1, l) } } - private fun updateUserWithAuthorities(user: User?, tuples: List>): User? { - user?.authorities = tuples.filter { it.t2.isPresent } - .map { - val authority = Authority() - authority.name = it.t2.get() - authority - }.toMutableSet() - user - } + private fun updateUserWithAuthorities(user: User, tuples: List>>): User { + user.authorities = tuples.filter { it.t2.isPresent } + .map { + val authority = Authority() + authority.name = it.t2.get() + authority + }.toMutableSet() return user } } diff --git a/generators/server/templates/src/main/kotlin/package/security/oauth2/AuthorizationHeaderUtil.kt.ejs b/generators/server/templates/src/main/kotlin/package/security/oauth2/AuthorizationHeaderUtil.kt.ejs index 2922fad74..398f8a28a 100644 --- a/generators/server/templates/src/main/kotlin/package/security/oauth2/AuthorizationHeaderUtil.kt.ejs +++ b/generators/server/templates/src/main/kotlin/package/security/oauth2/AuthorizationHeaderUtil.kt.ejs @@ -42,7 +42,6 @@ import java.time.Instant import java.util.* import java.util.regex.Pattern - @Component class AuthorizationHeaderUtil( private val clientService: OAuth2AuthorizedClientService, @@ -51,7 +50,6 @@ class AuthorizationHeaderUtil( private val log = LoggerFactory.getLogger(javaClass) - fun getAuthorizationHeader(): String? { when (val authentication = SecurityContextHolder.getContext().authentication) { is OAuth2AuthenticationToken -> { @@ -63,7 +61,7 @@ class AuthorizationHeaderUtil( val tokenType = accessToken.tokenType.value - if(isExpired(accessToken)) { + if (isExpired(accessToken)) { log.info("AccessToken expired, refreshing automatically") val accessTokenValue = refreshToken(client, authentication) @@ -90,7 +88,7 @@ class AuthorizationHeaderUtil( return null } - val refreshToken = atr.refreshToken?: client.refreshToken + val refreshToken = atr.refreshToken ?: client.refreshToken val updatedClient = OAuth2AuthorizedClient( client.clientRegistration, client.principalName, @@ -119,23 +117,22 @@ class AuthorizationHeaderUtil( log.error("Unable to refresh token $e") throw OAuth2AuthenticationException(e.error, e) } - } private fun toOAuth2AccessTokenResponse(oAuthIdpResponse: OAuthIdpTokenResponseDTO): OAuth2AccessTokenResponse { - val additionalParameters = hashMapOf( - "id_token" to oAuthIdpResponse.idToken, - "not-before-policy" to oAuthIdpResponse.notBefore, - "refresh_expires_in" to oAuthIdpResponse.refreshExpiresIn, - "session_state" to oAuthIdpResponse.sessionState - ) - - return OAuth2AccessTokenResponse.withToken(oAuthIdpResponse.accessToken) - .expiresIn(oAuthIdpResponse.expiresIn) - .refreshToken(oAuthIdpResponse.refreshToken) - .additionalParameters(additionalParameters) - .scopes(Pattern.compile("\\s").split(oAuthIdpResponse.scope).toHashSet()) - .build() + val additionalParameters = hashMapOf( + "id_token" to oAuthIdpResponse.idToken, + "not-before-policy" to oAuthIdpResponse.notBefore, + "refresh_expires_in" to oAuthIdpResponse.refreshExpiresIn, + "session_state" to oAuthIdpResponse.sessionState + ) + + return OAuth2AccessTokenResponse.withToken(oAuthIdpResponse.accessToken) + .expiresIn(oAuthIdpResponse.expiresIn!!) + .refreshToken(oAuthIdpResponse.refreshToken) + .additionalParameters(additionalParameters) + .scopes(Pattern.compile("\\s").split(oAuthIdpResponse.scope).toHashSet()) + .build() } private fun restTemplate(clientId: String?, clientSecret: String?): RestTemplate { diff --git a/generators/server/templates/src/main/kotlin/package/security/oauth2/OAuthIdpTokenResponseDTO.kt.ejs b/generators/server/templates/src/main/kotlin/package/security/oauth2/OAuthIdpTokenResponseDTO.kt.ejs index 2d7e14089..5fb0dda5e 100644 --- a/generators/server/templates/src/main/kotlin/package/security/oauth2/OAuthIdpTokenResponseDTO.kt.ejs +++ b/generators/server/templates/src/main/kotlin/package/security/oauth2/OAuthIdpTokenResponseDTO.kt.ejs @@ -5,37 +5,37 @@ import java.util.* open class OAuthIdpTokenResponseDTO( @JsonProperty("token_type") - var tokenType: String, + var tokenType: String? = null, - var scope: String, + var scope: String? = null, @JsonProperty("expires_in") - var expiresIn: Long, + var expiresIn: Long? = null, @JsonProperty("ext_expires_in") - var extExpiresIn: Long, + var extExpiresIn: Long? = null, @JsonProperty("expires_on") - var expiresOn: Long, + var expiresOn: Long? = null, @JsonProperty("not-before-policy") - var notBefore: Long, + var notBefore: Long? = null, - var resource: UUID, + var resource: UUID? = null, @JsonProperty("access_token") - var accessToken: String, + var accessToken: String? = null, @JsonProperty("refresh_token") - var refreshToken: String, + var refreshToken: String? = null, @JsonProperty("id_token") - var idToken: String, + var idToken: String? = null, @JsonProperty("session_state") - var sessionState: String, + var sessionState: String? = null, @JsonProperty("refresh_expires_in") - var refreshExpiresIn: String + var refreshExpiresIn: String? = null ) diff --git a/generators/server/templates/src/main/kotlin/package/service/UserService.kt.ejs b/generators/server/templates/src/main/kotlin/package/service/UserService.kt.ejs index 0abd2e640..8106545c1 100644 --- a/generators/server/templates/src/main/kotlin/package/service/UserService.kt.ejs +++ b/generators/server/templates/src/main/kotlin/package/service/UserService.kt.ejs @@ -615,13 +615,13 @@ class UserService<% if (databaseType !== 'no') { %>( <%_ if (reactive) { _%> <%_ if (databaseType === 'sql' && authenticationType === 'oauth2') { _%> @Transactional - fun saveUser(User user) = saveUser(user, false) + fun saveUser(user: User) = saveUser(user, false) <%_ } _%> <%_ if (databaseType === 'sql') { _%> @Transactional <%_ } _%> - <% if (databaseType !== 'sql') { %>private <% } %> fun saveUser(user: <%= asEntity('User') %><% if (databaseType === 'sql' && authenticationType === 'oauth2') { %>, forceCreate: boolean<% } %>): Mono<<%= asEntity('User') %>> { + <% if (databaseType !== 'sql') { %>private <% } %> fun saveUser(user: <%= asEntity('User') %><% if (databaseType === 'sql' && authenticationType === 'oauth2') { %>, forceCreate: Boolean<% } %>): Mono<<%= asEntity('User') %>> { <%_ if (databaseType === 'cassandra') { _%> return userRepository.save(user) <%_ } else { _%> diff --git a/generators/server/templates/src/test/kotlin/package/security/oauth2/AuthorizationHeaderUtilTest.kt.ejs b/generators/server/templates/src/test/kotlin/package/security/oauth2/AuthorizationHeaderUtilTest.kt.ejs index d707add59..1a4e81fd0 100644 --- a/generators/server/templates/src/test/kotlin/package/security/oauth2/AuthorizationHeaderUtilTest.kt.ejs +++ b/generators/server/templates/src/test/kotlin/package/security/oauth2/AuthorizationHeaderUtilTest.kt.ejs @@ -71,15 +71,15 @@ class AuthorizationHeaderUtilTest { MockitoAnnotations.initMocks(this) SecurityContextHolder.setContext(securityContext) - doReturn(restTemplateBuilder).when(restTemplateBuilder).additionalMessageConverters(any(HttpMessageConverter::class)) - doReturn(restTemplateBuilder).when(restTemplateBuilder).errorHandler(any(ResponseErrorHandler::class)) - doReturn(restTemplateBuilder).when(restTemplateBuilder).basicAuthentication(anyString(), anyString()) + 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 fun getAuthorizationHeader_Authentication() { val authenticationToken = UsernamePasswordAuthenticationToken("principal", "credentials") - doReturn(authenticationToken).when(securityContext).getAuthentication() + doReturn(authenticationToken).`when`(securityContext).authentication val header = authorizationHeaderUtil.getAuthorizationHeader() @@ -89,12 +89,13 @@ class AuthorizationHeaderUtilTest { @Test fun getAuthorizationHeader_JwtAuthentication() { val jwtToken = JwtAuthenticationToken(Jwt("tokenVal", Instant.now(), - Instant.now().plus(Duration.ofMinutes(3)),hashMapOf("alg" to "HS256"), hashMapOf("sub" to SUB_VALUE))) - doReturn(jwtToken).when(securityContext).getAuthentication() + 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") + Assertions.assertThat(header).isNotNull.isNotEmpty.isEqualTo("Bearer tokenVal") } @Test @@ -102,13 +103,12 @@ class AuthorizationHeaderUtilTest { val oauth2Token = getTestOAuth2AuthenticationToken("INVALID") val authorizedClient = getTestOAuth2AuthorizedClient() - doReturn(oauth2Token).when(securityContext).getAuthentication() - doReturn(authorizedClient).when(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) + doReturn(oauth2Token).`when`(securityContext).authentication + doReturn(authorizedClient).`when`(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) - Assertions.assertThatThrownBy(() -> { - val header = authorizationHeaderUtil.getAuthorizationHeader() - }).isInstanceOf(OAuth2AuthorizationException::class) - .hasMessageContaining("[access_denied] The token is expired") + Assertions.assertThatThrownBy { + authorizationHeaderUtil.getAuthorizationHeader() + }.isInstanceOf(OAuth2AuthorizationException::class.java).hasMessageContaining("[access_denied] The token is expired") } @Test @@ -116,11 +116,11 @@ class AuthorizationHeaderUtilTest { val oauth2Token = getTestOAuth2AuthenticationToken(VALID_REGISTRATION_ID) val authorizedClient = getTestOAuth2AuthorizedClient() - doReturn(oauth2Token).when(securityContext).getAuthentication() - doReturn(authorizedClient).when(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) + 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") + Assertions.assertThat(header).isNotNull.isNotEmpty.isEqualTo("Bearer tokenVal") } @Test @@ -128,16 +128,16 @@ class AuthorizationHeaderUtilTest { val oauth2Token = getTestOAuth2AuthenticationToken(VALID_REGISTRATION_ID) val authorizedClient = getTestOAuth2AuthorizedClient(true) - doReturn(oauth2Token).when(securityContext).getAuthentication() - doReturn(authorizedClient).when(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) + doReturn(oauth2Token).`when`(securityContext).authentication + doReturn(authorizedClient).`when`(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) - val restTemplate = mock(RestTemplate::class) + val restTemplate = mock(RestTemplate::class.java) val refreshResponse = ResponseEntity.of(getTestOAuthIdpTokenResponseDTO(true)) - doReturn(refreshResponse).when(restTemplate).exchange(any(RequestEntity::class), eq(OAuthIdpTokenResponseDTO::class)) - doReturn(restTemplate).when(restTemplateBuilder).build() + 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") + Assertions.assertThat(header).isNotNull.isNotEmpty.isEqualTo("Bearer tokenVal") } @Test @@ -145,16 +145,16 @@ class AuthorizationHeaderUtilTest { val oauth2Token = getTestOAuth2AuthenticationToken(VALID_REGISTRATION_ID) val authorizedClient = getTestOAuth2AuthorizedClient(true) - doReturn(oauth2Token).when(securityContext).getAuthentication() - doReturn(authorizedClient).when(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) + doReturn(oauth2Token).`when`(securityContext).authentication + doReturn(authorizedClient).`when`(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) - val restTemplate = mock(RestTemplate::class) + val restTemplate = mock(RestTemplate::class.java) val refreshResponse = ResponseEntity.of(getTestOAuthIdpTokenResponseDTO(false)) - doReturn(refreshResponse).when(restTemplate).exchange(any(RequestEntity::class), eq(OAuthIdpTokenResponseDTO::class)) - doReturn(restTemplate).when(restTemplateBuilder).build() + 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") + Assertions.assertThat(header).isNotNull.isNotEmpty.isEqualTo("Bearer tokenVal") } @Test @@ -162,22 +162,20 @@ class AuthorizationHeaderUtilTest { val oauth2Token = getTestOAuth2AuthenticationToken(VALID_REGISTRATION_ID) val authorizedClient = getTestOAuth2AuthorizedClient(true) - doReturn(oauth2Token).when(securityContext).getAuthentication() - doReturn(authorizedClient).when(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) + doReturn(oauth2Token).`when`(securityContext).authentication + doReturn(authorizedClient).`when`(clientService).loadAuthorizedClient(eq(VALID_REGISTRATION_ID), eq(SUB_VALUE)) - val restTemplate = mock(RestTemplate::class) - doThrow(OAuth2AuthorizationException(OAuth2Error("E"), "error")).when(restTemplate).exchange(any(RequestEntity::class), eq(OAuthIdpTokenResponseDTO::class)) - doReturn(restTemplate).when(restTemplateBuilder).build() + 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(() -> { - val header = authorizationHeaderUtil.getAuthorizationHeader() - }).isInstanceOf(OAuth2AuthenticationException::class) + Assertions.assertThatThrownBy { authorizationHeaderUtil.getAuthorizationHeader() }.isInstanceOf(OAuth2AuthenticationException::class.java) .hasMessageContaining("error") } private fun getTestOAuth2AuthorizedClient() = getTestOAuth2AuthorizedClient(false) - private fun getTestOAuth2AuthorizedClient(accessTokenExpired: boolean):OAuth2AuthorizedClient { + private fun getTestOAuth2AuthorizedClient(accessTokenExpired: Boolean):OAuth2AuthorizedClient { val end = if (accessTokenExpired) Instant.now() else Instant.now().plus(Duration.ofMinutes(3)) return OAuth2AuthorizedClient( ClientRegistration.withRegistrationId(VALID_REGISTRATION_ID) @@ -193,14 +191,14 @@ class AuthorizationHeaderUtilTest { OAuth2RefreshToken("refreshVal", Instant.now())) } - private fun getTestOAuth2AuthenticationToken(registrationId" String): OAuth2AuthenticationToken{ + 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 { + private fun getTestOAuthIdpTokenResponseDTO(hasRefreshToken: Boolean): Optional { val dto = OAuthIdpTokenResponseDTO() dto.accessToken = "tokenVal" dto.idToken = "tokenVal" diff --git a/generators/server/templates/src/test/kotlin/package/web/rest/UserResourceIT.kt.ejs b/generators/server/templates/src/test/kotlin/package/web/rest/UserResourceIT.kt.ejs index 6f191a8e7..c9c68c4a7 100644 --- a/generators/server/templates/src/test/kotlin/package/web/rest/UserResourceIT.kt.ejs +++ b/generators/server/templates/src/test/kotlin/package/web/rest/UserResourceIT.kt.ejs @@ -416,7 +416,7 @@ class UserResourceIT<% if (databaseType === 'cassandra') { %>: AbstractCassandra <%_ if (databaseType === 'sql' && reactive) { _%> authorityRepository .findById(USER) - .flatMap { userRepository.saveUserAuthority(user.id, authority.name) } + .flatMap { authority -> authority.name?.let { user.id?.let { it1 -> userRepository.saveUserAuthority(it1, it) } } } .block() <%_ } _%> // Get all the users @@ -471,7 +471,7 @@ class UserResourceIT<% if (databaseType === 'cassandra') { %>: AbstractCassandra <%_ if (databaseType === 'sql' && reactive) { _%> authorityRepository .findById(USER) - .flatMap { userRepository.saveUserAuthority(user.id, authority.name) } + .flatMap { authority -> authority.name?.let { user.id?.let { it1 -> userRepository.saveUserAuthority(it1, it) } } } .block() <%_ } _%>