133 lines
5.8 KiB
Plaintext
133 lines
5.8 KiB
Plaintext
|
package {{configPackage}}
|
||
|
|
||
|
{{#authMethods}}
|
||
|
{{#isBasicBasic}}
|
||
|
import feign.auth.BasicAuthRequestInterceptor
|
||
|
{{/isBasicBasic}}
|
||
|
{{#-first}}
|
||
|
import org.springframework.beans.factory.annotation.Value
|
||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
|
||
|
{{/-first}}
|
||
|
{{#isOAuth}}
|
||
|
import org.springframework.boot.context.properties.ConfigurationProperties
|
||
|
{{/isOAuth}}
|
||
|
{{/authMethods}}
|
||
|
import org.springframework.boot.context.properties.EnableConfigurationProperties
|
||
|
{{#authMethods}}
|
||
|
{{#-first}}
|
||
|
import org.springframework.context.annotation.Bean
|
||
|
{{/-first}}
|
||
|
{{/authMethods}}
|
||
|
import org.springframework.context.annotation.Configuration
|
||
|
{{#authMethods}}
|
||
|
{{#isOAuth}}
|
||
|
import org.springframework.cloud.openfeign.security.OAuth2FeignRequestInterceptor
|
||
|
import org.springframework.security.oauth2.client.DefaultOAuth2ClientContext
|
||
|
import org.springframework.security.oauth2.client.OAuth2ClientContext
|
||
|
{{#isApplication}}
|
||
|
import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails
|
||
|
{{/isApplication}}
|
||
|
{{#isCode}}
|
||
|
import org.springframework.security.oauth2.client.token.grant.code.AuthorizationCodeResourceDetails
|
||
|
{{/isCode}}
|
||
|
{{#isImplicit}}
|
||
|
import org.springframework.security.oauth2.client.token.grant.implicit.ImplicitResourceDetails
|
||
|
{{/isImplicit}}
|
||
|
{{#isPassword}}
|
||
|
import org.springframework.security.oauth2.client.token.grant.password.ResourceOwnerPasswordResourceDetails
|
||
|
{{/isPassword}}
|
||
|
{{/isOAuth}}
|
||
|
{{/authMethods}}
|
||
|
|
||
|
@Configuration
|
||
|
@EnableConfigurationProperties
|
||
|
class ClientConfiguration {
|
||
|
|
||
|
{{#authMethods}}
|
||
|
{{#isBasicBasic}}
|
||
|
@Value("\${{openbrace}}{{#lambda.lowercase}}{{{title}}}{{/lambda.lowercase}}.security.{{{name}}}.username:{{closebrace}}")
|
||
|
private lateinit var {{#lambda.camelcase}}{{{name}}}{{/lambda.camelcase}}Username: String
|
||
|
|
||
|
@Value("\${{openbrace}}{{#lambda.lowercase}}{{{title}}}{{/lambda.lowercase}}.security.{{{name}}}.password:{{closebrace}}")
|
||
|
private lateinit var {{#lambda.camelcase}}{{{name}}}{{/lambda.camelcase}}Password: String
|
||
|
|
||
|
@Bean
|
||
|
@ConditionalOnProperty("{{#lambda.lowercase}}{{{title}}}{{/lambda.lowercase}}.security.{{{name}}}.username")
|
||
|
fun {{{name}}}RequestInterceptor(): BasicAuthRequestInterceptor {
|
||
|
return BasicAuthRequestInterceptor(this.{{#lambda.camelcase}}{{{name}}}{{/lambda.camelcase}}Username, this.{{#lambda.camelcase}}{{{name}}}{{/lambda.camelcase}}Password)
|
||
|
}
|
||
|
|
||
|
{{/isBasicBasic}}
|
||
|
{{#isApiKey}}
|
||
|
@Value("\${{openbrace}}{{#lambda.lowercase}}{{{title}}}{{/lambda.lowercase}}.security.{{{name}}}.key:{{closebrace}}")
|
||
|
private lateinit var {{#lambda.camelcase}}{{{name}}}{{/lambda.camelcase}}Key: String
|
||
|
|
||
|
@Bean
|
||
|
@ConditionalOnProperty("{{#lambda.lowercase}}{{{title}}}{{/lambda.lowercase}}.security.{{{name}}}.key")
|
||
|
fun {{#lambda.camelcase}}{{{name}}}{{/lambda.camelcase}}RequestInterceptor(): ApiKeyRequestInterceptor {
|
||
|
return ApiKeyRequestInterceptor({{#isKeyInHeader}}"header"{{/isKeyInHeader}}{{^isKeyInHeader}}"query"{{/isKeyInHeader}}, "{{{keyParamName}}}", this.{{#lambda.camelcase}}{{{name}}}{{/lambda.camelcase}}Key)
|
||
|
}
|
||
|
|
||
|
{{/isApiKey}}
|
||
|
{{#isOAuth}}
|
||
|
@Bean
|
||
|
@ConditionalOnProperty("{{#lambda.lowercase}}{{{title}}}{{/lambda.lowercase}}.security.{{{name}}}.client-id")
|
||
|
fun {{#lambda.camelcase}}{{{name}}}{{/lambda.camelcase}}RequestInterceptor(oAuth2ClientContext: OAuth2ClientContext): OAuth2FeignRequestInterceptor {
|
||
|
return OAuth2FeignRequestInterceptor(oAuth2ClientContext, {{#lambda.camelcase}}{{{name}}}{{/lambda.camelcase}}ResourceDetails())
|
||
|
}
|
||
|
|
||
|
@Bean
|
||
|
@ConditionalOnProperty("{{#lambda.lowercase}}{{{title}}}{{/lambda.lowercase}}.security.{{{name}}}.client-id")
|
||
|
fun oAuth2ClientContext(): OAuth2ClientContext {
|
||
|
return DefaultOAuth2ClientContext()
|
||
|
}
|
||
|
|
||
|
{{#isCode}}
|
||
|
@Bean
|
||
|
@ConditionalOnProperty("{{#lambda.lowercase}}{{{title}}}{{/lambda.lowercase}}.security.{{{name}}}.client-id")
|
||
|
@ConfigurationProperties("{{#lambda.lowercase}}{{{title}}}{{/lambda.lowercase}}.security.{{{name}}}")
|
||
|
fun {{#lambda.camelcase}}{{{name}}}{{/lambda.camelcase}}ResourceDetails(): AuthorizationCodeResourceDetails {
|
||
|
val details = AuthorizationCodeResourceDetails()
|
||
|
details.accessTokenUri = "{{{tokenUrl}}}"
|
||
|
details.userAuthorizationUri = "{{{authorizationUrl}}}"
|
||
|
return details
|
||
|
}
|
||
|
|
||
|
{{/isCode}}
|
||
|
{{#isPassword}}
|
||
|
@Bean
|
||
|
@ConditionalOnProperty("{{#lambda.lowercase}}{{{title}}}{{/lambda.lowercase}}.security.{{{name}}}.client-id")
|
||
|
@ConfigurationProperties("{{#lambda.lowercase}}{{{title}}}{{/lambda.lowercase}}.security.{{{name}}}")
|
||
|
fun {{#lambda.camelcase}}{{{name}}}{{/lambda.camelcase}}ResourceDetails(): ResourceOwnerPasswordResourceDetails {
|
||
|
val details = ResourceOwnerPasswordResourceDetails()
|
||
|
details.accessTokenUri = "{{{tokenUrl}}}"
|
||
|
return details
|
||
|
}
|
||
|
|
||
|
{{/isPassword}}
|
||
|
{{#isApplication}}
|
||
|
@Bean
|
||
|
@ConditionalOnProperty("{{#lambda.lowercase}}{{{title}}}{{/lambda.lowercase}}.security.{{{name}}}.client-id")
|
||
|
@ConfigurationProperties("{{#lambda.lowercase}}{{{title}}}{{/lambda.lowercase}}.security.{{{name}}}")
|
||
|
fun {{#lambda.camelcase}}{{{name}}}{{/lambda.camelcase}}ResourceDetails(): ClientCredentialsResourceDetails {
|
||
|
val details = ClientCredentialsResourceDetails()
|
||
|
details.accessTokenUri = "{{{tokenUrl}}}"
|
||
|
return details
|
||
|
}
|
||
|
|
||
|
{{/isApplication}}
|
||
|
{{#isImplicit}}
|
||
|
@Bean
|
||
|
@ConditionalOnProperty("{{#lambda.lowercase}}{{{title}}}{{/lambda.lowercase}}.security.{{{name}}}.client-id")
|
||
|
@ConfigurationProperties("{{#lambda.lowercase}}{{{title}}}{{/lambda.lowercase}}.security.{{{name}}}")
|
||
|
fun {{#lambda.camelcase}}{{{name}}}{{/lambda.camelcase}}ResourceDetails(): ImplicitResourceDetails {
|
||
|
val details = ImplicitResourceDetails()
|
||
|
details.userAuthorizationUri= "{{{authorizationUrl}}}"
|
||
|
return details
|
||
|
}
|
||
|
|
||
|
{{/isImplicit}}
|
||
|
{{/isOAuth}}
|
||
|
{{/authMethods}}
|
||
|
}
|