mirror of https://github.com/usbharu/Hideout.git
				
				
				
			
		
			
				
	
	
		
			133 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			133 lines
		
	
	
		
			6.4 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}}
 | |
| }
 |