Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>2023.0.0</version>
<version>2023.0.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ plugins {
id("org.jetbrains.kotlin.jvm") version kotlinVersion
id("org.jetbrains.kotlin.plugin.jpa") version kotlinVersion
id("org.jetbrains.kotlin.plugin.spring") version kotlinVersion
id("org.springframework.boot") version "3.0.2"
id("io.spring.dependency-management") version "1.0.14.RELEASE"
id("org.springframework.boot") version "3.3.13"
Comment thread
cubic-dev-ai[bot] marked this conversation as resolved.
id("io.spring.dependency-management") version "1.1.7"
}

dependencies {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.3</version>
<version>3.3.13</version>
</parent>
<repositories>
<repository>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ plugins {
id("org.jetbrains.kotlin.jvm") version kotlinVersion
id("org.jetbrains.kotlin.plugin.jpa") version kotlinVersion
id("org.jetbrains.kotlin.plugin.spring") version kotlinVersion
id("org.springframework.boot") version "3.0.2"
id("io.spring.dependency-management") version "1.0.14.RELEASE"
id("org.springframework.boot") version "3.3.13"
Comment thread
cubic-dev-ai[bot] marked this conversation as resolved.
id("io.spring.dependency-management") version "1.1.7"
}

tasks.getByName("bootJar") {
Expand All @@ -32,7 +32,7 @@ tasks.getByName("jar") {

dependencyManagement {
imports {
mavenBom("org.springframework.cloud:spring-cloud-dependencies:2021.0.5")
mavenBom("org.springframework.cloud:spring-cloud-dependencies:2023.0.6")
}
}

Expand All @@ -58,7 +58,7 @@ dependencies {
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")

implementation("org.springframework.cloud:spring-cloud-starter-openfeign"){{#hasAuthMethods}}
implementation("org.springframework.cloud:spring-cloud-starter-oauth2:2.2.5.RELEASE"){{/hasAuthMethods}}
implementation("org.springframework.boot:spring-boot-starter-oauth2-client"){{/hasAuthMethods}}

{{#useBeanValidation}}
implementation("jakarta.validation:jakarta.validation-api"){{/useBeanValidation}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,14 @@ import feign.auth.BasicAuthRequestInterceptor
import org.springframework.beans.factory.annotation.Value
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
{{/-first}}
{{^useSpringBoot4}}
{{#isOAuth}}
import org.springframework.boot.context.properties.ConfigurationProperties
{{/isOAuth}}
{{/useSpringBoot4}}
{{^useSpringBoot4}}{{^useSpringBoot3}}{{#isOAuth}}import org.springframework.boot.context.properties.ConfigurationProperties{{/isOAuth}}{{/useSpringBoot3}}{{/useSpringBoot4}}
{{/authMethods}}
{{^useSpringBoot4}}
import org.springframework.boot.context.properties.EnableConfigurationProperties
{{/useSpringBoot4}}
{{^useSpringBoot4}}{{^useSpringBoot3}}import org.springframework.boot.context.properties.EnableConfigurationProperties{{/useSpringBoot3}}{{/useSpringBoot4}}
{{#hasAuthMethods}}
import org.springframework.context.annotation.Bean
{{/hasAuthMethods}}
import org.springframework.context.annotation.Configuration
{{^useSpringBoot4}}
{{^useSpringBoot4}}{{^useSpringBoot3}}
{{#authMethods}}
{{#isOAuth}}
import org.springframework.cloud.openfeign.security.OAuth2FeignRequestInterceptor
Expand All @@ -41,7 +35,24 @@ import org.springframework.security.oauth2.client.token.grant.password.ResourceO
{{/isPassword}}
{{/isOAuth}}
{{/authMethods}}
{{/useSpringBoot4}}
{{/useSpringBoot3}}{{/useSpringBoot4}}
{{#useSpringBoot3}}
{{#hasOAuthMethods}}
import org.springframework.security.authentication.AnonymousAuthenticationToken
import org.springframework.security.oauth2.client.AuthorizedClientServiceOAuth2AuthorizedClientManager
import org.springframework.security.oauth2.client.OAuth2AuthorizeRequest
import org.springframework.security.oauth2.client.OAuth2AuthorizedClientManager
import org.springframework.security.oauth2.client.OAuth2AuthorizedClientService
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository
import org.springframework.security.oauth2.core.OAuth2AuthenticationException
import org.springframework.security.oauth2.core.OAuth2AccessToken
import org.springframework.security.core.authority.AuthorityUtils
import org.springframework.http.HttpHeaders

import feign.RequestInterceptor
import feign.RequestTemplate
{{/hasOAuthMethods}}
{{/useSpringBoot3}}
{{#useSpringBoot4}}
{{#hasOAuthMethods}}
import org.springframework.security.authentication.AnonymousAuthenticationToken
Expand All @@ -60,10 +71,8 @@ import feign.RequestTemplate
{{/hasOAuthMethods}}
{{/useSpringBoot4}}

@Configuration
{{^useSpringBoot4}}
@EnableConfigurationProperties
{{/useSpringBoot4}}
@Configuration{{^useSpringBoot4}}{{^useSpringBoot3}}
@EnableConfigurationProperties{{/useSpringBoot3}}{{/useSpringBoot4}}
class ClientConfiguration {

{{#authMethods}}
Expand Down Expand Up @@ -93,7 +102,7 @@ class ClientConfiguration {

{{/isApiKey}}
{{#isOAuth}}
{{^useSpringBoot4}}
{{^useSpringBoot4}}{{^useSpringBoot3}}
@Bean
@ConditionalOnProperty("{{#lambda.lowercase}}{{{title}}}{{/lambda.lowercase}}.security.{{{name}}}.client-id")
fun {{#lambda.camelcase}}{{{name}}}{{/lambda.camelcase}}RequestInterceptor(oAuth2ClientContext: OAuth2ClientContext): OAuth2FeignRequestInterceptor {
Expand Down Expand Up @@ -151,7 +160,29 @@ class ClientConfiguration {
}

{{/isImplicit}}
{{/useSpringBoot4}}
{{/useSpringBoot3}}{{/useSpringBoot4}}
{{#useSpringBoot3}}
@Bean
@ConditionalOnProperty(prefix = "spring.security.oauth2.client.registration.{{{name}}}{{#lambda.pascalcase}}{{{flow}}}{{/lambda.pascalcase}}", name = ["enabled"], havingValue = "true")
fun {{{flow}}}OAuth2RequestInterceptor({{{flow}}}AuthorizedClientManager: OAuth2AuthorizedClientManager): OAuth2RequestInterceptor {
return OAuth2RequestInterceptor(
OAuth2AuthorizeRequest.withClientRegistrationId("{{{name}}}{{#lambda.pascalcase}}{{{flow}}}{{/lambda.pascalcase}}")
.principal(AnonymousAuthenticationToken(CLIENT_PRINCIPAL_{{#lambda.uppercase}}{{{flow}}}{{/lambda.uppercase}}, CLIENT_PRINCIPAL_{{#lambda.uppercase}}{{{flow}}}{{/lambda.uppercase}}, AuthorityUtils.createAuthorityList("ROLE_ANONYMOUS")))
.build(),
{{{flow}}}AuthorizedClientManager
)
}

@Bean
@ConditionalOnProperty(prefix = "spring.security.oauth2.client.registration.{{{name}}}{{#lambda.pascalcase}}{{{flow}}}{{/lambda.pascalcase}}", name = ["enabled"], havingValue = "true")
fun {{{flow}}}AuthorizedClientManager(
clientRegistrationRepository: ClientRegistrationRepository,
authorizedClientService: OAuth2AuthorizedClientService
): OAuth2AuthorizedClientManager {
return AuthorizedClientServiceOAuth2AuthorizedClientManager(clientRegistrationRepository, authorizedClientService)
}

{{/useSpringBoot3}}
{{#useSpringBoot4}}
@Bean
@ConditionalOnProperty(prefix = "spring.security.oauth2.client.registration.{{{name}}}{{#lambda.pascalcase}}{{{flow}}}{{/lambda.pascalcase}}", name = ["enabled"], havingValue = "true")
Expand All @@ -176,6 +207,38 @@ class ClientConfiguration {
{{/useSpringBoot4}}
{{/isOAuth}}
{{/authMethods}}
{{#useSpringBoot3}}
{{#hasOAuthMethods}}
class OAuth2RequestInterceptor(
private val oAuth2AuthorizeRequest: OAuth2AuthorizeRequest,
private val oAuth2AuthorizedClientManager: OAuth2AuthorizedClientManager
) : RequestInterceptor {

override fun apply(template: RequestTemplate) {
template.header(HttpHeaders.AUTHORIZATION, getBearerToken())
}

fun getAccessToken(): OAuth2AccessToken {
val authorizedClient = oAuth2AuthorizedClientManager.authorize(oAuth2AuthorizeRequest)
?: throw OAuth2AuthenticationException("Client failed to authenticate")
return authorizedClient.accessToken
}

fun getBearerToken(): String {
val accessToken = getAccessToken()
return String.format(java.util.Locale.ROOT, "%s %s", accessToken.tokenType?.value, accessToken.tokenValue)
}
}

companion object {
{{#authMethods}}
{{#isOAuth}}
private const val CLIENT_PRINCIPAL_{{#lambda.uppercase}}{{{flow}}}{{/lambda.uppercase}} = "oauth2FeignClient"
{{/isOAuth}}
{{/authMethods}}
}
{{/hasOAuthMethods}}
{{/useSpringBoot3}}
{{#useSpringBoot4}}
{{#hasOAuthMethods}}
class OAuth2RequestInterceptor(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.3</version>
<version>3.3.13</version>
Comment thread
cubic-dev-ai[bot] marked this conversation as resolved.
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>2021.0.5</version>
<version>2023.0.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down Expand Up @@ -192,11 +192,8 @@
</dependency>
{{#hasAuthMethods}}
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
{{^parentOverridden}}
<version>2.2.5.RELEASE</version>
{{/parentOverridden}}
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>
{{/hasAuthMethods}}
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ plugins {
id("org.jetbrains.kotlin.jvm") version kotlinVersion
id("org.jetbrains.kotlin.plugin.jpa") version kotlinVersion
id("org.jetbrains.kotlin.plugin.spring") version kotlinVersion
id("org.springframework.boot") version "3.0.2"
id("io.spring.dependency-management") version "1.0.14.RELEASE"
id("org.springframework.boot") version "3.3.13"
Comment thread
cubic-dev-ai[bot] marked this conversation as resolved.
id("io.spring.dependency-management") version "1.1.7"
}

tasks.getByName("bootJar") {
Expand All @@ -32,7 +32,7 @@ tasks.getByName("jar") {

dependencyManagement {
imports {
mavenBom("org.springframework.cloud:spring-cloud-dependencies:2021.0.5")
mavenBom("org.springframework.cloud:spring-cloud-dependencies:2023.0.6")
}
}

Expand All @@ -58,7 +58,7 @@ dependencies {
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")

{{#hasAuthMethods}}
implementation("org.springframework.cloud:spring-cloud-starter-oauth2:2.2.5.RELEASE"){{/hasAuthMethods}}
implementation("org.springframework.boot:spring-boot-starter-oauth2-client"){{/hasAuthMethods}}

{{#useBeanValidation}}
implementation("jakarta.validation:jakarta.validation-api"){{/useBeanValidation}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.3</version>
<version>3.3.13</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>2021.0.5</version>
<version>2023.0.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down Expand Up @@ -188,11 +188,8 @@
</dependency>
{{#hasAuthMethods}}
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
{{^parentOverridden}}
<version>2.2.5.RELEASE</version>
{{/parentOverridden}}
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>
{{/hasAuthMethods}}
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5042,6 +5042,7 @@ public void shouldAddParameterWithInHeaderWhenImplicitHeadersIsTrue() throws IOE
String methodPattern = "fun test\\s*\\(.*?\\)";
Pattern pattern = Pattern.compile(methodPattern);


Matcher matcher = pattern.matcher(content);
Assert.assertTrue(matcher.find(), "Method 'test' should be found in generated file");

Expand Down
2 changes: 1 addition & 1 deletion samples/client/petstore/spring-cloud-auth/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>2023.0.0</version>
<version>2023.0.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down
2 changes: 1 addition & 1 deletion samples/client/petstore/spring-cloud-date-time/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>2023.0.0</version>
<version>2023.0.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down
2 changes: 1 addition & 1 deletion samples/client/petstore/spring-cloud-deprecated/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>2023.0.0</version>
<version>2023.0.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>2023.0.0</version>
<version>2023.0.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down
2 changes: 1 addition & 1 deletion samples/client/petstore/spring-cloud-tags/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>2023.0.0</version>
<version>2023.0.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down
2 changes: 1 addition & 1 deletion samples/client/petstore/spring-cloud/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>2023.0.0</version>
<version>2023.0.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>2023.0.0</version>
<version>2023.0.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down
2 changes: 1 addition & 1 deletion samples/openapi3/client/petstore/spring-cloud-3/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>2023.0.0</version>
<version>2023.0.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>2023.0.0</version>
<version>2023.0.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>2023.0.0</version>
<version>2023.0.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>2023.0.0</version>
<version>2023.0.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down
Loading
Loading