Skip to content

Commit f3f69b3

Browse files
committed
Authorization failure does not clear current Authentication
Closes gh-409
1 parent c926884 commit f3f69b3

File tree

2 files changed

+2
-3
lines changed

2 files changed

+2
-3
lines changed

oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/OAuth2AuthorizationEndpointFilter.java

-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import org.springframework.security.authentication.AuthenticationManager;
3232
import org.springframework.security.core.Authentication;
3333
import org.springframework.security.core.AuthenticationException;
34-
import org.springframework.security.core.context.SecurityContextHolder;
3534
import org.springframework.security.oauth2.core.OAuth2AuthenticationException;
3635
import org.springframework.security.oauth2.core.OAuth2Error;
3736
import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationResponse;
@@ -165,7 +164,6 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse
165164
request, response, authorizationCodeRequestAuthenticationResult);
166165

167166
} catch (OAuth2AuthenticationException ex) {
168-
SecurityContextHolder.clearContext();
169167
this.authenticationFailureHandler.onAuthenticationFailure(request, response, ex);
170168
}
171169
}

oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2AuthorizationEndpointFilterTests.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@
4141
import org.springframework.security.core.Authentication;
4242
import org.springframework.security.core.context.SecurityContext;
4343
import org.springframework.security.core.context.SecurityContextHolder;
44+
import org.springframework.security.oauth2.core.OAuth2AuthorizationCode;
4445
import org.springframework.security.oauth2.core.OAuth2Error;
4546
import org.springframework.security.oauth2.core.OAuth2ErrorCodes;
4647
import org.springframework.security.oauth2.core.endpoint.OAuth2AuthorizationResponseType;
4748
import org.springframework.security.oauth2.core.endpoint.OAuth2ParameterNames;
4849
import org.springframework.security.oauth2.core.endpoint.PkceParameterNames;
4950
import org.springframework.security.oauth2.core.oidc.OidcScopes;
50-
import org.springframework.security.oauth2.core.OAuth2AuthorizationCode;
5151
import org.springframework.security.oauth2.server.authorization.authentication.OAuth2AuthorizationCodeRequestAuthenticationException;
5252
import org.springframework.security.oauth2.server.authorization.authentication.OAuth2AuthorizationCodeRequestAuthenticationToken;
5353
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
@@ -266,6 +266,7 @@ public void doFilterWhenAuthorizationRequestAuthenticationExceptionThenErrorResp
266266

267267
assertThat(response.getStatus()).isEqualTo(HttpStatus.FOUND.value());
268268
assertThat(response.getRedirectedUrl()).isEqualTo("https://example.com?error=errorCode&error_description=errorDescription&error_uri=errorUri&state=state");
269+
assertThat(SecurityContextHolder.getContext().getAuthentication()).isSameAs(this.principal);
269270
}
270271

271272
@Test

0 commit comments

Comments
 (0)