Skip to content

Commit 5506c48

Browse files
committed
Remove OpenSaml4 Components
Issue gh-17707
1 parent 2258699 commit 5506c48

File tree

48 files changed

+68
-9856
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+68
-9856
lines changed

config/src/main/java/org/springframework/security/config/annotation/web/configurers/saml2/Saml2LoginConfigurer.java

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,15 @@
3535
import org.springframework.security.config.annotation.web.configurers.CsrfConfigurer;
3636
import org.springframework.security.core.Authentication;
3737
import org.springframework.security.saml2.provider.service.authentication.AbstractSaml2AuthenticationRequest;
38-
import org.springframework.security.saml2.provider.service.authentication.OpenSaml4AuthenticationProvider;
3938
import org.springframework.security.saml2.provider.service.authentication.OpenSaml5AuthenticationProvider;
4039
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistration;
4140
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistrationRepository;
4241
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistrations;
4342
import org.springframework.security.saml2.provider.service.web.HttpSessionSaml2AuthenticationRequestRepository;
44-
import org.springframework.security.saml2.provider.service.web.OpenSaml4AuthenticationTokenConverter;
4543
import org.springframework.security.saml2.provider.service.web.OpenSaml5AuthenticationTokenConverter;
4644
import org.springframework.security.saml2.provider.service.web.Saml2AuthenticationRequestRepository;
4745
import org.springframework.security.saml2.provider.service.web.Saml2AuthenticationTokenConverter;
4846
import org.springframework.security.saml2.provider.service.web.Saml2WebSsoAuthenticationRequestFilter;
49-
import org.springframework.security.saml2.provider.service.web.authentication.OpenSaml4AuthenticationRequestResolver;
5047
import org.springframework.security.saml2.provider.service.web.authentication.OpenSaml5AuthenticationRequestResolver;
5148
import org.springframework.security.saml2.provider.service.web.authentication.Saml2AuthenticationRequestResolver;
5249
import org.springframework.security.saml2.provider.service.web.authentication.Saml2WebSsoAuthenticationFilter;
@@ -381,10 +378,8 @@ private Saml2AuthenticationRequestResolver getAuthenticationRequestResolver(B ht
381378
return openSamlAuthenticationRequestResolver;
382379
}
383380
else {
384-
OpenSaml4AuthenticationRequestResolver openSamlAuthenticationRequestResolver = new OpenSaml4AuthenticationRequestResolver(
385-
relyingPartyRegistrationRepository(http));
386-
openSamlAuthenticationRequestResolver.setRequestMatcher(getAuthenticationRequestMatcher());
387-
return openSamlAuthenticationRequestResolver;
381+
throw new IllegalArgumentException(
382+
"Spring Security does not support OpenSAML " + Version.getVersion() + ". Please use OpenSAML 5");
388383
}
389384
}
390385

@@ -429,15 +424,8 @@ private AuthenticationConverter getAuthenticationConverter(B http) {
429424
converter.setRequestMatcher(getLoginProcessingEndpoint());
430425
return converter;
431426
}
432-
authenticationConverterBean = getBeanOrNull(http, OpenSaml4AuthenticationTokenConverter.class);
433-
if (authenticationConverterBean != null) {
434-
return authenticationConverterBean;
435-
}
436-
OpenSaml4AuthenticationTokenConverter converter = new OpenSaml4AuthenticationTokenConverter(
437-
this.relyingPartyRegistrationRepository);
438-
converter.setAuthenticationRequestRepository(getAuthenticationRequestRepository(http));
439-
converter.setRequestMatcher(getLoginProcessingEndpoint());
440-
return converter;
427+
throw new IllegalArgumentException(
428+
"Spring Security does not support OpenSAML " + Version.getVersion() + ". Please use OpenSAML 5");
441429
}
442430

443431
private void registerDefaultAuthenticationProvider(B http) {
@@ -448,10 +436,8 @@ private void registerDefaultAuthenticationProvider(B http) {
448436
}
449437
}
450438
else {
451-
OpenSaml4AuthenticationProvider provider = getBeanOrNull(http, OpenSaml4AuthenticationProvider.class);
452-
if (provider == null) {
453-
http.authenticationProvider(postProcess(new OpenSaml4AuthenticationProvider()));
454-
}
439+
throw new IllegalArgumentException(
440+
"Spring Security does not support OpenSAML " + Version.getVersion() + ". Please use OpenSAML 5");
455441
}
456442
}
457443

config/src/main/java/org/springframework/security/config/annotation/web/configurers/saml2/Saml2LogoutConfigurer.java

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,13 @@
3535
import org.springframework.security.saml2.provider.service.authentication.Saml2AuthenticatedPrincipal;
3636
import org.springframework.security.saml2.provider.service.authentication.Saml2Authentication;
3737
import org.springframework.security.saml2.provider.service.authentication.Saml2ResponseAssertionAccessor;
38-
import org.springframework.security.saml2.provider.service.authentication.logout.OpenSaml4LogoutRequestValidator;
39-
import org.springframework.security.saml2.provider.service.authentication.logout.OpenSaml4LogoutResponseValidator;
4038
import org.springframework.security.saml2.provider.service.authentication.logout.OpenSaml5LogoutRequestValidator;
4139
import org.springframework.security.saml2.provider.service.authentication.logout.OpenSaml5LogoutResponseValidator;
4240
import org.springframework.security.saml2.provider.service.authentication.logout.Saml2LogoutRequestValidator;
4341
import org.springframework.security.saml2.provider.service.authentication.logout.Saml2LogoutResponseValidator;
4442
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistration;
4543
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistrationRepository;
4644
import org.springframework.security.saml2.provider.service.web.authentication.logout.HttpSessionLogoutRequestRepository;
47-
import org.springframework.security.saml2.provider.service.web.authentication.logout.OpenSaml4LogoutRequestResolver;
48-
import org.springframework.security.saml2.provider.service.web.authentication.logout.OpenSaml4LogoutRequestValidatorParametersResolver;
49-
import org.springframework.security.saml2.provider.service.web.authentication.logout.OpenSaml4LogoutResponseResolver;
5045
import org.springframework.security.saml2.provider.service.web.authentication.logout.OpenSaml5LogoutRequestResolver;
5146
import org.springframework.security.saml2.provider.service.web.authentication.logout.OpenSaml5LogoutRequestValidatorParametersResolver;
5247
import org.springframework.security.saml2.provider.service.web.authentication.logout.OpenSaml5LogoutResponseResolver;
@@ -250,10 +245,8 @@ private Saml2LogoutRequestValidatorParametersResolver createSaml2LogoutResponseP
250245
parameters.setRequestMatcher(requestMatcher);
251246
return parameters;
252247
}
253-
OpenSaml4LogoutRequestValidatorParametersResolver parameters = new OpenSaml4LogoutRequestValidatorParametersResolver(
254-
registrations);
255-
parameters.setRequestMatcher(requestMatcher);
256-
return parameters;
248+
throw new IllegalArgumentException(
249+
"Spring Security does not support OpenSAML " + Version.getVersion() + ". Please use OpenSAML 5");
257250
}
258251

259252
private Saml2LogoutResponseFilter createLogoutResponseProcessingFilter(
@@ -384,7 +377,8 @@ private Saml2LogoutRequestValidator logoutRequestValidator() {
384377
if (USE_OPENSAML_5) {
385378
return new OpenSaml5LogoutRequestValidator();
386379
}
387-
return new OpenSaml4LogoutRequestValidator();
380+
throw new IllegalArgumentException(
381+
"Spring Security does not support OpenSAML " + Version.getVersion() + ". Please use OpenSAML 5");
388382
}
389383

390384
private Saml2LogoutRequestResolver logoutRequestResolver(RelyingPartyRegistrationRepository registrations) {
@@ -394,7 +388,8 @@ private Saml2LogoutRequestResolver logoutRequestResolver(RelyingPartyRegistratio
394388
if (USE_OPENSAML_5) {
395389
return new OpenSaml5LogoutRequestResolver(registrations);
396390
}
397-
return new OpenSaml4LogoutRequestResolver(registrations);
391+
throw new IllegalArgumentException(
392+
"Spring Security does not support OpenSAML " + Version.getVersion() + ". Please use OpenSAML 5");
398393
}
399394

400395
}
@@ -454,7 +449,8 @@ private Saml2LogoutResponseValidator logoutResponseValidator() {
454449
if (USE_OPENSAML_5) {
455450
return new OpenSaml5LogoutResponseValidator();
456451
}
457-
return new OpenSaml4LogoutResponseValidator();
452+
throw new IllegalArgumentException(
453+
"Spring Security does not support OpenSAML " + Version.getVersion() + ". Please use OpenSAML 5");
458454
}
459455

460456
private Saml2LogoutResponseResolver logoutResponseResolver(RelyingPartyRegistrationRepository registrations) {
@@ -464,7 +460,8 @@ private Saml2LogoutResponseResolver logoutResponseResolver(RelyingPartyRegistrat
464460
if (USE_OPENSAML_5) {
465461
return new OpenSaml5LogoutResponseResolver(registrations);
466462
}
467-
return new OpenSaml4LogoutResponseResolver(registrations);
463+
throw new IllegalArgumentException(
464+
"Spring Security does not support OpenSAML " + Version.getVersion() + ". Please use OpenSAML 5");
468465
}
469466

470467
}

config/src/main/java/org/springframework/security/config/annotation/web/configurers/saml2/Saml2MetadataConfigurer.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import org.springframework.security.config.annotation.web.HttpSecurityBuilder;
2525
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
2626
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
27-
import org.springframework.security.saml2.provider.service.metadata.OpenSaml4MetadataResolver;
2827
import org.springframework.security.saml2.provider.service.metadata.OpenSaml5MetadataResolver;
2928
import org.springframework.security.saml2.provider.service.metadata.Saml2MetadataResponseResolver;
3029
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistration;
@@ -113,10 +112,8 @@ public Saml2MetadataConfigurer<H> metadataUrl(String metadataUrl) {
113112
metadata.setRequestMatcher(getRequestMatcherBuilder().matcher(metadataUrl));
114113
return metadata;
115114
}
116-
RequestMatcherMetadataResponseResolver metadata = new RequestMatcherMetadataResponseResolver(registrations,
117-
new OpenSaml4MetadataResolver());
118-
metadata.setRequestMatcher(getRequestMatcherBuilder().matcher(metadataUrl));
119-
return metadata;
115+
throw new IllegalArgumentException(
116+
"Spring Security does not support OpenSAML " + Version.getVersion() + ". Please use OpenSAML 5");
120117
};
121118
return this;
122119
}
@@ -156,7 +153,8 @@ private Saml2MetadataResponseResolver createMetadataResponseResolver(H http) {
156153
if (USE_OPENSAML_5) {
157154
return new RequestMatcherMetadataResponseResolver(registrations, new OpenSaml5MetadataResolver());
158155
}
159-
return new RequestMatcherMetadataResponseResolver(registrations, new OpenSaml4MetadataResolver());
156+
throw new IllegalArgumentException(
157+
"Spring Security does not support OpenSAML " + Version.getVersion() + ". Please use OpenSAML 5");
160158
}
161159

162160
private RelyingPartyRegistrationRepository getRelyingPartyRegistrationRepository(H http) {

config/src/main/java/org/springframework/security/config/http/Saml2LoginBeanDefinitionParserUtils.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,11 @@
2424
import org.springframework.beans.factory.config.RuntimeBeanReference;
2525
import org.springframework.beans.factory.support.AbstractBeanDefinition;
2626
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
27-
import org.springframework.security.saml2.provider.service.authentication.OpenSaml4AuthenticationProvider;
2827
import org.springframework.security.saml2.provider.service.authentication.OpenSaml5AuthenticationProvider;
2928
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistrationRepository;
3029
import org.springframework.security.saml2.provider.service.web.DefaultRelyingPartyRegistrationResolver;
3130
import org.springframework.security.saml2.provider.service.web.HttpSessionSaml2AuthenticationRequestRepository;
3231
import org.springframework.security.saml2.provider.service.web.Saml2AuthenticationTokenConverter;
33-
import org.springframework.security.saml2.provider.service.web.authentication.OpenSaml4AuthenticationRequestResolver;
3432
import org.springframework.security.saml2.provider.service.web.authentication.OpenSaml5AuthenticationRequestResolver;
3533
import org.springframework.util.StringUtils;
3634

@@ -90,16 +88,16 @@ static BeanMetadataElement createDefaultAuthenticationRequestResolver(
9088
.addConstructorArgValue(defaultRelyingPartyRegistrationResolver)
9189
.getBeanDefinition();
9290
}
93-
return BeanDefinitionBuilder.rootBeanDefinition(OpenSaml4AuthenticationRequestResolver.class)
94-
.addConstructorArgValue(defaultRelyingPartyRegistrationResolver)
95-
.getBeanDefinition();
91+
throw new IllegalArgumentException(
92+
"Spring Security does not support OpenSAML " + Version.getVersion() + ". Please use OpenSAML 5");
9693
}
9794

9895
static BeanDefinition createAuthenticationProvider() {
9996
if (USE_OPENSAML_5) {
10097
return BeanDefinitionBuilder.rootBeanDefinition(OpenSaml5AuthenticationProvider.class).getBeanDefinition();
10198
}
102-
return BeanDefinitionBuilder.rootBeanDefinition(OpenSaml4AuthenticationProvider.class).getBeanDefinition();
99+
throw new IllegalArgumentException(
100+
"Spring Security does not support OpenSAML " + Version.getVersion() + ". Please use OpenSAML 5");
103101
}
104102

105103
static BeanMetadataElement getAuthenticationConverter(Element element) {

config/src/main/java/org/springframework/security/config/http/Saml2LogoutBeanDefinitionParserUtils.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,10 @@
2222
import org.springframework.beans.BeanMetadataElement;
2323
import org.springframework.beans.factory.config.RuntimeBeanReference;
2424
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
25-
import org.springframework.security.saml2.provider.service.authentication.logout.OpenSaml4LogoutRequestValidator;
26-
import org.springframework.security.saml2.provider.service.authentication.logout.OpenSaml4LogoutResponseValidator;
2725
import org.springframework.security.saml2.provider.service.authentication.logout.OpenSaml5LogoutRequestValidator;
2826
import org.springframework.security.saml2.provider.service.authentication.logout.OpenSaml5LogoutResponseValidator;
2927
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistrationRepository;
3028
import org.springframework.security.saml2.provider.service.web.authentication.logout.HttpSessionLogoutRequestRepository;
31-
import org.springframework.security.saml2.provider.service.web.authentication.logout.OpenSaml4LogoutRequestResolver;
32-
import org.springframework.security.saml2.provider.service.web.authentication.logout.OpenSaml4LogoutResponseResolver;
3329
import org.springframework.security.saml2.provider.service.web.authentication.logout.OpenSaml5LogoutRequestResolver;
3430
import org.springframework.security.saml2.provider.service.web.authentication.logout.OpenSaml5LogoutResponseResolver;
3531
import org.springframework.util.StringUtils;
@@ -76,9 +72,8 @@ static BeanMetadataElement getLogoutResponseResolver(Element element, BeanMetada
7672
.addConstructorArgValue(registrations)
7773
.getBeanDefinition();
7874
}
79-
return BeanDefinitionBuilder.rootBeanDefinition(OpenSaml4LogoutResponseResolver.class)
80-
.addConstructorArgValue(registrations)
81-
.getBeanDefinition();
75+
throw new IllegalArgumentException(
76+
"Spring Security does not support OpenSAML " + Version.getVersion() + ". Please use OpenSAML 5");
8277
}
8378

8479
static BeanMetadataElement getLogoutRequestValidator(Element element) {
@@ -89,7 +84,8 @@ static BeanMetadataElement getLogoutRequestValidator(Element element) {
8984
if (USE_OPENSAML_5) {
9085
return BeanDefinitionBuilder.rootBeanDefinition(OpenSaml5LogoutRequestValidator.class).getBeanDefinition();
9186
}
92-
return BeanDefinitionBuilder.rootBeanDefinition(OpenSaml4LogoutRequestValidator.class).getBeanDefinition();
87+
throw new IllegalArgumentException(
88+
"Spring Security does not support OpenSAML " + Version.getVersion() + ". Please use OpenSAML 5");
9389
}
9490

9591
static BeanMetadataElement getLogoutResponseValidator(Element element) {
@@ -100,7 +96,8 @@ static BeanMetadataElement getLogoutResponseValidator(Element element) {
10096
if (USE_OPENSAML_5) {
10197
return BeanDefinitionBuilder.rootBeanDefinition(OpenSaml5LogoutResponseValidator.class).getBeanDefinition();
10298
}
103-
return BeanDefinitionBuilder.rootBeanDefinition(OpenSaml4LogoutResponseValidator.class).getBeanDefinition();
99+
throw new IllegalArgumentException(
100+
"Spring Security does not support OpenSAML " + Version.getVersion() + ". Please use OpenSAML 5");
104101
}
105102

106103
static BeanMetadataElement getLogoutRequestRepository(Element element) {
@@ -121,9 +118,8 @@ static BeanMetadataElement getLogoutRequestResolver(Element element, BeanMetadat
121118
.addConstructorArgValue(registrations)
122119
.getBeanDefinition();
123120
}
124-
return BeanDefinitionBuilder.rootBeanDefinition(OpenSaml4LogoutRequestResolver.class)
125-
.addConstructorArgValue(registrations)
126-
.getBeanDefinition();
121+
throw new IllegalArgumentException(
122+
"Spring Security does not support OpenSAML " + Version.getVersion() + ". Please use OpenSAML 5");
127123
}
128124

129125
}

0 commit comments

Comments
 (0)