Jelajahi Sumber

Add Metadata Endpoint

Josh Cummings 3 tahun lalu
induk
melakukan
ca19311b20

+ 20 - 0
servlet/spring-boot/java/saml2/login/src/main/java/example/SecurityConfiguration.java

@@ -16,10 +16,16 @@
 
 package example;
 
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.security.config.Customizer;
 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.saml2.provider.service.metadata.OpenSamlMetadataResolver;
+import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistrationRepository;
+import org.springframework.security.saml2.provider.service.web.DefaultRelyingPartyRegistrationResolver;
+import org.springframework.security.saml2.provider.service.web.RelyingPartyRegistrationResolver;
+import org.springframework.security.saml2.provider.service.web.Saml2MetadataFilter;
 import org.springframework.security.web.SecurityFilterChain;
 
 @Configuration
@@ -39,4 +45,18 @@ public class SecurityConfiguration {
 		return http.build();
 	}
 
+	@Bean
+	RelyingPartyRegistrationResolver relyingPartyRegistrationResolver(
+			RelyingPartyRegistrationRepository registrations) {
+		return new DefaultRelyingPartyRegistrationResolver(registrations);
+	}
+
+	@Bean
+	FilterRegistrationBean<Saml2MetadataFilter> metadata(RelyingPartyRegistrationResolver registrations) {
+		Saml2MetadataFilter metadata = new Saml2MetadataFilter(registrations, new OpenSamlMetadataResolver());
+		FilterRegistrationBean<Saml2MetadataFilter> filter = new FilterRegistrationBean<>(metadata);
+		filter.setOrder(-101);
+		return filter;
+	}
+
 }