@@ -78,3 +78,42 @@ fun jwtDecoder(): JwtDecoder {
78
78
======
79
79
<1> - `validateTypes` now defaults to `false`
80
80
<2> - `JwtTypeValidator#jwt` is added by all `createDefaultXXX` methods
81
+
82
+ == Do Not Process `<saml2:Response>` GET Requests with `Saml2AuthenticationTokenConverter`
83
+
84
+ Spring Security does not support processing `<saml2:Response>` payloads over GET as this is not supported by the SAML 2.0 spec.
85
+
86
+ To better comply with this, `Saml2AuthenticationTokenConverter` will not process GET requests by default as of Spring Security 8.
87
+ To prepare for this, the property `shouldConvertGetRequests` is available.
88
+ To use it, publish your own `Saml2AuthenticationTokenConverter` like so:
89
+
90
+ [tabs]
91
+ ======
92
+ Java::
93
+ +
94
+ [source,java,role="primary"]
95
+ ----
96
+ @Bean
97
+ Saml2AuthenticationTokenConverter authenticationConverter(RelyingPartyRegistrationRepository registrations) {
98
+ Saml2AuhenticationTokenConverter authenticationConverter = new Saml2AuthenticationTokenConverter(
99
+ new DefaultRelyingPartyRegistrationResolver(registrations));
100
+ authenticationConverter.setShouldConvertGetRequests(false);
101
+ return authenticationConverter;
102
+ }
103
+ ----
104
+
105
+ Kotlin::
106
+ +
107
+ [source,kotlin,role="secondary"]
108
+ ----
109
+ @Bean
110
+ fun authenticationConverter(val registrations: RelyingPartyRegistrationRepository): Saml2AuthenticationTokenConverter {
111
+ val authenticationConverter = new Saml2AuthenticationTokenConverter(
112
+ DefaultRelyingPartyRegistrationResolver(registrations))
113
+ authenticationConverter.setShouldConvertGetRequests(false)
114
+ return authenticationConverter
115
+ }
116
+ ----
117
+ ======
118
+
119
+ If you must continue using `Saml2AuthenticationTokenConverter` to process GET requests, you can call `setShouldConvertGetRequests` to `true.`
0 commit comments