|
1 | 1 | package lol.maki.dev.authorization; |
2 | 2 |
|
3 | | -import java.util.List; |
4 | | - |
5 | 3 | import com.nimbusds.jose.jwk.JWK; |
6 | 4 | import com.nimbusds.jose.jwk.JWKSet; |
7 | 5 | import com.nimbusds.jose.jwk.RSAKey; |
8 | 6 | import com.nimbusds.jose.jwk.source.ImmutableJWKSet; |
9 | 7 | import com.nimbusds.jose.jwk.source.JWKSource; |
10 | 8 | import com.nimbusds.jose.proc.SecurityContext; |
11 | | - |
| 9 | +import java.util.List; |
12 | 10 | import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest; |
13 | 11 | import org.springframework.context.annotation.Bean; |
14 | 12 | import org.springframework.context.annotation.Configuration; |
|
17 | 15 | import org.springframework.security.config.Customizer; |
18 | 16 | import org.springframework.security.config.annotation.web.builders.HttpSecurity; |
19 | 17 | import org.springframework.security.oauth2.jwt.JwtClaimsSet; |
20 | | -import org.springframework.security.oauth2.server.authorization.config.annotation.web.configuration.OAuth2AuthorizationServerConfiguration; |
21 | 18 | import org.springframework.security.oauth2.server.authorization.config.annotation.web.configurers.OAuth2AuthorizationServerConfigurer; |
22 | 19 | import org.springframework.security.oauth2.server.authorization.token.JwtEncodingContext; |
23 | 20 | import org.springframework.security.oauth2.server.authorization.token.OAuth2TokenCustomizer; |
24 | 21 | import org.springframework.security.web.SecurityFilterChain; |
25 | 22 | import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint; |
26 | 23 | import org.springframework.security.web.util.matcher.MediaTypeRequestMatcher; |
27 | 24 |
|
| 25 | +import static org.springframework.security.oauth2.server.authorization.config.annotation.web.configurers.OAuth2AuthorizationServerConfigurer.authorizationServer; |
| 26 | + |
28 | 27 | @Configuration(proxyBeanMethods = false) |
29 | 28 | public class SecurityConfig { |
30 | 29 |
|
| 30 | + /** |
| 31 | + * See <a href= |
| 32 | + * "https://docs.spring.io/spring-authorization-server/reference/getting-started.html#defining-required-components">Reference</a> |
| 33 | + */ |
31 | 34 | @Bean |
32 | 35 | @Order(1) |
33 | 36 | public SecurityFilterChain authorizationServerSecurityFilterChain(HttpSecurity http) throws Exception { |
34 | | - OAuth2AuthorizationServerConfiguration.applyDefaultSecurity(http); |
35 | | - http.getConfigurer(OAuth2AuthorizationServerConfigurer.class).oidc(Customizer.withDefaults()); // Enable |
36 | | - // OpenID |
37 | | - // Connect |
38 | | - // 1.0 |
39 | | - http |
40 | | - // Redirect to the login page when not authenticated from the authorization |
41 | | - // endpoint |
| 37 | + OAuth2AuthorizationServerConfigurer authorizationServerConfigurer = authorizationServer(); |
| 38 | + http.securityMatcher(authorizationServerConfigurer.getEndpointsMatcher()) |
| 39 | + .with(authorizationServerConfigurer, |
| 40 | + (authorizationServer) -> authorizationServer.oidc(Customizer.withDefaults())) |
| 41 | + .authorizeHttpRequests((authorize) -> authorize.anyRequest().authenticated()) |
42 | 42 | .exceptionHandling((exceptions) -> exceptions.defaultAuthenticationEntryPointFor( |
43 | | - new LoginUrlAuthenticationEntryPoint("/login"), new MediaTypeRequestMatcher(MediaType.TEXT_HTML))) |
44 | | - // Accept access tokens for User Info and/or Client Registration |
45 | | - .oauth2ResourceServer((resourceServer) -> resourceServer.jwt(Customizer.withDefaults())); |
| 43 | + new LoginUrlAuthenticationEntryPoint("/login"), new MediaTypeRequestMatcher(MediaType.TEXT_HTML))); |
46 | 44 | return http.build(); |
47 | 45 | } |
48 | 46 |
|
|
0 commit comments