Merge federated-identity-authorizationserver into featured-authorizationserver

Issue gh-1189
This commit is contained in:
Joe Grandja
2023-04-27 15:59:45 -04:00
parent 1485135325
commit 041649fbd5
19 changed files with 63 additions and 499 deletions

View File

@@ -22,6 +22,8 @@ import com.nimbusds.jose.jwk.RSAKey;
import com.nimbusds.jose.jwk.source.JWKSource;
import com.nimbusds.jose.proc.SecurityContext;
import sample.jose.Jwks;
import sample.security.FederatedIdentityConfigurer;
import sample.security.FederatedIdentityIdTokenCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -48,12 +50,15 @@ import org.springframework.security.oauth2.server.authorization.config.annotatio
import org.springframework.security.oauth2.server.authorization.config.annotation.web.configurers.OAuth2AuthorizationServerConfigurer;
import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings;
import org.springframework.security.oauth2.server.authorization.settings.ClientSettings;
import org.springframework.security.oauth2.server.authorization.token.JwtEncodingContext;
import org.springframework.security.oauth2.server.authorization.token.OAuth2TokenCustomizer;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint;
/**
* @author Joe Grandja
* @author Daniel Garnier-Moiroux
* @author Steve Riesenberg
* @since 1.1.0
*/
@Configuration(proxyBeanMethods = false)
@@ -75,7 +80,8 @@ public class AuthorizationServerConfig {
exceptions.authenticationEntryPoint(new LoginUrlAuthenticationEntryPoint("/login"))
)
.oauth2ResourceServer(oauth2ResourceServer ->
oauth2ResourceServer.jwt(Customizer.withDefaults()));
oauth2ResourceServer.jwt(Customizer.withDefaults()))
.apply(new FederatedIdentityConfigurer());
// @formatter:on
return http.build();
}
@@ -121,6 +127,11 @@ public class AuthorizationServerConfig {
return new JdbcOAuth2AuthorizationConsentService(jdbcTemplate, registeredClientRepository);
}
@Bean
public OAuth2TokenCustomizer<JwtEncodingContext> idTokenCustomizer() {
return new FederatedIdentityIdTokenCustomizer();
}
@Bean
public JWKSource<SecurityContext> jwkSource() {
RSAKey rsaKey = Jwks.generateRsa();

View File

@@ -15,6 +15,9 @@
*/
package sample.config;
import sample.security.FederatedIdentityConfigurer;
import sample.security.UserRepositoryOAuth2UserHandler;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
@@ -32,6 +35,7 @@ import static org.springframework.security.config.Customizer.withDefaults;
/**
* @author Joe Grandja
* @author Steve Riesenberg
* @since 1.1.0
*/
@EnableWebSecurity
@@ -41,11 +45,17 @@ public class DefaultSecurityConfig {
// @formatter:off
@Bean
public SecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Exception {
FederatedIdentityConfigurer federatedIdentityConfigurer = new FederatedIdentityConfigurer()
.oauth2UserHandler(new UserRepositoryOAuth2UserHandler());
http
.authorizeHttpRequests(authorize ->
authorize.anyRequest().authenticated()
authorize
.requestMatchers("/assets/**", "/webjars/**", "/login").permitAll()
.anyRequest().authenticated()
)
.formLogin(withDefaults());
.formLogin(withDefaults())
.apply(federatedIdentityConfigurer);
return http.build();
}
// @formatter:on