feat: use builder

This commit is contained in:
Jongho Jeon 2022-04-20 17:17:42 +09:00
parent ab860b4732
commit fb4634f394

View File

@ -26,7 +26,6 @@ import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration import org.springframework.context.annotation.Configuration
import org.springframework.context.annotation.Role import org.springframework.context.annotation.Role
import org.springframework.core.annotation.Order import org.springframework.core.annotation.Order
import org.springframework.security.config.Customizer
import org.springframework.security.config.annotation.web.builders.HttpSecurity import org.springframework.security.config.annotation.web.builders.HttpSecurity
import org.springframework.security.config.annotation.web.configuration.OAuth2AuthorizationServerConfiguration import org.springframework.security.config.annotation.web.configuration.OAuth2AuthorizationServerConfiguration
import org.springframework.security.core.userdetails.User import org.springframework.security.core.userdetails.User
@ -61,20 +60,20 @@ class OAuth2AuthorizationServerSecurityConfiguration {
@Order(1) @Order(1)
fun authorizationServerSecurityFilterChain(http: HttpSecurity): SecurityFilterChain { fun authorizationServerSecurityFilterChain(http: HttpSecurity): SecurityFilterChain {
OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http) OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http)
return http.formLogin(Customizer.withDefaults()).build() return http.formLogin {}.build()
} }
@Bean @Bean
@Order(2) @Order(2)
fun standardSecurityFilterChain(http: HttpSecurity): SecurityFilterChain { fun standardSecurityFilterChain(http: HttpSecurity): SecurityFilterChain {
// @formatter:off // @formatter:off
http return http
.authorizeHttpRequests { authorize -> .authorizeHttpRequests { authorize ->
authorize.anyRequest().authenticated() authorize.anyRequest().authenticated()
} }
.formLogin(Customizer.withDefaults()) .formLogin {}
.build()
// @formatter:on // @formatter:on
return http.build()
} }
@Bean @Bean
@ -84,21 +83,31 @@ class OAuth2AuthorizationServerSecurityConfiguration {
.clientId("login-client") .clientId("login-client")
.clientSecret("{noop}openid-connect") .clientSecret("{noop}openid-connect")
.clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC) .clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC)
.authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE) .authorizationGrantTypes {
.authorizationGrantType(AuthorizationGrantType.REFRESH_TOKEN) it.add(AuthorizationGrantType.AUTHORIZATION_CODE)
.redirectUri("http://127.0.0.1:8080/login/oauth2/code/login-client") it.add(AuthorizationGrantType.REFRESH_TOKEN)
.redirectUri("http://127.0.0.1:8080/authorized") }
.scope(OidcScopes.OPENID) .redirectUris {
.scope(OidcScopes.PROFILE) it.add("http://127.0.0.1:8080/login/oauth2/code/login-client")
it.add("http://127.0.0.1:8080/authorized")
}
.scopes {
it.add(OidcScopes.OPENID)
it.add(OidcScopes.PROFILE)
}
.clientSettings(ClientSettings.builder().requireAuthorizationConsent(true).build()) .clientSettings(ClientSettings.builder().requireAuthorizationConsent(true).build())
.build() .build()
val registeredClient = RegisteredClient.withId(UUID.randomUUID().toString()) val registeredClient = RegisteredClient.withId(UUID.randomUUID().toString())
.clientId("messaging-client") .clientId("messaging-client")
.clientSecret("{noop}secret") .clientSecret("{noop}secret")
.clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC) .clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC)
.authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS) .authorizationGrantTypes {
.scope("message:read") it.add(AuthorizationGrantType.CLIENT_CREDENTIALS)
.scope("message:write") }
.scopes {
it.add("message:read")
it.add("message:write")
}
.build() .build()
// @formatter:on // @formatter:on
return InMemoryRegisteredClientRepository(loginClient, registeredClient) return InMemoryRegisteredClientRepository(loginClient, registeredClient)