34
34
35
35
import org .springframework .beans .factory .annotation .Autowired ;
36
36
import org .springframework .context .annotation .Bean ;
37
- import org .springframework .context .annotation .Import ;
37
+ import org .springframework .context .annotation .Configuration ;
38
38
import org .springframework .http .HttpHeaders ;
39
39
import org .springframework .http .HttpStatus ;
40
40
import org .springframework .http .MediaType ;
47
47
import org .springframework .mock .http .client .MockClientHttpResponse ;
48
48
import org .springframework .mock .web .MockHttpServletResponse ;
49
49
import org .springframework .security .authentication .UsernamePasswordAuthenticationToken ;
50
+ import org .springframework .security .config .Customizer ;
51
+ import org .springframework .security .config .annotation .web .builders .HttpSecurity ;
50
52
import org .springframework .security .config .annotation .web .configuration .EnableWebSecurity ;
51
- import org .springframework .security .config .annotation .web .configuration .OAuth2AuthorizationServerConfiguration ;
52
53
import org .springframework .security .config .test .SpringTestContext ;
53
54
import org .springframework .security .config .test .SpringTestContextExtension ;
54
55
import org .springframework .security .crypto .password .NoOpPasswordEncoder ;
82
83
import org .springframework .security .oauth2 .server .authorization .client .RegisteredClientRepository ;
83
84
import org .springframework .security .oauth2 .server .authorization .client .TestRegisteredClients ;
84
85
import org .springframework .security .oauth2 .server .authorization .settings .AuthorizationServerSettings ;
86
+ import org .springframework .security .web .SecurityFilterChain ;
85
87
import org .springframework .test .web .servlet .MockMvc ;
86
88
import org .springframework .test .web .servlet .MvcResult ;
87
89
import org .springframework .util .LinkedMultiValueMap ;
@@ -645,9 +647,25 @@ private static Function<OAuth2Authorization.Token<? extends OAuth2Token>, Boolea
645
647
}
646
648
647
649
@ EnableWebSecurity
648
- @ Import ( OAuth2AuthorizationServerConfiguration . class )
650
+ @ Configuration ( proxyBeanMethods = false )
649
651
static class AuthorizationServerConfiguration {
650
652
653
+ // @formatter:off
654
+ @ Bean
655
+ SecurityFilterChain authorizationServerSecurityFilterChain (HttpSecurity http ) throws Exception {
656
+ http
657
+ .oauth2AuthorizationServer ((authorizationServer ) ->
658
+ authorizationServer
659
+ .deviceAuthorizationEndpoint (Customizer .withDefaults ())
660
+ .deviceVerificationEndpoint (Customizer .withDefaults ())
661
+ )
662
+ .authorizeHttpRequests ((authorize ) ->
663
+ authorize .anyRequest ().authenticated ()
664
+ );
665
+ return http .build ();
666
+ }
667
+ // @formatter:on
668
+
651
669
@ Bean
652
670
RegisteredClientRepository registeredClientRepository (JdbcOperations jdbcOperations ) {
653
671
return new JdbcRegisteredClientRepository (jdbcOperations );
@@ -675,6 +693,11 @@ JWKSource<SecurityContext> jwkSource() {
675
693
return jwkSource ;
676
694
}
677
695
696
+ @ Bean
697
+ AuthorizationServerSettings authorizationServerSettings () {
698
+ return AuthorizationServerSettings .builder ().build ();
699
+ }
700
+
678
701
@ Bean
679
702
PasswordEncoder passwordEncoder () {
680
703
return NoOpPasswordEncoder .getInstance ();
@@ -683,9 +706,25 @@ PasswordEncoder passwordEncoder() {
683
706
}
684
707
685
708
@ EnableWebSecurity
686
- @ Import ( OAuth2AuthorizationServerConfiguration . class )
709
+ @ Configuration ( proxyBeanMethods = false )
687
710
static class AuthorizationServerConfigurationWithMultipleIssuersAllowed extends AuthorizationServerConfiguration {
688
711
712
+ // @formatter:off
713
+ @ Bean
714
+ SecurityFilterChain authorizationServerSecurityFilterChain (HttpSecurity http ) throws Exception {
715
+ http
716
+ .oauth2AuthorizationServer ((authorizationServer ) ->
717
+ authorizationServer
718
+ .deviceAuthorizationEndpoint (Customizer .withDefaults ())
719
+ .deviceVerificationEndpoint (Customizer .withDefaults ())
720
+ )
721
+ .authorizeHttpRequests ((authorize ) ->
722
+ authorize .anyRequest ().authenticated ()
723
+ );
724
+ return http .build ();
725
+ }
726
+ // @formatter:on
727
+
689
728
@ Bean
690
729
AuthorizationServerSettings authorizationServerSettings () {
691
730
return AuthorizationServerSettings .builder ().multipleIssuersAllowed (true ).build ();
0 commit comments