Improve OAuth2 Client section of docs

* Add an OpenID Connect login client example
* Update redirect-uri examples to match Security docs and not require
  any customization
* Update client-authentication-method for Spring Security 6 usage
* Update provider configuration example to align with Spring
  Authorization Server
* Format Java DSL according to Spring Security docs
* Use Kotlin DSL
* Update redirection endpoint base uri example to use ant pattern

See gh-35679
This commit is contained in:
Steve Riesenberg
2023-05-18 15:14:45 -05:00
committed by Moritz Halbritter
parent 85720a5d90
commit ba9f92fa86
3 changed files with 46 additions and 14 deletions

View File

@@ -19,15 +19,26 @@ package org.springframework.boot.docs.web.security.oauth2.client;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;
@Configuration(proxyBeanMethods = false)
@EnableWebSecurity
public class MyOAuthClientConfiguration {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests((requests) -> requests.anyRequest().authenticated());
http.oauth2Login((login) -> login.redirectionEndpoint().baseUri("custom-callback"));
// @formatter:off
http
.authorizeHttpRequests((requests) -> requests
.anyRequest().authenticated()
)
.oauth2Login((login) -> login
.redirectionEndpoint((endpoint) -> endpoint
.baseUri("/login/oauth2/callback/*")
)
);
// @formatter:on
return http.build();
}

View File

@@ -19,15 +19,26 @@ package org.springframework.boot.docs.web.security.oauth2.client
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.security.config.annotation.web.builders.HttpSecurity
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity
import org.springframework.security.config.annotation.web.invoke
import org.springframework.security.web.SecurityFilterChain
@Configuration(proxyBeanMethods = false)
class MyOAuthClientConfiguration {
@EnableWebSecurity
open class MyOAuthClientConfiguration {
@Bean
fun securityFilterChain(http: HttpSecurity): SecurityFilterChain {
http.authorizeHttpRequests().anyRequest().authenticated()
http.oauth2Login().redirectionEndpoint().baseUri("custom-callback")
open fun securityFilterChain(http: HttpSecurity): SecurityFilterChain {
http {
authorizeHttpRequests {
authorize(anyRequest, authenticated)
}
oauth2Login {
redirectionEndpoint {
baseUri = "/login/oauth2/callback/*"
}
}
}
return http.build()
}